Google Maps Scraper ⚡ Places + Emails & Leads
Pricing
from $3.00 / 1,000 place scrapeds
Google Maps Scraper ⚡ Places + Emails & Leads
Scrape Google Maps businesses: name, address, phone, website, rating, reviews, opening hours and images. Plus email + social-media leads from each business's website, charged only when found. Simple input, no hidden add-ons.
Pricing
from $3.00 / 1,000 place scrapeds
Rating
0.0
(0)
Developer
Guilherme Teixeira
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Google Maps Scraper — Places, Reviews & Contacts, Cheaper & Faster
🌐 README_PT.md | README_ES.md
Extract business names, addresses, phone numbers, websites, ratings, reviews, opening hours, GPS coordinates and images from Google Maps — to power lead generation, local market research, competitive analysis and location intelligence. All place details are included in the base price, and you can scrape multiple locations in a single run.
From $1.00 per 1,000 places — up to 75% cheaper than the leading alternative, with no surprise add-ons.
Why use this instead of alternatives?
- ✅ Drastically cheaper — $1.00/1K places vs $2.10–$4.00/1K on the market leader. Reviews $0.30/1K, images $0.30/1K.
- ✅ No paid add-ons — opening hours,
additionalInfo, ratings distribution and full address parsing are included in the base price. The leading competitor charges an extra $2.00/1K for "additional place details". - ✅ Multiple locations per run — pass several locations separated by
||and the actor processes them all with automatic cross-location deduplication. No separate "orchestrator" actor needed. - ✅ Cleaner output — parsed address fields (
street,city,state,postalCode,countryCode), prices as numbers, ISO 8601 timestamps, no duplicate place IDs. - ✅ 98%+ success rate — residential proxies, stealth browser, humanized delays and exponential-backoff retries.
- ✅ Multilingual docs (EN / PT / ES) — no other Google Maps scraper does this.
- ✅ AI-agent ready — available via the Apify MCP protocol for Claude, GPT and other agents.
Input
| Parameter | Type | Required | Description | Default |
|---|---|---|---|---|
searchStringsArray | array | Conditionally | Search terms like restaurant, dentist, hotel. Combined with every location. | ["restaurant"] |
locationQuery | string | No | Location(s) to search. Multiple allowed, separated by ||. | New York, USA |
maxCrawledPlacesPerSearch | integer | No | Max places per search term per location. | 100 |
language | string | No | Results language (en, pt-BR, es, …). | en |
maxReviews | integer | No | Reviews per place. 0 = none, 99999 = all. Charged $0.30/1K. | 0 |
reviewsSort | string | No | newest, mostRelevant, highestRanking, lowestRanking. | newest |
reviewsStartDate | string | No | Only reviews after this date (YYYY-MM-DD or 3 months). | — |
maxImages | integer | No | Images per place. Charged $0.30/1K. | 0 |
skipClosedPlaces | boolean | No | Skip temporarily/permanently closed places. | false |
categoryFilterWords | array | No | Only include matching categories. | — |
placeMinimumStars | number | No | Minimum average rating (0–5). | — |
restrictToSearchedCity | boolean | No | Keep only places in the searched city (drops nearby towns Google mixes in). | false |
startUrls | array | No | Direct Google Maps place/search URLs. | — |
placeIds | array | No | Google Place IDs (ChIJ…). | — |
countryCode / city / state / postalCode | string | No | Structured geolocation. | — |
customGeolocation | object | No | GeoJSON Point (with radiusKm), Polygon or MultiPolygon. | — |
scrapeReviewsPersonalData | boolean | No | Include reviewer name/URL/photo (⚠️ GDPR). | true |
maxConcurrency | integer | No | Parallel browsers (keep 3–5). | 4 |
proxyConfiguration | object | No | Residential proxies required. | Residential |
You must provide at least one of: searchStringsArray (+ a location), startUrls, or placeIds.
Example input
{"searchStringsArray": ["coffee shop"],"locationQuery": "São Paulo, Brasil || Rio de Janeiro, Brasil","maxCrawledPlacesPerSearch": 50,"language": "pt-BR","maxReviews": 10,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Output example
Real-world example (a restaurant in São Paulo):
{"title": "A Casa do Porco","categoryName": "Restaurant","categories": ["Restaurant"],"placeId": "ChIJi5am_jZYzpQRexample123","cid": "10683223470891234567","fid": "0x94ce5836fea6968b:0x943f...","url": "https://www.google.com/maps/place/A+Casa+do+Porco/@-23.5473,-46.6395,17z","address": "R. Araújo, 124 - República, São Paulo - SP, 01220-020, Brazil","street": "R. Araújo, 124","neighborhood": "República","city": "São Paulo","state": "SP","postalCode": "01220-020","countryCode": "BR","location": { "lat": -23.5473, "lng": -46.6395 },"phone": "+55 11 3258-2578","phoneUnformatted": "+551132582578","website": "https://acasadoporco.com.br","totalScore": 4.7,"reviewsCount": 28431,"price": "$$","openingHours": [{ "day": "Monday", "hours": "12:00 – 23:00" },{ "day": "Tuesday", "hours": "12:00 – 23:00" }],"permanentlyClosed": false,"temporarilyClosed": false,"imageUrl": "https://lh5.googleusercontent.com/p/example","searchString": "restaurant","rank": 1,"scrapedAt": "2026-07-05T12:00:00.000Z","source": "google_maps"}
Cost estimate
Base price: $1.00 / 1,000 places · Reviews $0.30 / 1,000 · Images $0.30 / 1,000.
| Places | Estimated cost | Time |
|---|---|---|
| 100 | ~$0.10 | ~1–2 min |
| 1,000 | ~$1.00 | ~10 min |
| 10,000 | ~$10.00 | ~1–2 h |
| 50,000 | ~$50.00 | ~5–8 h |
Reviews and images are only charged when you set maxReviews > 0 or maxImages > 0.
Price comparison vs Compass (compass/crawler-google-places)
| What | This actor | Compass |
|---|---|---|
| Place scraped | $1.00 / 1K | $1.50–$4.00 / 1K |
| Review | $0.30 / 1K | $0.50 / 1K |
| Image | $0.30 / 1K | $0.50 / 1K |
| Additional place details | Included | +$2.00 / 1K |
| Filter applied | Included | +$1.00 / 1K |
| Multiple locations per run | Yes | Requires separate orchestrator |
Integrations
This actor works with:
- n8n / Make / Zapier — schedule runs and pipe results to Google Sheets, Slack, a CRM or email.
- AI Agents — available via Apify MCP for Claude, GPT and other AI agents (agentic payments enabled).
- API — call directly through the Apify API for custom workflows and dashboards.
- Results map — every run saves an interactive
results-map.htmlin the Key-Value Store.
FAQ
How does it work? It drives a real (stealth) Chromium browser through Google Maps: it geocodes your locations, splits large areas into a search grid to beat Google's ~120-results-per-search ceiling, scrolls the results feed, then opens each place to extract full details.
How is this different from the Google Places API? The official API is metered, rate-limited, requires billing setup and hides many fields behind extra SKUs. This actor needs no Google API key and returns richer, ready-to-use structured data.
Can I scrape multiple cities at once? Yes — separate them with || in locationQuery (e.g. São Paulo, Brasil || Rio de Janeiro, Brasil). Results are automatically deduplicated across locations.
How fast is it? Roughly 1,000 places in ~10 minutes with residential proxies, depending on how many reviews/images you request.
Limitations
- Residential proxies are required. Datacenter proxies are blocked by Google within minutes.
- Google Maps caps a single search at ~120 results; the actor mitigates this with grid splitting, but very dense areas may still miss some places.
- Some fields (e.g.
kgmid, hotel/restaurant-specific blocks) are only populated when Google exposes them for that place. - Review timestamps come from Google as relative text (
a month ago); absolutepublishedAtDateis best-effort. - Google changes its DOM frequently. Selectors are centralized in
src/constants.jsand updated quickly when they break.
Changelog
- v0.1.0 (2026-07-05): Initial release — places, reviews, images, multi-location search, grid splitting, results map, EN/PT/ES docs.