For independent agents

Your listings on the map — in 5 minutes

No developer needed. Export from your CRM, upload once, and share a live map with every client.

How it works

Four steps from zero to a live, shareable property map.

01

Export your listings

Export from any CRM or spreadsheet as a CSV or JSON file. MapState accepts any column names and auto-detects fields like price, address, and bedrooms.

02

Upload to MapState

Drag your file into the dashboard. MapState geocodes missing coordinates, scores data quality, and makes your map live in seconds.

03

Customize your map

Pick your brand colors, choose a font, and set the border radius. Your map matches your website, not a generic iframe.

04

Share or embed

Share the direct URL with clients, or embed the map on any webpage with a single line of HTML.

<iframe src="https://mapstate.com/c/your-slug" width="100%" height="520" style="border:0;" allowfullscreen></iframe>

What gets auto-detected

MapState reads your file and maps columns to standard fields automatically, regardless of how your CRM names them.

Field Example column names Notes
Title title, name, listing_name, nom Used as the property heading in the map popup and list view.
Price price, prix, amount, sale_price, loyer Numeric value. Currency detected separately or defaults to your workspace setting.
Address address, adresse, full_address, location Geocoded automatically if lat/lng are missing.
Bedrooms bedrooms, beds, chambres, nb_pieces, pieces Integer. Used in filter and display.
Bathrooms bathrooms, baths, salles_de_bain Integer. Optional.
Area area, surface, sqm, m2, superficie Numeric. Displayed alongside bedrooms in the specs line.
Property type type, property_type, category, categorie Apartment, house, villa, etc. Used in filter.
Listing type listing_type, transaction, operation Sale or rent. Used in filter and badge color.
Coordinates lat + lng, latitude + longitude If present, geocoding is skipped and import is faster.

Your CSV columns can be named anything. MapState uses fuzzy matching — nb_pieces, bedrooms, and chambres all map to the bedrooms field. You can review and adjust column mappings before confirming the import.

Frequently asked questions

Do I need to re-upload every time my listings change?

Not necessarily. For small portfolios, a manual re-upload takes under a minute. If you want automatic sync, you can point MapState to a public URL (JSON or CSV) that your CRM already exports, and MapState will poll it on a schedule you control. Changes appear on the map within minutes.

What image formats are supported?

MapState accepts JPEG, PNG, and WebP image URLs. Images are referenced by URL, not uploaded to MapState directly — just include an image_url or photo column in your file pointing to where images are hosted. Unsplash, your own CDN, or your CRM's media storage all work.

Can I have multiple maps for different markets?

Yes. Each map is tied to a workspace and a source. You can create multiple workspaces — one per market, city, or property type — each with its own branding, domain, and embed URL. All workspaces are managed from the same account.

Is my data private?

Your listing data is stored securely and is never shared with third parties, used for advertising, or visible to other MapState users. Public maps are accessible via their URL only — they are not indexed or discoverable within MapState. You can password-protect any map from your workspace settings.

Start for free. No credit card.

Your first map is live in minutes.

Get started free