Google Maps Review Scraper avatar

Google Maps Review Scraper

Pricing

Pay per usage

Go to Apify Store
Google Maps Review Scraper

Google Maps Review Scraper

Scrape Google Maps reviews for any place by CID or Maps URL — no fixed store list required. Each review (reviewer, rating, text, date, owner reply) is pushed as a clean dataset row, ready for ETL, sentiment analysis, or reporting pipelines.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Touma

Touma

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Scrapes Google Maps reviews for any list of places (via cid and/or a raw Maps URL), optionally filtered to a specific month/year. No bundled store list -- pass whatever places you want at run time.

Input

fieldrequirednotes
targetsone of targets/targetsCsvJSON array of {name, cid, mapsUrl} -- only cid or mapsUrl is required per item
targetsCsvone of targets/targetsCsvCSV text, columns name,cid,mapsUrl
monthno1-12. Omit for ALL reviews, any date.
yearnopaired with month; defaults to 2026 if month is set and this isn't
maxReviewsPerPlacenocap per place; omit for no cap
workersnoconcurrency, default 6
limitnoonly process the first N targets (testing)

Example run -- specific month, one place

{
"targets": [
{"name": "Bata Shoe Store - Esplanade, Kolkata", "cid": "1886281027832551729"}
],
"month": 7,
"year": 2026
}

Example run -- ALL reviews (no date filter), multiple places by URL

{
"targets": [
{"name": "Store A", "mapsUrl": "https://www.google.com/maps/place/.../@..."},
{"name": "Store B", "cid": "5850262627799758060"}
],
"workers": 8
}

Example run -- bulk via CSV

{
"targetsCsv": "name,cid,mapsUrl\nStore A,1886281027832551729,\nStore B,,https://www.google.com/maps/place/...",
"month": 7,
"year": 2026,
"workers": 10
}

Output

Each row pushed to the actor's default dataset is one review: name, cid, mapsUrl (from the input target) plus the review fields -- review_id, reviewer_name, rating, review_text, review_date_iso, owner_reply_text, etc. (see botguard_lib.parse_review for the full field list). Pull it from the dataset via the Apify API/export the same way any other actor's output is consumed.

Notes

  • Occasional per-place failures are retried automatically (up to 3 attempts) before being logged.
  • workers above ~8-10 increases the chance of rate limiting -- start conservative and raise it once you've confirmed a run stays stable.