Google Maps Reviews Scraper - Unlimited Reviews Per Place
Pricing
from $0.30 / 1,000 reviews
Google Maps Reviews Scraper - Unlimited Reviews Per Place
Scrape unlimited Google Maps reviews from place URLs or IDs. Get ratings, full text, owner replies, sub-ratings, photos and reviewer details.
Pricing
from $0.30 / 1,000 reviews
Rating
0.0
(0)
Developer
Zen Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
Google Maps Reviews Scraper | Unlimited Reviews Per Place, Owner Replies (2026)
41 fields per review, including the owner's reply and the reviewer's own Food, Service and Atmosphere scores.
| Maps & Review Tools • Use one source or combine hotel reviews | |||
|
➤ You are here |
Four sources, one dataset |
Places, ratings and details |
Reviews, replies and media |
Copy to your AI assistant
zen-studio/google-maps-reviews-scraper on Apify. Scrapes every review of a Google Maps place, with owner responses and sub-ratings. Call ApifyClient("TOKEN").actor("zen-studio/google-maps-reviews-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Needs startUrls or placeIds; maxReviewsPerPlace=0 means the whole history. Full spec: GET https://api.apify.com/v2/acts/zen-studio~google-maps-reviews-scraper/builds/default (Bearer TOKEN) -> inputSchema, actorDefinition.storages.dataset, readme. Token: https://console.apify.com/account/integrations
Key Features
- No limit per place: set Reviews per place to
0and the complete history comes back, however long it is. Rows stream out as they land, so a place with tens of thousands of reviews stays within 512 MB. - 41 fields per review: rating and its scale, full text, the owner's reply, per-question sub-ratings, translations, likes, photos and videos, Local Guide standing, and the place the review belongs to.
- Filter at the source: keyword, date cutoff and sort are applied before delivery, so you are not billed for reviews you discard.
- Partner reviews handled: Tripadvisor, Booking and Trip.com reviews arrive with their own rating scale, so an 8 out of 10 is never read as an 8 out of 5.
- Free tier: 10 lifetime runs, 100 reviews per run, no credit card.
How to Scrape Google Maps Reviews
- Open Google Maps Reviews Scraper in the Apify Console and click Try for free.
- Paste your Google Maps place URLs into Start URLs, or place IDs into Place IDs.
- Set Reviews per place, or leave it at
0to pull the complete history. - Click Start, then download the reviews as JSON, CSV, Excel, XML or HTML.
Basic: the latest reviews for a place
{"startUrls": [{ "url": "https://www.google.com/maps/place/Hotel+Adlon+Kempinski+Berlin/@52.5161791,13.3805048,17z" }],"maxReviewsPerPlace": 100,"reviewsSort": "newest"}
Monitoring: only what changed since last week
{"placeIds": ["ChIJHQQciMZRqEcR2X4b8-vf5Bk"],"newerThan": "7 days","maxReviewsPerPlace": 0}
newerThan is measured from the moment the run starts, so a scheduled run keeps the same window instead of drifting behind a fixed date.
It compares each review's latest activity, not its original post date. A review edited this week comes back even if it was first posted years ago, which is what you want when watching for changes.
Complaints only
{"placeIds": ["ChIJHQQciMZRqEcR2X4b8-vf5Bk"],"reviewsSort": "lowestRanking","maxReviewsPerPlace": 50}
One topic across a portfolio
{"placeIds": ["ChIJHQQciMZRqEcR2X4b8-vf5Bk", "0x47a851db960e0eb1:0x6ce7f513876203dd"],"reviewsKeyword": "parking","maxReviewsPerPlace": 0}
Keyword matching works the way the search box on the Google Maps reviews panel does, so related wording is included, not just the exact word.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | array | [] | Google Maps place URLs, including shortened maps.app.goo.gl links. Max 500 |
placeIds | array | one example place | ChIJ... place IDs or 0x...:0x... feature IDs. Max 500 |
maxReviewsPerPlace | integer | 100 | Stop after this many per place. 0 for the complete history |
reviewsSort | string | newest | newest, mostRelevant, highestRanking, lowestRanking |
newerThan | string | "" | A date (2026-08-01) or a rolling period (7 days). Forces newest first |
reviewsKeyword | string | "" | Keep only reviews about a topic |
reviewsOrigin | string | all | all, or google for first-party reviews only |
language | string | en | Display language for place names, categories and relative dates |
countryCode | string | us | Two-letter country code used when loading each place |
Feature IDs need no lookup, so they start fastest. The Google Maps Scraper emits them as hexId.
What Data Can You Extract from Google Maps Reviews?
Every row carries its place, so the dataset is usable on its own with no join.
- Review:
reviewId,rating,ratingScale,text,textTranslated,language,translatedLanguage,date,publishedAtMicros,editedAtMicros,isEdited,likes,source,sourceIcon,reviewUrl - Owner reply:
ownerResponsewith its own text, date and language - Attributes:
attributes[], the sub-ratings and chip answers the reviewer filled in (Food, Service, Atmosphere, Rooms, Location, price per person, trip type, wait time, parking) - Media:
photos[]plusmedia[]with type, caption, capture date, dimensions and coordinates - Author:
author,authorId,authorProfile,authorPhoto,authorReviewCount,authorPhotoCount,isLocalGuide,localGuideLevel - Place:
placeName,placeRating,reviewsCount,primaryCategory,categories,address,addressFormatted,countryCode,latitude,longitude,placeId,hexId,googleMapsUrl
Output Example
{"recordType": "review","reviewId": "Ci9DQUlRQUNvZENodHljRjlvT2tkWFJWOXRVbkp5ZEVOb1JGcHFTR3h4TlhNMWRsRRAB","rating": 5,"ratingScale": 5,"date": "a week ago","publishedAtMicros": 1787263048020576,"editedAtMicros": null,"isEdited": false,"text": "This one turned into a full Latin-food spread because nobody at the table could agree on one thing, which was honestl...","textTranslated": null,"language": "en","translatedLanguage": null,"likes": 0,"source": "Google","sourceIcon": "https://www.gstatic.com/images/branding/product/1x/googleg_48dp.png","ownerResponse": {"text": "Thank you so much for such a fun review! 🥂 Sounds like the perfect “order everything and share” kind of night: cevich...","date": "6 days ago","publishedAtMicros": 1787756409000000,"language": "en"},"attributes": [{"key": "GUIDED_DINING_PRICE_RANGE","label": "Price per person","question": "How much did you spend per person?","rating": null,"values": ["$90–100"]},{"key": "GUIDED_DINING_FOOD_ASPECT","label": "Food","question": "Food","rating": 5,"values": null},{"key": "GUIDED_DINING_SERVICE_ASPECT","label": "Service","question": "Service","rating": 5,"values": null}],"media": [{"id": "CIABIhBcXh1w1Lv1bZjMlpky9qVP","caption": null,"takenAt": "2026-08-20","date": "a week ago","latitude": 40.75683722983638,"longitude": -73.99349376183964,"type": "photo","url": "https://lh3.googleusercontent.com/grass-cs/ACvplmP6PRg9yN5VFq29XMKymDc2sNCu-94zbG5XarFLd003s0UM1zBi006x8derDy0MRN7roe...","width": 320,"height": 320,"durationMs": null},{"id": "CIABIhC1Nwo3ebJZP-6_vrvcER16","caption": null,"takenAt": "2026-08-20","date": "a week ago","latitude": 40.75683722983638,"longitude": -73.99349376183964,"type": "photo","url": "https://lh3.googleusercontent.com/grass-cs/ACvplmM1iJGmHnylX-vgKGy4nk7nibgEploD7eCalm0INy1yzGfShqfSVcBdVwaXmgOWCtE3gV...","width": 348,"height": 348,"durationMs": null},{"id": "CIABIhC6VBo3VR3indeW-_uDqMwW","caption": null,"takenAt": "2026-08-20","date": "a week ago","latitude": 40.75683722983638,"longitude": -73.99349376183964,"type": "photo","url": "https://lh3.googleusercontent.com/grass-cs/ACvplmPngX4DFyuMf3LNAdBrsEfOPjvVEn1p9Yj6RLKvHuTAyoQBg4scDeTb_tPnUfcpeyuEUi...","width": 1200,"height": 756,"durationMs": null}],"photos": ["https://lh3.googleusercontent.com/grass-cs/ACvplmP6PRg9yN5VFq29XMKymDc2sNCu-94zbG5XarFLd003s0UM1zBi006x8derDy0MRN7roe...","https://lh3.googleusercontent.com/grass-cs/ACvplmM1iJGmHnylX-vgKGy4nk7nibgEploD7eCalm0INy1yzGfShqfSVcBdVwaXmgOWCtE3gV...","https://lh3.googleusercontent.com/grass-cs/ACvplmPngX4DFyuMf3LNAdBrsEfOPjvVEn1p9Yj6RLKvHuTAyoQBg4scDeTb_tPnUfcpeyuEUi..."],"author": "Moali Timon","authorPhoto": "https://lh3.googleusercontent.com/a/ACg8ocJnOlG6L38fGzjtbFUdUY_aDWbVfSt73qw_y7IAan4hwrFNTg=s120-c-rp-mo-br100","authorProfile": "https://www.google.com/maps/contrib/115266825635927578667/reviews?hl=en","authorId": "115266825635927578667","authorReviewCount": 4,"authorPhotoCount": 14,"isLocalGuide": false,"localGuideLevel": 3,"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2tkWFJWOXRVbkp5ZEVOb1JGcHFTR3h4...","placeId": "ChIJ__8ztFJYwokRm2x1-poe3ks","hexId": "0x89c25852b433ffff:0x4bde1e9afa756c9b","placeName": "Buena Vista Restaurant & Bar","googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJ__8ztFJYwokRm2x1-poe3ks","address": "Buena Vista Restaurant & Bar, 536 9th Ave, New York, NY 10018","addressFormatted": "536 9th Ave, New York, NY 10018","latitude": 40.7568372,"longitude": -73.9934938,"placeRating": 4.7,"reviewsCount": 1508,"primaryCategory": {"id": 8,"slug": "restaurants"},"categories": ["Latin American restaurant","Bar & grill","Cocktail bar"],"countryCode": "US"}
Download the results as JSON, CSV, Excel, XML or HTML from the run's Storage tab, or pull them through the Apify API.
Advanced Usage
Ready-made configurations for review monitoring, reputation management, competitor tracking and sentiment analysis.
Track a portfolio daily
{"placeIds": ["ChIJHQQciMZRqEcR2X4b8-vf5Bk", "0x47a851db960e0eb1:0x6ce7f513876203dd"],"newerThan": "2 days","maxReviewsPerPlace": 0,"reviewsOrigin": "google"}
Pull a full history for analysis
{"placeIds": ["0x47a851c6881c041d:0x19e4dfebf31b7ed9"],"maxReviewsPerPlace": 0,"reviewsSort": "newest"}
Local-language reviews with local labels
{"placeIds": ["0x47a851c6881c041d:0x19e4dfebf31b7ed9"],"maxReviewsPerPlace": 200,"language": "de","countryCode": "de"}
How much does it cost to scrape Google Maps reviews?
$0.399 per 1,000 reviews on the Free and Bronze plans, falling automatically to $0.349 on Silver and $0.299 on Gold and above. A $0.05 start fee applies once per run.
| Reviews | Total cost |
|---|---|
| 100 | $0.09 |
| 1,000 | $0.46 |
Reviews are charged as they are delivered, so a run that returns 40 reviews is charged for 40. Filtering by keyword, date or sort happens before delivery, so narrowing your input is the direct way to lower cost.
Free tier: 10 lifetime runs, 100 reviews per run, no credit card.
Keeping it running
Reviews arrive continuously, so this Actor earns its place on a schedule rather than as a one-off.
Suggested cadence. Daily with newerThan: "2 days" for active monitoring, or weekly with newerThan: "8 days" for reporting. The small overlap covers a missed run.
Where the rows go. The dataset connects to Google Sheets, Make, Zapier, Slack and plain webhooks from the Actor's Integrations tab. A webhook on run completion is the usual way to push new reviews straight into a helpdesk or an alerting channel.
How to run the scraper and put it on a schedule (official Apify videos):
FAQ
What is Google Maps, and what counts as a review here?
Google Maps is Google's mapping and local-business service, where visitors rate places from one to five stars and leave written reviews. This Actor returns those reviews for places you already have, one row each, including the reviews Google syndicates from partner sites such as Tripadvisor and Booking.
Does Google have an official reviews API, and why use this instead?
The Google Places API returns at most five reviews per place, with no owner replies, no reviewer sub-ratings and no partner reviews. This Actor returns the complete history with all 41 fields, and needs no Google Cloud project, billing account or API key.
How many reviews can I extract per place?
There is no cap. Set Reviews per place to 0 and the complete history comes back; places with tens of thousands of reviews stream through in bounded batches.
How do I find the places to feed in?
Paste Google Maps URLs, or use Google Maps Scraper to find places by search term and location and feed its placeId or hexId values straight in here.
Can I search for places from this Actor?
No, this one starts from places you already have. Google Maps Scraper does the discovery, and Google Maps Directions & Routes API covers travel times between them.
How do I export the data?
JSON, CSV, Excel, XML or HTML from the run's Storage tab, or through the Apify API. JSON preserves the nested ownerResponse, attributes and media fields exactly; CSV flattens them.
Is it legal to scrape Google Maps reviews?
The Actor collects only publicly visible information. Reviews contain personal data such as author names and profile links, so you are the controller under GDPR, CCPA and equivalent laws, and you need a lawful basis to process them. Using the output is your responsibility, and so is compliance with Google's terms.
Why is a partner review's rating not out of 5?
Syndicated reviews keep their source's scale. ratingScale tells you what the number is out of, so always read rating together with ratingScale.
What are attributes on a review?
The structured answers reviewers give alongside the stars: Food, Service and Atmosphere scores for restaurants, Rooms and Location for hotels, plus chips such as trip type, price per person, wait time and parking. Each entry carries the question Google asked, so an unfamiliar key still explains itself.
Does it return reviews in one language?
Reviews come back in the language they were written in. Where Google offers a translation it is included as textTranslated, with both language codes.
What happens if a place cannot be loaded?
It is skipped and reported in the run log, and the rest of the run continues. If a place's history comes back only partially, the run says so explicitly rather than presenting it as complete.
What is the free tier?
10 lifetime runs, 100 reviews per run, no credit card.
More Zen Studio scrapers for maps & local data
Baidu Maps 百度地图
Google Maps
Apple Maps
Yandex Maps Яндекс Карты
2GIS 2ГИС
Naver Map & Place 네이버 지도
Bing Maps
Support
- Bugs: Issues tab
- Features: Issues tab
Legal Compliance
Extracts publicly available data. Users must comply with Google's terms and data protection regulations (GDPR, CCPA).
Google Maps reviews scraper: unlimited reviews per place with ratings, review text, owner responses, reviewer sub-ratings, photos and videos, exported to CSV, JSON or Excel.
