Google Maps Reviews Scraper: Ratings, Text & Owner Reply
Pricing
from $7.00 / 1,000 reviews
Google Maps Reviews Scraper: Ratings, Text & Owner Reply
Scrape Google Maps reviews: star rating, reviewer name, full text, date, owner response and photo count. Works as MCP tool in Claude, ChatGPT & AI agents. Pay per result, first 10 free.
Pricing
from $7.00 / 1,000 reviews
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
⭐ Google Maps Reviews Scraper: Ratings, Text & Owner Replies
Overview
Google Maps Reviews Scraper extracts reviews from any Google Maps business listing at scale. Paste one or more Google Maps place URLs and get structured review data in seconds: star rating, full expanded review text, date, reviewer name and profile, owner response, photo count, and helpful votes.
It goes beyond the official Google Places API, which caps results at roughly five reviews per place with no control over sort order. This scraper drives a real Chromium browser through residential proxies, dismisses the consent dialog, scrolls the reviews panel, expands every truncated review, and returns up to 1,000 records per place sorted by newest, most relevant, highest, or lowest rating.
✅ No login required | ✅ No API key | ✅ Full expanded review text | ✅ MCP-ready for AI agents
Features
Up to 1,000 reviews per place URL, far beyond the official API's five review cap. Four sort orders: newest, most relevant, highest rating, lowest rating. Full expanded review text, never truncated with a "more" ellipsis. Handles the EU cookie consent wall automatically across regions. Pay per review returned, empty results and failed runs never charged.
How it works
The scraper opens each Google Maps place URL in a stealth hardened Chromium session behind Apify's residential proxy network, dismisses the cookie consent dialog with a multi selector fallback, and clicks into the reviews panel. It then applies your chosen sort order, scrolls to trigger Google's lazy loaded pagination, and clicks "read more" on every truncated review before extracting the content.
Every field is read from the rendered DOM, so review text, ratings, reviewer profiles, owner responses, photo counts, and helpful votes all match what a human visitor sees. The default residential proxy avoids Google's datacenter IP blocks, and you can override the browser locale by setting a language code.
🧾 Input configuration
{"placeUrls": ["https://www.google.com/maps/place/Eiffel+Tower/@48.8583701,2.2944813,17z/data=!4m8!3m7!1s0x47e66e2964e34e2d:0x8ddca9ee380ef7e0!8m2!3d48.8583701!4d2.2944813!9m1!1b1"],"maxReviews": 50,"sortBy": "newest","language": "en","proxyConfig": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
📤 Output format
{"reviewId": "ChdDSUhNMG9nS0VJQ0FnSUNuNV9DVnFRRRAB","placeId": "ChIJLU7jZC1u5kcR9wOePBLb38A","placeName": "Eiffel Tower","placeUrl": "https://www.google.com/maps/place/Eiffel+Tower/...","reviewerName": "TALENTO HUMANO","reviewerUrl": "https://www.google.com/maps/contrib/110758759962531004425","rating": 5,"reviewText": "Breathtaking at night. Worth the wait to go to the top.","reviewDate": "51 minutes ago","ownerResponse": null,"photoCount": 2,"helpfulVotes": 0,"charged": true,"scraped_at": "2026-07-10T04:56:59.605Z"}
Every review record contains these fields:
| Field | Description |
|---|---|
🆔 reviewId | Unique review identifier from Google |
📍 placeId | Google Maps place identifier |
🏢 placeName | Name of the business or landmark |
🔗 placeUrl | The input Google Maps URL |
🙋 reviewerName | Display name of the reviewer |
👤 reviewerUrl | Link to the reviewer's Google Maps profile |
⭐ rating | Star rating from 1 to 5 |
📝 reviewText | Full expanded review text |
📅 reviewDate | When the review was posted |
✅ ownerResponse | Business owner reply if present |
📷 photoCount | Number of photos attached to the review |
👍 helpfulVotes | Number of helpful votes |
💳 charged | Whether this result consumed a paid credit |
🕒 scraped_at | ISO timestamp when the review was scraped |
💼 Common use cases
Reputation management Pull the latest reviews on a schedule, route negatives to your CRM, and catch recurring complaints early.
Competitive analysis Collect competitors' reviews to compare star distributions and surface common praise and criticism.
Local SEO research Study review velocity, rating trends, and owner response rates for top ranking businesses in a category or city.
Sentiment analysis and NLP
Feed full reviewText into classifiers, topic models, or LLM summarization pipelines without worrying about truncation.
Product and service improvement Mine reviews for recurring issues and feature requests. Extract authentic customer quotes for social proof.
🚀 Getting started
- Open the actor and add one or more Google Maps place URLs. Open the place on Google Maps and copy the URL from the address bar.
- Set
maxReviewsper place (default 50, up to 1,000). - Choose
sortBy:newest,most_relevant,highest_rating, orlowest_rating. - Optionally set the
languageISO code (e.g.fr,de,ja) and keep the defaultRESIDENTIALproxy. - Click Start, then export the dataset as JSON, CSV, or Excel, or pull it via API or MCP.
FAQ
How many reviews can I scrape per place?
Up to 1,000 per place URL. Google lazy loads reviews through scroll events rather than traditional pagination, so the ceiling keeps runs bounded. For more than 1,000, run the actor again with a different sortBy value to capture distinct slices of the review corpus.
Does it handle the Google cookie consent dialog? Yes. The scraper runs a real Chromium browser and automatically detects and dismisses the EU cookie consent wall (trying multiple selector strategies) before any interaction, across regions.
Can I filter reviews by language?
Set the language input to any ISO 639 1 code. That sets the browser locale so Google serves reviews in or near your preferred language. Google still shows reviews in the reviewer's own language, so for strict filtering, post process reviewText with a language detection library.
How much does it cost? Pay per event. You are charged per review actually returned, and there is no free tier. Empty results and failed runs are never charged. Residential proxy usage is billed separately by Apify at standard rates.
Can I use it inside an AI agent? Yes. It is exposed as an MCP tool. See below.
Use in Claude, ChatGPT & any MCP agent
https://mcp.apify.com/?tools=themineworks/google-maps-reviews
Or call it programmatically with the Apify client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('themineworks/google-maps-reviews').call({placeUrls: ['https://www.google.com/maps/place/Taj+Mahal/...'],maxReviews: 100,sortBy: 'highest_rating',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((i) => !i._type));
🛠️ Complete your Google Maps pipeline
Pair this reviews scraper with the rest of the themineworks Google Maps and lead gen suite:
- Google Maps Search Scraper: turn a Maps search into a plain business listing dataset, no email step, the cheapest way to find the businesses in the first place.
- Google Maps Leads Scraper: turn a Maps search into B2B leads with verified emails.
- Website Contact Scraper: extract emails, phones, and socials from any domain list.
- Email Verifier & Validator: MX and SMTP verify addresses before you send.
- B2B Leads Finder: find named decision makers at target companies.
Common flow: google-maps-search-scraper finds businesses, maps-leads adds verified emails, then google-maps-reviews pulls reviews for the same businesses to gauge reputation.