Google Maps Extractor - Fast Business Data & Leads avatar

Google Maps Extractor - Fast Business Data & Leads

Pricing

Pay per usage

Go to Apify Store
Google Maps Extractor - Fast Business Data & Leads

Google Maps Extractor - Fast Business Data & Leads

Extract Google Maps business data at scale: names, categories, addresses, coordinates, phones, websites, opening hours, ratings and review counts. Business data only, no review texts or photo lists, so it runs far faster and cheaper than browser-based extractors. Export to CSV, Excel, JSON.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Andrew Babo

Andrew Babo

Maintained by Community

Actor stats

0

Bookmarked

449

Total users

0

Monthly active users

2 days ago

Last modified

Share

Extract Google Maps business listings at scale — business data only. No review texts, no photo galleries, no popular-times histograms: that is exactly why this actor is several times faster and cheaper than browser-based extractors.

Need review bodies, photos and popular times? Use the heavy sibling, Google Maps Scraper.

Proxies (important)

Run with Apify Proxy + RESIDENTIAL; it is the default in the input form. Google blocks datacenter IPs within minutes and the run then returns nothing. If the residential group is not available on your plan, the actor automatically falls back to the default Apify proxy and flags proxyDegraded in the run summary.

Empty results are not failures

If nothing matches (rare keyword, empty area) the run succeeds with an empty dataset and the run summary carries zeroResultReason (NO_RESULTS, NO_RESULTS_IN_AREA, ALL_BLOCKED, UPSTREAM_TEMPORARY) plus a human-readable zeroResultMessage. Set failOnZeroResults: true if you prefer the run to fail instead.

What you get per place

title, categoryName, categories, address, street, neighborhood, city, postalCode, state, countryCode, countryName, location (lat/lng), plusCode, totalScore, reviewsCount, openingHours, permanentlyClosed, temporarilyClosed, phone, phoneUnformatted, website, imageUrl, placeId, fid, cid, url, rank, isAdvertisement, searchString.

How it works

  • No browser on the main path. Google Maps' own JSON endpoints are called directly, so a place costs a fraction of a second instead of several seconds of page rendering.
  • Breaks the ~120-results-per-viewport limit by splitting the area into adaptive map tiles and deduplicating by place ID.
  • Detail requests only when they add something. A listing record that already carries website, phone, hours and review count never triggers an extra request.
  • Geo guard: results that fall outside the requested area (Google answering from the egress IP) are dropped instead of silently polluting the dataset.

Input

Minimal run:

{
"searchStringsArray": ["coffee shop"],
"locationQuery": "Da Nang, Vietnam",
"maxCrawledPlacesPerSearch": 100
}

Residential proxies are strongly recommended — datacenter IPs get blocked by Google within minutes.

Benchmarks — head-to-head vs compass/google-maps-extractor

Same query, same place cap, same bounding box, run sequentially. Coverage is computed on the matched-by-place-ID intersection so result-set composition cannot flatter either side.

500 places per query:

Querythis actorcompasscost / 1k places (this)cost / 1k places (compass)
coffee shop, Da Nang23.1 s34.9 s$0.013$4.32
IT services, Singapore29.3 s65.0 s$0.015$4.12
hotel, Bangkok22.5 s60.0 s$0.013$5.00
logistics, Ho Chi Minh City28.5 s52.1 s$0.002$4.75

Field coverage is equal or better on every field measured. The consistent wins:

Fieldthis actorcompass
postalCode100%35–100%
reviewsCount100%54–99%
plusCode82–98%0%
imageUrl97–100%95–99%

Title, category, address, street, city, state, countryCode, coordinates, rating, opening hours, phone, website and Maps URL match compass exactly on the intersection.

Full tables: docs/poc-vs-compass-500.md and docs/poc-vs-compass-100.md, produced by scripts/compare.mjs.

For AI agents (MCP-ready)

This actor is built to be called by AI agents. It works out of the box with the Apify MCP Server — add it to Claude Desktop, Cursor or any MCP client: the agent can pull business listings and leads on its own.

{
"mcpServers": {
"google-maps-extractor": {
"url": "https://mcp.apify.com/?actors=andrew_babo/google-maps-extractor",
"headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }
}
}
}

Agent skill (paste into your agent's instructions)

Use the "google-maps-extractor" tool for fast, cheap Google Maps BUSINESS
DATA: names, addresses, coordinates, phone, website, rating, review counts,
opening hours. It does NOT return review texts, photo galleries or popular
times — for those use "google-maps-scraper" instead.
HOW TO CALL
- { "searchStringsArray": ["coffee shop"], "locationQuery": "Da Nang, Vietnam",
"maxCrawledPlacesPerSearch": 100 }
- Always keep the default residential proxy. Datacenter IPs are blocked by
Google within minutes and the run returns nothing.
- Cap "maxCrawledPlacesPerSearch" to what the user actually needs — it is
the cost driver.
- Precise areas: "customGeolocation", or bbox / centerPoint + radiusMeters.
OUTPUT CONTRACT
- One row per place: title, categories, full address parts, location
(lat/lng), totalScore, reviewsCount, openingHours, phone, website,
placeId, cid, url.
- An empty dataset is a valid SUCCESS: read zeroResultReason
(NO_RESULTS, NO_RESULTS_IN_AREA, ALL_BLOCKED, UPSTREAM_TEMPORARY) and
zeroResultMessage in the run summary and report it. ALL_BLOCKED means
retry with residential proxy, not "no businesses exist".
- Never invent places, phone numbers or emails that are not in the rows.