Google Maps Real Estate Agency Data Scraper avatar

Google Maps Real Estate Agency Data Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Google Maps Real Estate Agency Data Scraper

Google Maps Real Estate Agency Data Scraper

Google Maps scraper for real estate agencies and agents in any city. Get clean, de-duplicated JSON: name, address, phone, website, category, rating, and place ID. No API key needed, no quota limits.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Turgay NANTA

Turgay NANTA

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

20 hours ago

Last modified

Share

Real Estate Agency Maps Scraper — No API Key, Real Browser Rendering

Search Google Maps for real estate agencies and agents in any city and get clean, de-duplicated business JSON — name, address, phone, website, category, rating, coordinates, and Google Place ID. No API key, no quota limits.

Runs with one click — no required fields. Type a city/niche query (or use the default), get clean, de-duplicated JSON. Built for both humans and AI agents (MCP-ready).

What it does

Google Maps doesn't expose a public API for this kind of search — and even a "view source" HTTP fetch of the search page returns almost nothing, because Google loads real results after the page renders, through a separate background request your browser makes automatically. This actor drives a real headless Chromium browser (Playwright), lets Google Maps load exactly as it would for a human visitor, and captures that background data response directly — so it gets the same structured data Google itself uses to draw the results panel, not a fragile HTML scrape of visible text.

Focused on real estate agencies and agents specifically (not property listings) — a narrower, less-saturated slice of Google Maps business data than a generic "search anything" Maps scraper.

Quick start (no code)

  1. Click Start with the default query, or type your own (e.g. "real estate agency Denver CO", "realtor Miami").
  2. Wait a few seconds while a real browser loads the search and the actor captures the results.
  3. Export the dataset as JSON, CSV, or Excel directly from the Apify Console, or pull it via API.

Input

FieldRequiredDescription
querynoWhat to search on Google Maps — niche + city works best (default: real estate agency Austin TX)
maxResultsnoMax clean results (default 20, cap 500 — see Limitations: a single query page returns up to ~20)
enrichnoDeterministic enrichment per record (email extraction, domain, completeness score)
monitornoCompare with the previous run, flag NEW businesses only — ideal for scheduled runs tracking a market over time

Output (dataset, per record)

Real example — query "real estate agency Seattle WA" (captured live 2026-08-11, unedited):

{
"id": "",
"title": "Every Door Real Estate",
"url": "https://www.everydoorrealestate.com/",
"location": "5506 6th Ave S #204, Seattle, WA 98108",
"rating": 4.9,
"phone": "+12062220531",
"category": "Real estate agency",
"categories": ["Real estate agency", "Commercial real estate agency", "Real estate agent", "Real estate consultant", "Real estate developer"],
"lat": 47.5531558,
"lng": -122.3260943,
"place_id": "ChIJOR9o-cBBkFQRR-k_PH6pJzc",
"timezone": "America/Los_Angeles",
"photo": "https://lh4.googleusercontent.com/-BapoiMOP6YM/AAAAAAAAAAI/AAAAAAAAAAA/NNgzBJxuClU/s44-p-k-no-ns-nd/photo.jpg",
"completeness": 0.5
}

The final dataset row _summary carries run totals (total_clean, deduped, enriched). In monitor mode, a _changes row lists Place IDs that are new since the last run.

Field reference

FieldMeaning
titleBusiness name
locationFull formatted address
phoneE.164 phone number (+1...)
category / categoriesGoogle's business category, primary + all listed
lat / lngCoordinates
place_idGoogle's official Place ID (ChIJ...) — stable, usable in Google's own APIs
timezoneIANA timezone of the business location
photoCover photo URL, when Google has one

Use cases

  • Local market mapping — pull every real estate agency in a city or ZIP for territory planning.
  • Lead lists — name, phone and website in one clean row, ready to import into a CRM.
  • Competitor tracking — monitor a market weekly (monitor: true) to catch new agencies opening.
  • Recruiting research — brokerages find independent agents/teams to recruit by scanning a metro area.
  • AI agents — an agent researching a local market can call this directly via MCP instead of writing scrape code.

