Google Maps Reviews Scraper avatar

Google Maps Reviews Scraper

Under maintenance

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Google Maps Reviews Scraper

Google Maps Reviews Scraper

Under maintenance

A robust, high-performance utility designed for developer automation, data integration, and AI training. Features built-in captcha bypass, headful/headless browser execution, and proxy support to scrape Google data seamlessly, reliably, and at scale.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

Coding Frontned

Coding Frontned

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

18 hours ago

Last modified

Share

Extracts one flat record per actual public review visible for each supplied exact Google Maps business URL. Business metadata is merged from responses generated by the normally loaded Maps page and the visible business panel; reviewer and review fields come only from visible review cards. Missing facts are omitted, never replaced with nulls or guesses.

{"placeUrls":["https://www.google.com/maps/search/?api=1&query=Eiffel%20Tower&query_place_id=ChIJLU7jZClu5kcR4PcOOO6p3I0"],"maxReviews":3,"sortBy":"newest","language":"en","country":"US","timezone":"Europe/Paris","proxyConfiguration":{"useApifyProxy":false}}

Provide 1–10 placeUrls or the compatibility alias urls (not both and not a generic Maps search URL); each URL must identify one Maps business, for example /maps/place/... or a Maps URL containing cid, place_id, query_place_id, or ftid. maxReviewsPerPlace is the compatibility alias for maxReviews. Sort selection is attempted in the live UI and sortApplied is emitted only after a real Maps menu-option click plus a bounded card refresh wait. The actor fails if no actual reviews are collected rather than emitting synthetic place-only data.

Output includes source-backed business identity/contact/category/rating/location/media when present; real review ID, author profile/image, Local Guide/reviewer activity badges, rating, date, text/translated text, visit/service/context details, likes, owner reply/date, and review media when visible. Reviewer avatars are never included in reviewPhotoUrls. Every emitted record also carries a stable recordId, the loaded sourceUrl, supplied exact business mapsUrl, input ordinal, review rank, availability flags, public-source identity, and transparent browser/proxy/extraction provenance.

The Actor uses ordinary headless Chromium without stealth plugins, webdriver masking, platform spoofing, or modified Maps responses. Direct public navigation is the default. You may explicitly configure an Apify or custom HTTP(S) proxy; setup failures never fall back silently to direct traffic. Locale and timezone settings control normal browser presentation only. The legacy fingerprintProfile field is accepted for compatibility but has no effect; output always reports browserProfile: "standard-chromium".

Every run writes OUTPUT_SUMMARY with item/place counts, success status, route, duration, and any sanitized failure message. Source/challenge/consent and zero-review outcomes exit nonzero. Partial rows, if any place completed before a later failure, remain visible and are reported as partial data rather than a successful complete run.

Run npm run lint, npm test, apify run --purge --input-file qa-inputs/local-validation.json, and npm run validate for local verification. The validator also accepts retrieved cloud JSON on stdin with node validate-datasets.js -.