Best Google Maps Scrapers on Apify
Quick answer
For most jobs, run compass/crawler-google-places (also surfaced as apify/google-maps-scraper, same engine). Use compass/google-maps-extractor when you want a cheaper, leaner keyword pull without the detail-page add-ons, compass/google-maps-reviews-scraper for review bodies at $0.30/1k reviews, and lukaskrivka/google-maps-with-contact-details when emails are a hard requirement.
Browse Google Maps Actors · Create an Apify account
Google Maps is the default source for local B2B leads, review intelligence, and geo directories. The practical choices are four Compass-maintained Actors and one community combo Actor by Lukas Krivka. All use pay-per-event pricing with no platform compute on top, so unit economics are predictable once you know the event mix.
One trap: the apify/google-maps-scraper URL and compass/crawler-google-places point at the same Actor (shared stats: ~426k total users, 4.75 rating, identical pricing). Don't pick "both" in a comparison.
Comparison: top Google Maps Actors
| Actor | Best for | Floor price | Typical data | Notes |
|---|---|---|---|---|
| crawler-google-places (aliased as apify/google-maps-scraper) | Production Places crawling at any volume | $2.10/1k places on Business; $5/1k on Free | Name, address, phone, website, category, rating, totalScore, lat/lng, opening hours, price bracket, place_id, images, hotel prices, popular times | Detail-page add-on scrapePlaceDetailPage costs $0.002/place extra and is required for review counts and richer fields |
| Google Maps Extractor | Fast keyword/URL lookups without reviews or images | $2.10/1k places (Business); $5/1k (Free) | Same core fields as the crawler, minus the reviews/images pipelines | Compass explicitly recommends the full crawler for most jobs; extractor is for narrow detail-free pulls |
| Google Maps Reviews Scraper | Review text, per-service stars, reviewer metadata | $0.30/1k reviews | One row per review with text, rating, author, date, owner responses, detailed per-service ratings | $29 Starter gets you ~58k reviews/month; supports relative date filters (1 month, 2 weeks) |
| Google Maps with contact details | Outreach lists that require emails | $2.10/1k places (Business) | Maps fields plus emails, Facebook/LinkedIn/Instagram URLs, and contact names scraped from each business site | 4.64 rating (lower than Compass's 4.75) reflects the brittleness of website-level email discovery |
| Custom Playwright Actor | Custom per-customer logic, internal APIs, non-standard exports | Your compute | Whatever you implement | You own selector maintenance every time Google ships a Maps UI change |
Plan-tier pricing for the crawler and extractor (from each Actor's Pricing tab):
| Plan | Place scraped (per 1,000) | Filter applied (per 1,000) |
|---|---|---|
| Free | $5.00 | $1.00 |
| Starter ($29/mo) | $4.00 | $1.00 |
| Scale | $3.00 | $0.75 |
| Business | $2.10 | $0.55 |
A Free account's $5 monthly credit will scrape roughly 1,000 places before hitting add-on costs. Before committing a quarter's budget, run a 5-result test and download the sample dataset so you can diff fields against your warehouse schema.
What data each Actor extracts
| Need | Use |
|---|---|
| Core listing grid (name, address, phone, site, rating, lat/lng, hours) | crawler-google-places or apify/google-maps-scraper (same Actor) |
| Reviews count, images, popular times, hotel prices | crawler-google-places with scrapePlaceDetailPage: true (+$0.002/place) |
| Lean keyword pulls without add-ons | Google Maps Extractor |
| Every review body (NLP, reputation, support QA) | Google Maps Reviews Scraper |
| Emails and social URLs not on the Maps card | Google Maps with contact details |
| Bespoke workflow | Custom Actor built on the Apify SDK |
When to use which
crawler-google-places (a.k.a. apify/google-maps-scraper)
The default. Compass ships changes here frequently and stats are stable: 4.75 rating across ~426k users, with consistently high run success. The engine handles keyword × location matrices, direct place URLs, and category enumeration. One gotcha: reviewsCount and richer fields require scrapePlaceDetailPage: true, which bills $0.002 per place on top of the $2.10–$5/1k base. For a 50k-row directory refresh, that add-on is roughly $100 extra, which is not trivial.
Google caps search results per query around 120–300 places regardless of maxCrawledPlaces; split by sub-geography (ZIP, district, grid tile) to exceed that ceiling.
Google Maps Extractor
Same Compass team, same $2.10/1k floor, but stripped of the reviews/images pipeline. Compass's own README tells you to prefer the full crawler for most jobs. The extractor is worth picking only for high-cadence keyword pulls where you'll never enable add-ons.
Google Maps Reviews Scraper
Separate Actor because review extraction has different unit economics: $0.30/1k reviews, not places. That is ~58k reviews on a $29 Starter plan. Input accepts place_id, Maps URLs, or keyword+location pairs; the date filter supports both absolute ISO dates and relative phrasing (2 weeks, 6 months). Outputs include owner responses and per-service star breakdowns where Google exposes them, which the place-detail add-on does not give you cleanly.
Google Maps with contact details
Lukas Krivka's combo runs a Maps crawl and then a second-pass website crawl per listing to pull emails, social URLs, and contact names. The 4.64 rating (vs 4.75 for the Compass crawler) is honest signal that website-level email discovery is noisy: expect a 40–70% email hit rate depending on vertical, and dedupe aggressively. If you're already paying for Hunter, Apollo, or Clearbit at scale, chaining those APIs onto a plain Compass run usually produces cleaner data.
Custom Playwright Actor
Worth it only when you need internal APIs, proprietary scoring, or fields no Store Actor exposes. Budget ongoing maintenance: Google ships Maps UI changes roughly quarterly and they break selectors.
Example lead-gen chain
- Run crawler-google-places for "Dentists in Manchester" with
maxCrawledPlacesPerSearch: 500and the area split into 4–6 ZIP tiles to dodge Google's per-query cap. - Feed
websiteURLs from the output into Google Maps with contact details (or pipe into Hunter/Apollo) to enrich with emails and LinkedIn URLs. - Shortlist the top 200 by rating × reviewsCount, then pass their
place_idvalues to Google Maps Reviews Scraper with a6 monthsdate filter for fresh reputation signal.
Sort the Apify Store Google Maps category by users or last modified before committing to a vendor. Anything with a rating below 4.3 or no updates in 6 months is a red flag.
Start with compass/crawler-google-places (the apify/google-maps-scraper URL is an alias of the same Actor). It covers the vast majority of lead-gen and directory jobs at $2.10–$5 per 1,000 places. Add the Reviews Scraper ($0.30/1k reviews) or lukaskrivka/google-maps-with-contact-details only if your spec requires review bodies or emails.
They are the same Actor under two URLs: identical user counts (~426k), identical 4.75 rating, identical pricing tiers, identical input schema. The apify-namespaced URL exists for discoverability; Compass maintains the code.
The Compass crawler and extractor are pay-per-event at $5/1k places on Free, $4 on Starter, $3 on Scale, and $2.10 on Business. Enabling scrapePlaceDetailPage adds $0.002/place. The Reviews Scraper is $0.30/1k reviews, about 58,000 reviews on the $29 Starter plan. There is no separate Apify platform compute charge for these Actors.
Legality depends on jurisdiction, data type, and Google’s terms. Use public business data responsibly and read our scraping legality guide; this is not legal advice.
Yes. Use Apify Schedules on the Actor and optionally webhooks or integrations to push results to Sheets, S3, or a warehouse after each successful run.
When no Store Actor matches your required fields or workflow, or when you must embed proprietary logic. Budget ongoing maintenance because Maps UI changes break selectors.
Common mistakes and fixes
Results cap out far below expectations.
Maps often returns bounded lists per query. Split geography, add queries, and read the Actor docs for max-results behavior.
Two Actors export different columns.
Compare each Actor’s README and sample dataset; pick one primary extractor for production schema, then enrich in a second step.
Emails missing from the export.
Base Maps rows usually need a follow-up email or contact Actor using website URLs; see the email extraction blog guide.



