Google Maps Reviews Scraper — Photos, Ratings & Translations
Pricing
from $0.30 / 1,000 per reviews
Google Maps Reviews Scraper — Photos, Ratings & Translations
Scrape Google Maps reviews by place URL or place ID. Get review text with English translation, star ratings, attached photos, likes, owner responses, dates, and reviewer profiles — 20 fields. $0.50 per 1,000 reviews; pay only for what you get.
Pricing
from $0.30 / 1,000 per reviews
Rating
0.0
(0)
Developer
bootforge
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
Google Maps Reviews Scraper
The Google Maps Reviews Scraper is an Apify actor that extracts every public review for any place on Google Maps — review text with English translation, star rating, dates, likes, owner responses, attached review photos, and reviewer details. Point it at a place by URL or place ID and export the reviews as JSON, CSV, or Excel for sentiment analysis, reputation monitoring, or competitor research.
Table of contents
- What the Google Maps reviews scraper does
- How to scrape Google Maps reviews
- Google Maps reviews scraper input
- Google Maps review data output
- How much it costs
- Recommended proxies for Google Maps reviews
- Why this Google Maps reviews scraper
- FAQ
- Rate this actor
- Related actors
What the Google Maps reviews scraper does
- 📝 Full review text + English translation — the original review plus Google's English translation in
text_translatedwhen the review isn't already in your requested language. - ⭐ Ratings, dates, and likes — 1–5 star rating, relative and absolute dates, and the like count on each review (
review_likes). - 💬 Owner responses — the business owner's reply text and a
has_owner_responseflag, for tracking how a business engages its customers. - 📷 Attached review photos — every image a reviewer attached, as a list of direct URLs in
review_images. - 👤 Reviewer details — name, profile URL, photo, and total review count, so you can weight local guides vs. one-off reviewers.
- 🔢 Sort and cap — pull newest, most relevant, or highest/lowest rated reviews, and cap per place (or set unlimited).
- 🌍 Any place, by URL or ID — accepts Google Maps place URLs and raw hex place IDs; billed per review actually delivered.
How to scrape Google Maps reviews
- Click Try for free and open the actor.
- Paste one or more Google Maps place URLs into
startUrls(open the place in Google Maps and copy the URL from your browser's address bar), or paste hex place IDs intoplaceIds. - Set
maxReviewsper place (default100; use0for unlimited). - Choose a
reviewsSortorder and alanguagefor the review text. - Click Start and watch reviews stream into the dataset.
- Export as JSON, CSV, or Excel, or pull from the Apify API.
Scrape by place URL:
{"startUrls": ["https://www.google.com/maps/place/ATX+Family+Dental/@30.24,-97.75,17z/data=!4m8!3m7!1s0x8644b5003b80596b:0x6b271d491de49e1e!..."],"maxReviews": 200,"reviewsSort": "newest","language": "en"}
Get a place's top reviews:
{"startUrls": ["https://www.google.com/maps/place/..."],"maxReviews": 5,"reviewsSort": "highestRating"}
Scrape by hex place ID:
{"placeIds": ["0x8644b5003b80596b:0x6b271d491de49e1e"],"maxReviews": 100}
Google Maps reviews scraper input
| Field | Default | Description |
|---|---|---|
startUrls | [] | Google Maps place URLs to scrape reviews from (copy the full URL from the address bar). |
placeIds | [] | Raw place IDs in hex feature-id form (0x…:0x…). ChIJ… IDs are not supported — paste the place URL instead. |
maxReviews | 100 | Max reviews per place. 0 = unlimited. Counts reviews with text only. |
reviewsSort | newest | Order: newest, mostRelevant, highestRating, lowestRating. |
language | en | BCP-47 code for review text (e.g. en, de, fr, vi). |
proxy | Apify residential | Proxy configuration. Residential is recommended (see below). |
Provide at least one of startUrls or placeIds.
Google Maps review data output
Each review is one flat row of 20 fields:
{"place_id": "0x8644b5003b80596b:0x6b271d491de49e1e","business_name": "ATX Family Dental","business_url": "https://www.google.com/maps?cid=7720627710330453534","review_id": "ChdDSUhNMG9nS0VJQ0FnSURydXBfcXdBEAE","review_url": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChdD...!...","rating": 5,"text": "Absolutely love this place. The staff is kind, professional, and always on time. Dr. Chen explained everything clearly and I left with zero anxiety.","text_translated": null,"review_images": ["https://lh3.googleusercontent.com/grass-cs/AN..."],"relative_time": "2 months ago","absolute_date": "March 2026","language": "en","review_likes": 3,"owner_response": "Thank you so much! We love having you as a patient.","has_owner_response": true,"reviewer_name": "Sarah M.","reviewer_profile_url": "https://www.google.com/maps/contrib/113456789012345678901","reviewer_review_count": 47,"reviewer_photo_url": "https://lh3.googleusercontent.com/a-/ALV-UjV...","scraped_at": "2026-06-19T08:30:00+00:00"}
| Field | Description |
|---|---|
place_id | Hex feature ID of the place. |
business_name | Place name. |
business_url | Openable maps?cid= link to the place. |
review_id, review_url | Review identifier and a direct link to the review. |
rating | Star rating, 1–5. |
text, text_translated | Original review text and Google's English translation (null if already in the requested language). |
review_images | List of attached review photo URLs. |
relative_time, absolute_date | "2 months ago" and "March 2026". |
language | Detected language of the review. |
review_likes | Like count on the review. |
owner_response, has_owner_response | Owner's reply text and a boolean flag. |
reviewer_name, reviewer_profile_url, reviewer_photo_url, reviewer_review_count | Reviewer identity and total reviews contributed. |
scraped_at | ISO 8601 timestamp of extraction. |
How much it costs
This actor uses pay-per-event pricing — you pay for reviews delivered, not for time.
| Event | USD |
|---|---|
| Actor start (per run) | $0.01 |
| Review delivered | $0.0005 ($0.50 per 1,000) |
| Use case | Reviews | Est. cost |
|---|---|---|
| Monitor one business (latest 100) | 100 | ~$0.06 |
| Competitive snapshot (10 businesses × 100) | 1,000 | ~$0.51 |
| Sentiment dataset — one category in a city | 10,000 | ~$5.01 |
| Full competitor audit (100 businesses × 200) | 20,000 | ~$10.01 |
One run start = $0.01 regardless of how many places or reviews you pull. You only pay for reviews actually delivered — if a place has 30 reviews and you set maxReviews: 100, you are charged for 30.
Recommended proxies for Google Maps reviews
Google rate-limits datacenter IPs aggressively on its review endpoints, so residential proxies are recommended. This actor supports Apify Proxy — the default proxy config uses Apify residential IPs, so it works out of the box.
For high-volume runs, or if you run your own scrapers inside or outside Apify, we recommend DataImpulse residential proxies — pay-as-you-go, per-country targeting, no monthly minimum, which keeps Google's review endpoints resolving cleanly:
👉 Get DataImpulse residential proxies (referral link)
Why this Google Maps reviews scraper
- The most complete review row — English translations, review likes, and attached review photos, plus owner responses and full reviewer details, in a single flat row.
- Pay only for what you get — per-review billing with a $0.01 run start and no per-place or subscription fees; unused
maxReviewsheadroom is never charged. - URL or place ID input — paste a place URL straight from Google Maps, or feed raw hex IDs you already have.
- CSV-friendly output — 20 flat fields, validated with Pydantic (impossible ratings, negative counts, and malformed URLs are dropped, not passed through).
- Open source — the underlying
google-maps-scraperPython package ships a Typer CLI and a FastAPI server; the Apify wrapper is a thin layer.
FAQ
How do I get a Google Maps place URL? Open the place in Google Maps, then copy the full URL from your browser's address bar and paste it into startUrls. The URL contains the place's hex ID, so no extra lookup is needed. You can paste multiple URLs, one per line.
What place ID format does placeIds accept? Only the hex feature-id form (0x…:0x…). The newer ChIJ… string IDs are not supported — if that's all you have, paste the place's Google Maps URL instead and the actor resolves it for you.
Why do I get fewer reviews than the place's total? Google counts star-only ratings (no text) in a place's total, but this actor returns only reviews with text as records. A place showing "500 reviews" may return far fewer text records.
Which proxies work best for scraping Google Maps reviews? Residential proxies. Google rate-limits datacenter IPs on its review endpoints, so the default config uses Apify residential proxies; for your own scrapers we recommend DataImpulse (referral link).
Is scraping Google Maps reviews legal? This actor collects only publicly available review data. You are responsible for complying with Google's terms and applicable laws, and for handling any personal data (such as reviewer names) with a lawful basis.
Can I translate reviews to English? Yes. When a review isn't in your requested language, Google's English translation is returned in text_translated, alongside the original text.
Rate this actor ⭐
If the Google Maps Reviews Scraper saved you time, please leave a review on its Apify Store page — ratings help other people find it and tell us what to build next. Hit a bug or missing field? Open an issue through the actor's Issues tab and we'll fix it fast — recency and reliability are what keep this actor ranking.
Related actors
Building a full reputation or lead pipeline? Pair this actor with our other scrapers — same proxy config format, same Pydantic-validated output, all open source.
- Google Maps Business & Contact Scraper — scrape Google Maps businesses with emails, phone numbers, ratings, images, and social links. The natural pair for reviews.
- Trustpilot Scraper — scrape Trustpilot reviews and ratings for cross-platform reputation monitoring.
- Instagram Comment Scraper — scrape comments on Instagram posts for social sentiment and audience feedback.