Enrichment (optional, charged only when it produces something)

With enrich: true, each record gets an emails field (extracted from any text fields), a domain field (canonical host from the website URL) and a completeness score (0–1). No LLM is used anywhere in this actor — enrichment is deterministic, so output is stable run to run and costs are fully predictable in advance.

Monitor mode — change alerts on a schedule

Set monitor: true and schedule the actor (daily/weekly via Apify's built-in Scheduler). Each run compares the current result set against the previous one and adds a _changes row listing only the Place IDs that weren't there before — wire an alert off new agencies opening in a market without re-processing the whole result set yourself.

Use it from your code

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("enezli/realestate-agency-maps-scraper").call(run_input={
"query": "real estate agency Denver CO",
"maxResults": 20,
"enrich": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
curl "https://api.apify.com/v2/acts/enezli~realestate-agency-maps-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"query": "real estate agency Denver CO", "maxResults": 20}'

Use it with AI agents (MCP)

This actor is listed under the MCP_SERVERS category and works out of the box as an Apify MCP tool — an agent researching a local real estate market can call it directly with a query and get structured JSON back, no scraping code for the agent to write or maintain.

Pricing — Pay-Per-Event, start is free

You only pay for what you get — no subscription, no charge for a run that finds nothing useful:

EventWhen charged
actor-start$0.0001 — symbolic, effectively free
result$0.002 per clean business record returned
enrichment$0.01 — only for a record that actually got enriched
change-alert$0.005 — monitor mode only, per NEW business since the previous run

Volume discounts apply automatically via Apify account tiers (up to −44% on GOLD).

This actor collects publicly available data only — the same business information any visitor sees on Google Maps in a browser, without logging in. It does not bypass authentication, does not access private data, and does not store personal credentials. You are responsible for using the output in compliance with Google's Terms of Service and applicable law (e.g. GDPR, TCPA if you use phone numbers for outbound calls/texts) in your jurisdiction.

Support & feedback

Found a bug, or need a field this actor doesn't return yet (e.g. review count — see Limitations below)? Open an issue on the actor's Issues tab. Feature requests are welcome; frequently-requested fields get added to the standard output in a future version.

Changelog

  • 0.1 (2026-08-11) — Initial release: real-browser-rendered Google Maps search, clean/de-duplicated JSON, optional deterministic enrichment, monitor mode.

Limitations (honest ones)

  • No review count in this version. Google's minimal search-results response includes a star rating but not the number of reviews behind it (verified across 20+ live businesses during development) — adding it means an extra request per business, planned for a future version, not silently promised here.
  • Single page of results (~20 max) per query. Getting more requires simulating map panning/scrolling, which this version doesn't do — for full city coverage, run multiple narrower queries (by neighborhood or ZIP) instead of one broad one.
  • Uses a real headless browser, so a run is slower (typically 15-30s) and slightly more resource-intensive than a plain HTTP-based actor in this family — reflected in the same per-result pricing, not a separate surcharge.
  • Google's internal response format can change without notice; if a run suddenly returns 0 results, please open an issue so the parser can be updated.

FAQ

Do I need a Google API key or billing account? No — it drives a real browser against the public Maps site, no Google Cloud project or API key required. Does this scrape property listings (like Zillow)? No — this actor returns real estate agencies and agents as Google Maps business listings, not for-sale/for-rent property data. Can I get more than ~20 results for one city? Run several queries scoped to neighborhoods or ZIP codes within the city instead of one citywide query — each returns its own up-to-20 set. Why is completeness sometimes below 1.0? The scoring field checks a general set of business fields (title, url, price, location, seller, rating); this actor doesn't set price or seller (not meaningful for an agency listing), so a partial score is expected, not a data-quality problem.