Most review tooling asks "what do people say about this place?" The more interesting question, for fraud work anyway, is "what else has this person reviewed?" On Google Maps that history is public on every contributor profile, and completely unqueryable: you scroll, you squint, you give up around review forty. The Google Maps Contributor Reviews API on Apify turns a contributor ID into that full history as structured JSON.
Disclosure: the Apify links in this post are affiliate links. If you run the Actor, I may earn a referral commission at no extra cost to you.
Can you get reviewer history from Google's official API?
No. Google's official Places API returns a small sample of reviews per place and offers no per-reviewer endpoint at all, so there is no sanctioned way to ask "show me everything this contributor has written." The reviewer axis simply is not exposed. A scraper-as-API is the only practical route: give it the long number from a contributor profile URL, get back one row per review with the reviewer's profile attached.
What the Reviewer History API returns
The Google Maps Contributor Reviews API returns every review a contributor has left as JSON rows: rating, text, date, likes, the place reviewed, and the reviewer's Local Guide profile.
| Field | Example | Notes |
|---|---|---|
contributor_name |
Matt Moeini |
With contributor_level and contributor_points
|
contributor_local_guide |
true |
Local Guide status |
contributor_contributions |
{ "reviews": 32, "photos": 120 } |
Profile totals |
rating |
5 |
Per review, with likes
|
snippet |
"Great little spot, the service was excellent..." |
The review text |
place_info |
{ "title": "Le Petit Marcel", "type": "Restaurant", "gps_coordinates": {...} } |
What was reviewed, with coordinates |
The coordinates in place_info matter more than they look: string fifty of them together and you have the reviewer's geographic footprint.
Who this is for
Trust-and-safety and fraud analysts who vet suspicious five-star clusters. Reputation researchers checking whether a rival's glowing reviews come from real locals. And data journalists or OSINT-minded folks studying how review activity actually behaves. If that second group sounds like you, be a good citizen: this is public data, use it proportionately.
The manual way, and where it breaks
You can open a contributor profile and scroll. The feed loads lazily, so a 200-review history means minutes of scrolling, and there is no copy that preserves structure, so you end up screenshotting. Automating that scroll yourself means a headless browser, session juggling, and markup that changes whenever Google feels like it. The reviewer page is one of the least stable surfaces I have scraped, which is why I stopped scraping it by hand.
The faster way: run the reviewer history scraper
Apify Console
- Open the Google Maps Contributor Reviews API and click Try for free.
- Paste a
contributorId, the long number from any reviewer profile URL, and setmaxResultsPerContributor. - Run it and export the history as JSON, CSV, or Excel.
REST
curl -X POST "https://api.apify.com/v2/acts/johnvc~google-maps-contributor-reviews-api/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "contributorId": "107022004965696773221", "maxResultsPerContributor": 50 }'
Endpoint reference: the Apify API docs.
Profile a reviewer in Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("johnvc/google-maps-contributor-reviews-api").call(
run_input={"contributorId": "107022004965696773221", "maxResultsPerContributor": 50}
)
for review in client.dataset(run["defaultDatasetId"]).iterate_items():
place = review.get("place_info", {})
print(review["rating"], place.get("title"), place.get("type"), review.get("date"))
Batch mode exists too: pass contributorIds as a list and profile a whole set of reviewers in one run.
Pull a full review history
The base task, ID in and every public review out: Get a Google Maps reviewer's full review history.
Vet a reviewer for fake-review signals
Rating distribution, burst timing, and category patterns fall out of the rows directly. Start with Vet a Google reviewer and spot fake review signals or Audit a Local Guide's reviews.
Read the geographic footprint
Because every row carries coordinates, geography becomes computable: check a reviewer's geographic coherence, estimate their home region, map the footprint, or tell if they are local or traveling. A reviewer whose "local favorites" span four continents in one month is telling you something.
Export to whatever your pipeline eats
Format-specific tasks cover the common targets: CSV, Excel, JSONL for data pipelines, and even RSS if you want a reviewer as a feed.
Ask Claude to vet a reviewer over MCP
Exposed through the Model Context Protocol, the Actor becomes a tool Claude, Claude Code, or Cursor can call, so "pull this contributor's history and flag anything odd" happens in one conversation with real rows behind it. More on Claude at claude.ai.
FAQ about scraping Google Maps reviewer data
How is this different from a regular Google Maps reviews scraper?
A place-reviews scraper answers "what do people say about this business." This scraper flips the axis: everything one person has reviewed, across every place. For fraud and vetting work the reviewer axis is the one that matters, and almost nothing else exposes it.
What does the reviewer history scraper cost?
A $0.001 start fee plus $0.0015 per review on the free plan, cheaper per review on paid plans. Fifty reviews cost under a dime, you only pay for reviews actually returned, and maxResultsPerContributor caps the spend.
How do I run the scraper against one reviewer from Python?
Call johnvc/google-maps-contributor-reviews-api with apify-client and a contributorId, as in the snippet above, then iterate the dataset. Each item is one review with the profile fields repeated, so no joins are needed.
Can Claude use this reviewer scraper through MCP?
Yes. Connect the Apify MCP server and the Actor appears as a callable tool in Claude, Claude Code, and Cursor, which turns reviewer vetting into a prompt.
Can I schedule the scraper to monitor a contributor?
You can. Save the ID as a task, attach an Apify schedule, and each run appends the newest reviews, giving you a change log per reviewer. Start from the Google Maps Contributor Reviews API.
What will the scraper never return?
Anything Google does not show publicly: private or removed reviews, precise timestamps (dates arrive as "2 months ago" style strings), and histories beyond the 200 most recent reviews per contributor. Profiles with hidden activity return what is visible, which may be nothing.
More from Truffle Pig Data
The natural companions: the Google Maps Reviewer Geo Profile API automates the home-region estimate from the same histories, the Google Maps Places API surfaces the businesses and contributor IDs to feed in, and the Yelp Reviews API cross-checks a reputation story on a second platform.
Wrapping up
Reviewer history is the review data nobody exposes, and it is the layer where fake-review patterns actually live. Feed one contributor ID to the Google Maps Contributor Reviews API and read a reviewer the way a fraud analyst does.
Top comments (0)