Get a free key

For IDX and real-estate website platforms

Map every listing, even the ones without an address

Privacy area maps for listings that can't show an address, map images and geocodes you're allowed to keep, and one contract for all your client sites. Your agents never manage a Google key again.

A map with an exact red pin on one house.
Address shown: an exact pin
The same map with a shaded circle covering several blocks and no pin.
Address withheld: the neighbourhood

Three map problems every IDX platform has

Listings without an address

When a seller withholds the address, InternetAddressDisplayYN arrives as false and you can't drop a pin. The usual choices are no map, or no listing.

Agents and their Google keys

Many IDX products ask each agent to create and pay for a Google Maps key. When a key lapses or a card fails, that agent's map breaks and your support team hears about it.

Coordinates you can't keep

Google's terms allow caching geocoded coordinates for up to 30 days, and not on a non-Google map. Every listing gets looked up again and again.

Privacy area mode, made for the display flags

Send the listing's real coordinates from your server and get back an image of its neighbourhood. The circle always contains the home, but it's drawn around a grid point, so every address in the same grid cell gets the identical image. No pin, and nothing in the image points to the house.

RESO's Data Dictionary has also approved a GeocodeDisplayYN field, for whether a listing's coordinates may be displayed. If your MLS sends it, treat false the same way.

On the search map, keep these listings off the pin layer and let the listing card carry the area image.

A street map with a shaded circle around several blocks and no pin.
The same image for every address in this grid cell.
# On your server, when a listing comes in from the feed
lat, lng = listing["Latitude"], listing["Longitude"]

if listing["InternetAddressDisplayYN"] is False:   # and your MLS lets the listing show without it
    snap = 0.01                                     # about 1 km; use 0.02 in rural areas
    lat = round(lat / snap) * snap                  # the same grid the API snaps to, so the
    lng = round(lng / snap) * snap                  # request never carries the real point
    q = f"area={lat:.6f},{lng:.6f}&radius=800&snap={snap}"
else:
    q = f"markers={lat},{lng}&center={lat},{lng}&zoom=15"

image = fetch(f"https://api.pinsharing.com/v1/static?{q}&size=640x300&scale=2&key={KEY}")
store(listing["ListingKey"], image)   # serve your copy on the listing page, alert emails and flyers

Your MLS decides whether the listing shows at all. Some MLSs require leaving out a listing whose address is withheld; others allow it without the address. RESO defines InternetAddressDisplayYN as whether the seller has allowed the listing address to be displayed on internet sites, and in July 2026 its Data Dictionary workgroup discussed clarifying that false means suppressing the street address or coordinates. That clarification was a discussion, not a ratified change. Privacy area mode is for listings your rules let you show.

Store once, serve forever

On a platform contract, and on every paid plan, you may keep each image and geocode indefinitely, even after you cancel. Fetch a listing's image once when it arrives in the feed, then serve your copy on the listing page, in saved-search emails and on printed flyers. You pay per listing, not per page view, so 40,000 new listings a month cost the same whether your sites get one million views or fifty million. (The OpenStreetMap licence still rules out copying the map data in bulk.)

In a platform contract

  • One annual contract, invoiced, with a flat price by number of client sites
  • A key for each client site, locked to that site's domain (up to 5,000 keys)
  • Raster and vector tiles for Leaflet, MapLibre and OpenLayers
  • Listing images with a pin or a privacy area, for cards, emails and flyers
  • Address, city, ZIP and place search, plus reverse geocoding
  • Public school districts and attendance zones by grade for every listing, with a bulk data licence
  • Caps with headroom, emails at 80% and 100%, raised the same business day
  • 99.5% monthly uptime target with service credits, and a public status page
  • No PinSharing branding on your clients' maps
  • Integration help from the engineer who built the API

What we don't do yet

  • Aerial or satellite imagery
  • Rooftop accuracy for every US street address (see the questions below)
  • Per-site usage reports, or an API to create keys: today keys are made in the dashboard and usage is counted per account
  • Parcel lines
  • SOC 2. We'll answer your security questionnaire in writing.

If one of these blocks you, say so in the form. It moves up the list.

Start a 60-day platform pilot

Free for 60 days on one MLS market or a group of your client sites.

  1. A 20-minute technical call about your feed, your map stack and your MLS rules.
  2. Keys for your pilot sites the same day, with help wiring them in.
  3. A price for the full rollout, in writing, before day 60. If it doesn't fit, you've lost nothing.

Prefer email? sales@pinsharing.com

We reply from sales@pinsharing.com within one business day. No mailing list.

Questions from IDX teams

Does privacy area mode satisfy my MLS's rules?

That depends on your MLS. Some require you to leave a listing out entirely when the seller withholds the address; others allow the listing without its address. Privacy area mode is a way to show location once your rules allow the listing. It doesn't change what your MLS allows, so check with its compliance staff first. We're glad to join that call.

Can someone work out the address from the circle?

No. The circle is drawn around a grid point, not around the home, and every address in the same grid cell gets the identical image. Comparing several images of one listing, or of neighbouring listings, gives nothing away. If you round the coordinates on your server as in the example above, the request never contains the real point either.

What happens if a platform reaches its cap?

Platform contracts are sized with plenty of headroom. We email you at 80% and 100% of any cap and raise it the same business day you ask. We never bill overage: a cap is a backstop, not a meter.

Can we remove the attribution?

There's no PinSharing branding on your clients' maps or images. The “© OpenStreetMap contributors” credit has to stay, because the map data's licence requires it.

How much work is switching?

Mostly changing URLs. Leaflet and OpenLayers take a new tile URL, MapLibre GL JS takes a new style URL, and listing images are one URL per listing. Our Leaflet, MapLibre and OpenLayers quickstarts show the code, and we help during the pilot.

What does a platform contract cost?

A flat annual price based on how many client sites you run, with no per-view billing. We agree it in writing before the pilot ends. A single brokerage site can start on the self-serve plans, from $19 a month.

Is OpenStreetMap good enough for US real estate?

For streets, buildings, parks, schools and places, yes. House-number coverage in the US is still incomplete, so a typed street address won't always resolve to the exact home. IDX feeds usually carry coordinates already, so that mostly affects the search box, where cities, ZIP codes, neighbourhoods and streets work well.

Where does it run, and how do you handle security reviews?

In US data centres (DigitalOcean, New York) behind Cloudflare. Accounts support passkeys and authenticator apps. We don't have SOC 2 yet; we'll answer your security questionnaire in writing.

Sources

Read on Nov 5, 2026. MLS rules vary by market; follow the links and your own MLS's rules.

More: privacy-safe listing images · how privacy area maps work · a Google Maps API alternative

RESO is a trademark of the Real Estate Standards Organization; Google Maps is a trademark of Google LLC. PinSharing (Wells Software Consulting LLC) isn't affiliated with or endorsed by either.