Google Maps Reviews Scraper
Pricing
from $2.00 / 1,000 results
Google Maps Reviews Scraper
Extract Google Maps reviews, star ratings, reviewer Local Guide status, owner responses, and instant sentiment analysis at lightning speed.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
REXREUS D.O
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Google Maps Reviews Scraper
Extract Google Maps reviews, star ratings, reviewer Local Guide status, owner responses, and instant sentiment analysis at lightning speed.
Native HTTP-first engine · Zero Playwright/Puppeteer overhead · 256 MB RAM footprint
Why this Actor?
| Feature | What you get |
|---|---|
| Zero-Browser HTTP Speed | 10x faster ingestion (up to 60 reviews/sec) running on 256 MB RAM without Chromium cold-start delays. |
| Built-in Auto-Sentiment | Instant classification (POSITIVE, NEUTRAL, NEGATIVE) calculated in-memory with zero third-party LLM token costs. |
| Owner Response Tracking | Captures business owner reply text and timestamps to evaluate customer care SLAs and ORM metrics. |
| Local Guide & Reviewer Metrics | Identifies verified Local Guides and reviewer review counts for authority-weighted sentiment modeling. |
| Mobile Shortlink Resolution | Seamlessly accepts mobile share links (maps.app.goo.gl), Place IDs (ChIJ...), and full place URLs. |
| Incremental Date Cutoff | Server-side early termination with reviewsNewerThan, saving 80–95% compute on daily monitoring runs. |
| 1NF Clean Tabular Output | Strictly flattened columns optimized for 1-click export to CSV, Excel, Google Sheets, or PowerBI. |
Quick start
- Open Google Maps Reviews Scraper on Apify Console and click Start.
- Paste one or more Google Maps place URLs, Place IDs, or search queries into the input form.
- Configure optional limits like
maxReviews(default: 50) andreviewsSort(e.g.newest). - Click Save & Run and watch real-time review batches appear in the default dataset.
- Download your results in JSON, CSV, or Excel.
{"startUrls": [{"url": "https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0862515,17z"}],"maxReviews": 50,"reviewsSort": "newest","language": "en"}
How it works
Input URLs / Place IDs → Fast HTTP HEAD Resolver → Google Local Feed (GetLocalBoqProxy) → Lexicon Sentiment → Clean 1NF Dataset
Unlike legacy scrapers that spin up 2 GB headless Chromium instances to simulate human scrolling, this Actor interacts directly with Google's public Local Search UI data service (GetLocalBoqProxy). It paginates through continuation tokens in memory and streams batches of 25 records directly to the Apify dataset, ensuring zero out-of-memory crashes.
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | Array | No* | [] | List of Google Maps place URLs, search URLs, or mobile short links (maps.app.goo.gl). |
searchTerms | Array | No* | [] | Keywords or business names to search (e.g. coffee shop brooklyn). |
placeIds | Array | No* | [] | Google Maps Place IDs starting with ChIJ... or GhIJ.... |
maxReviews | Integer | No | 50 | Maximum reviews to extract per location (0 = unlimited). |
reviewsSort | String | No | "newest" | Order of reviews: newest, most_relevant, highest_rating, lowest_rating. |
reviewsNewerThan | String | No | null | ISO date cutoff (YYYY-MM-DD). Halts pagination when older reviews appear. |
language | String | No | "en" | Language code for reviews and translations. |
proxyConfiguration | Object | No | { "useApifyProxy": true } | Apify Residential or Datacenter proxy configuration. |
*Note: At least one of startUrls, searchTerms, or placeIds must be provided.
Output
Each row represents one review item with flattened scalar columns:
{"placeId": "0x808fba02425dad8f:0x6c296c66619367e0","placeName": "Googleplex","placeUrl": "https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0862515,17z","reviewId": "Ci9DQUlRQUNvZENodHljRjlvT214elZWTkdNRkJVY0RoWVQyZE9jMDlPVFRSMlJIYxAB","reviewerName": "Sarah Jenkins","reviewerId": "104928392019482710293","reviewerUrl": "https://www.google.com/maps/contrib/104928392019482710293/reviews","reviewerPhotoUrl": "https://lh3.googleusercontent.com/a/ACg8ocKeADoQthhp2IdgTlimVkywd7MKzT_0cHkxjSubl5M6kiVKnA=s120-c-rp-mo-br100","reviewerNumberOfReviews": 18,"isLocalGuide": true,"rating": 5,"text": "Incredible campus with amazing facilities, delicious food options, and welcoming atmosphere!","textTranslated": null,"publishAt": "2 weeks ago","publishedAtDate": "2026-09-30","likesCount": 4,"responseFromOwnerDate": "1 week ago","responseFromOwnerText": "Thank you for the wonderful feedback, Sarah!","reviewPhotos": [{"url": "https://lh3.googleusercontent.com/p/AF1QipM..."}],"sentiment": "POSITIVE","status": "SUCCESS"}
Cost, limits, proxy
- Memory: Runs comfortably on 256 MB – 512 MB RAM (no browser overhead).
- Concurrency: Fast asynchronous requests with sticky per-place proxy sessions.
- Proxy:
- Apify Cloud: Automatic Apify Residential proxy rotation (
groups: ['RESIDENTIAL']) prevents rate limiting. - Local Execution: Automatic direct fallback with exponential backoff and randomized jitter.
- Apify Cloud: Automatic Apify Residential proxy rotation (
- Expected Runtime:
- 50 reviews: ~2–4 seconds
- 1,000 reviews: ~15–25 seconds
Recipes
Recipe 1: Single Business Reputation Audit
{"startUrls": [{ "url": "https://www.google.com/maps/place/Central+Park/@40.785091,-73.968285,15z" }],"maxReviews": 100,"reviewsSort": "newest"}
Recipe 2: Incremental Monitoring Run (Reviews from 2026 Onward)
{"startUrls": [{ "url": "https://maps.app.goo.gl/sample123" }],"maxReviews": 0,"reviewsSort": "newest","reviewsNewerThan": "2026-01-01"}
Recipe 3: Multi-Location Keyword Discovery
{"searchTerms": ["specialty coffee seattle","artisan bakery portland"],"maxReviews": 25,"reviewsSort": "highest_rating"}
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
TargetResolveError | The URL or search query could not be resolved to a Google Feature ID. | Ensure the Google Maps URL is public or use a canonical Place ID (ChIJ...). |
SoftBlockError | Datacenter IP detected by Google's anti-bot protection. | Enable Apify Residential proxy ("useApifyProxy": true) in proxy configuration. |
0 reviews returned | The business has zero public reviews or all reviews are older than reviewsNewerThan. | Remove reviewsNewerThan filter or verify reviews on Google Maps directly. |
FAQ
Q: Does this scraper use Playwright or Puppeteer?
A: No. It uses an ultra-fast, native HTTP-first reverse-engineered architecture with got-scraping. This reduces compute unit costs by up to 90% and uses a fraction of the RAM.
Q: How does the auto-sentiment analysis work?
A: It combines normalized star-rating weighting with domain sentiment lexicons to assign POSITIVE, NEUTRAL, or NEGATIVE tags in sub-milliseconds without calling external LLM APIs.
Q: Can I scrape reviews by Google Place ID?
A: Yes! Simply pass your Place IDs (ChIJ...) into the placeIds array, and the scraper automatically resolves them to internal feature endpoints.
Q: Can I scrape private Google accounts or user emails?
A: No. This Actor extracts only publicly available review content. It never accesses private accounts, passwords, or personal email addresses.
Q: Can I copy, modify, or republish this Actor?
A: No. This Actor is proprietary software. You may run it on Apify or locally under the terms of your Apify account. You may not rebrand, republish, or claim authorship. See ./LICENSE.
Limitations
- Public reviews only. Reviews hidden, flagged, or deleted by Google moderation will not be visible.
- Rate-limiting rules apply; large-scale batch scraping requires residential proxy rotation.
License
Proprietary License. Copyright (c) 2026 REXREUS. All rights reserved. See ./LICENSE for full details.