Google Maps Reviews Scraper avatar

Google Maps Reviews Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Google Maps Reviews Scraper

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

REXREUS D.O

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Share

Google Maps Reviews Scraper

Fast lightweight Google Maps Reviews Scraper with sentiment analysis and owner responses

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

Quick Start Apify Node.js


Why this Actor?

FeatureWhat you get
Zero-Browser HTTP Speed10x faster ingestion (up to 60 reviews/sec) running on 256 MB RAM without Chromium cold-start delays.
Built-in Auto-SentimentInstant classification (POSITIVE, NEUTRAL, NEGATIVE) calculated in-memory with zero third-party LLM token costs.
Owner Response TrackingCaptures business owner reply text and timestamps to evaluate customer care SLAs and ORM metrics.
Local Guide & Reviewer MetricsIdentifies verified Local Guides and reviewer review counts for authority-weighted sentiment modeling.
Mobile Shortlink ResolutionSeamlessly accepts mobile share links (maps.app.goo.gl), Place IDs (ChIJ...), and full place URLs.
Incremental Date CutoffServer-side early termination with reviewsNewerThan, saving 80–95% compute on daily monitoring runs.
1NF Clean Tabular OutputStrictly flattened columns optimized for 1-click export to CSV, Excel, Google Sheets, or PowerBI.

Quick start

  1. Open Google Maps Reviews Scraper on Apify Console and click Start.
  2. Paste one or more Google Maps place URLs, Place IDs, or search queries into the input form.
  3. Configure optional limits like maxReviews (default: 50) and reviewsSort (e.g. newest).
  4. Click Save & Run and watch real-time review batches appear in the default dataset.
  5. 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

FieldTypeRequiredDefaultDescription
startUrlsArrayNo*[]List of Google Maps place URLs, search URLs, or mobile short links (maps.app.goo.gl).
searchTermsArrayNo*[]Keywords or business names to search (e.g. coffee shop brooklyn).
placeIdsArrayNo*[]Google Maps Place IDs starting with ChIJ... or GhIJ....
maxReviewsIntegerNo50Maximum reviews to extract per location (0 = unlimited).
reviewsSortStringNo"newest"Order of reviews: newest, most_relevant, highest_rating, lowest_rating.
reviewsNewerThanStringNonullISO date cutoff (YYYY-MM-DD). Halts pagination when older reviews appear.
languageStringNo"en"Language code for reviews and translations.
proxyConfigurationObjectNo{ "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.
  • 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

SymptomCauseFix
TargetResolveErrorThe 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...).
SoftBlockErrorDatacenter IP detected by Google's anti-bot protection.Enable Apify Residential proxy ("useApifyProxy": true) in proxy configuration.
0 reviews returnedThe 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.