Google Maps Review Collector avatar

Google Maps Review Collector

Under maintenance

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Google Maps Review Collector

Google Maps Review Collector

Under maintenance

Collect Google Maps reviews for any place, preserved in the language the reviewer originally wrote them in. Sweeps every sort order and language pass to maximise unique review coverage.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

seungkyu cho

seungkyu cho

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

Share

Reviews for any place — kept in the language the reviewer actually wrote them in.

That distinction is the entire point of this actor. Google will happily hand you a machine translation of every review, and most tools take it. If you're doing sentiment analysis, translated text is a different dataset with different results.

What a row looks like

{
"recordType": "googleMapsReview",
"placeName": "이치란 시부야점",
"author": "伝説のわさび",
"rating": 5,
"text": "深夜に行っても回転が速くて待ち時間が短い。",
"originalLanguage": "ja",
"isOriginalText": true,
"capturedUnderHl": "ja",
"relativeDate": "2 months ago",
"photoCount": 3,
"photoUrls": ["https://lh5.googleusercontent.com/..."],
"ownerReplyText": null,
"scrapedAt": "2026-08-26T04:41:03.219Z"
}

isOriginalText tells you whether you're looking at the reviewer's own words or Google's translation of them. capturedUnderHl shows which language pass caught it — useful when you're auditing coverage.

How the original text is recovered

Google only shows a review's original text when you browse in that review's own language. So this actor sweeps the place once per language you list, merges the results by review ID, and keeps the original-language version whenever one turns up.

Measured on a Tokyo ramen shop with ["ko", "en", "ja"], capped at 200 reviews:

Single passThree passes
Reviews returned200200
With original text79 (39%)200 (100%)
Languages representedko onlyko / en / ja

Same bill, two and a half times the usable data.

The cap is applied once, at the end, after every pass has run — and the trim keeps original-language reviews ahead of translated ones. You get the most useful 200, not the first 200.

Input

{
"placeUrls": ["https://www.google.com/maps/place/.../data=!4m7!3m6!1s0x..."],
"maxReviewsPerPlace": 200,
"sortBy": "newest",
"languages": ["ko", "en", "ja"],
"expandLongReviews": true,
"headless": false
}
FieldMeaning
placeUrlsMust be the long /maps/place/.../data=… form — copy it from the address bar
sortBynewest, relevance, highestRating, lowestRating
sweepAllSortOrdersRun all four orders — the single best way to raise unique coverage
wideLanguageSweep14-language pass when you don't know the audience
keepOriginalOnlyDrop reviews whose original text never surfaced
expandLongReviewsClick through "More" so long reviews aren't truncated

Honest limits

  • This is not every review. Google caps how deep a review list will scroll, and the cap differs per sort order. On a place with 5,166 reviews: relevance gave 848, newest 750, and rating-sorted stopped at 176. All four orders combined reached 1,341 — about 26% of the total. Extra language passes barely move that number; they change which text you get, not how much.
  • Roughly a third of reviews have no text at all — star-only ratings. That's Google, not a collection failure.
  • Owner replies are truncated near 125 characters, and unlike review bodies they have no "More" button to expand. A trailing means the rest is gone.
  • headless: false is the working default. Google serves headless sessions a limited page with no reviews on it.
  • Google's terms prohibit automated collection. The risk and the use you make of the data are yours.

Good for

  • Multilingual sentiment analysis that isn't reading translations
  • Competitor review monitoring across locations
  • Finding what low-rating reviewers specifically complain about
  • Location research where the local-language reviews are the honest ones