Google Maps Reviewer Geo Profile API
Pricing
from $19.41 / 1,000 contributor analyzeds
Google Maps Reviewer Geo Profile API
Infer a Google Maps reviewer's home region from their review history. Clusters review coordinates into a standardized home-region guess (city/state/country + ISO codes), a confidence score, and a local-vs-travel footprint. One row per reviewer, for reviewer vetting and fraud research. MCP-ready.
Pricing
from $19.41 / 1,000 contributor analyzeds
Rating
5.0
(1)
Developer
John
Maintained by CommunityActor stats
2
Bookmarked
4
Total users
1
Monthly active users
19 hours ago
Last modified
Share
Infer a Google Maps reviewer's home region from their public review history. Give the API a contributor ID and it fetches that reviewer's reviews, reverse-geocodes the coordinates attached to every review, and clusters them into a single derived profile: a standardized home-region guess (city, state, country, plus ISO codes), a confidence score, how many reviews sit in the home cluster versus travel outliers, a compact footprint of the regions they review in, and a centroid and bounding box. One row per reviewer.
Built for aggregate reviewer vetting, reputation research, and review-fraud detection. It answers "where is this reviewer based, and how far do they roam?" at region level. It is not a tool for locating a specific individual, and it deliberately stops at city/region granularity.
What you get
One derived row per reviewer:
- Home region:
home_region_guessplus the standardized breakdownhome_city,home_admin(state/province),home_admin_code(ISO 3166-2),home_country,home_country_code(ISO 3166-1) - Signal quality:
confidence,home_cluster_size,travel_outliers,located_reviews,total_reviews,distinct_regions - Footprint:
footprint, the top regions the reviewer reviews in, each with a count and a share - Geometry:
centroid(mean lat/lon of the home cluster) andbounding_box(the full geographic spread) - Reviewer profile for context:
contributor_name,contributor_level,contributor_local_guide,contributor_points,contributor_contributions
How it works
Every Google Maps review carries the coordinates of the place reviewed. This API reverse-geocodes those coordinates offline against a bundled GeoNames dataset, so the region output is standardized and language-independent (it does not depend on how the address happens to be written). The densest cluster of a reviewer's reviews is a strong proxy for where they are based; the scattered tail is travel. Deeper history sharpens the signal, so raise maxResultsPerContributor when a reviewer's recent activity skews toward travel.
Use cases
- Vet a reviewer before trusting their reviews: does their footprint look like a real local, or a scattered pattern typical of paid reviews?
- Reputation research: profile an expert witness, public figure, or vendor by the region their review history clusters in
- Review-fraud detection: flag accounts whose reviews are spread implausibly wide or concentrated on a single distant target
- Compare a batch of reviewers on one place to see whether they share an improbable geographic pattern
- Feed an AI agent a reviewer's geo profile to summarize whether their reviews are locally coherent
🔌 Integrations: Automate Reviewer Reputation Research
A single run answers one question: where is this reviewer based? The value compounds when you run the reviewer geo profile on a schedule, so a watchlist of contributor IDs is re-profiled as their review history grows and every result flows into the tools you already use. Each recipe below builds on the standard Apify platform integrations.
Tasks and schedules (the core recipe)
Save one task per watchlist (for example "reviewers on my clinic listing") with its contributorIds and regionGranularity, then attach a schedule from the Actor's Actions, then Schedule menu. One schedule can trigger many tasks at once. Handy cron strings:
0 7 * * *runs every day at 7 AM.0 */6 * * *runs every six hours.0 9 * * 1runs every Monday morning.
Re-profiling on a schedule catches the moment a reviewer's confidence drops or fresh travel_outliers appear. The Bulk-Analyze Google Reviewers' Home Regions task is a ready-made batch setup you can put on a schedule.
n8n
This Actor ships as a community node, n8n-nodes-google-maps-reviewer-geo-profile-api (install steps are in the n8n integration section below). A typical workflow is four nodes: a Schedule Trigger, then the reviewer geo profile node, then a Filter that keeps rows where confidence is low or home_country_code is unexpected, then a Slack or email node that alerts you. If you would rather not install a node, the Apify n8n integration can run any Actor natively.
Make and Zapier
Both connect without code: trigger the Actor on a schedule and route each derived row onward to a sheet, a CRM, or a chat channel. See Make and Zapier for the same alert-on-a-schedule pattern.
Supabase and storage
Send the accumulated profiles to a database so history builds up across runs. No-code: chain the n8n Actor node into a Supabase node. In code, run the Actor with apify-client and bulk-insert the flat output rows:
from apify_client import ApifyClientfrom supabase import create_clientapify = ApifyClient("YOUR_APIFY_TOKEN")supabase = create_client("YOUR_SUPABASE_URL", "YOUR_SUPABASE_KEY")run = apify.actor("johnvc/google-maps-reviewer-geo-profile-api").call(run_input={"contributorIds": ["107022004965696773221"], "regionGranularity": "city"})rows = []for item in apify.dataset(run["defaultDatasetId"]).iterate_items():rows.append({"contributor_id": item["contributor_id"],"home_region_guess": item["home_region_guess"],"home_country_code": item["home_country_code"],"confidence": item["confidence"],"travel_outliers": item["travel_outliers"],})supabase.table("reviewer_geo_profiles").insert(rows).execute()
MCP and AI agents
Add the Actor as a tool to any MCP client (Claude, Cursor, and others) through the hosted Apify MCP server. The Actor-specific URL is https://mcp.apify.com/?tools=actors,docs,johnvc/google-maps-reviewer-geo-profile-api (also shown in the Use this API from Claude (MCP) section above). An agent can then answer a question like "profile these five reviewers and flag any whose footprint is not locally coherent." If you drive agents from Claude Code (free trial) or Claude Cowork (free trial), point them at the server and ask in plain language.
Webhooks
For anything custom, add an Apify webhook on ACTOR.RUN.SUCCEEDED to push each finished dataset to your own endpoint.
Input
| Field | Type | Description |
|---|---|---|
contributorId | string | A single Google Maps contributor ID (the long numeric ID from a reviewer's profile). Provide this, contributorIds, or both. |
contributorIds | array of strings | A batch of contributor IDs to profile in one run. Merged with contributorId and de-duplicated. |
regionGranularity | string | Level the home-region guess is computed at: city (default), admin1 (state/province), or country. |
hl | string | Optional two-letter language code for the source reviews. Default en. |
maxResultsPerContributor | integer | Reviews to analyze per contributor, most recent first. Default 100, maximum 200. |
You can read a contributor ID from any place review's reviewer.
Choosing a granularity
citygives the sharpest answer (e.g. "Chicago, IL") and is the default.admin1rolls up to state/province, which is steadier for reviewers who move around a metro area.countryis best for spotting cross-border patterns.
The row always includes the full standardized breakdown (city, admin, country, ISO codes) no matter which granularity drives the headline home_region_guess.
Example input
{"contributorId": "107022004965696773221","regionGranularity": "city","maxResultsPerContributor": 100}
Sample output
{"result_type": "reviewer_geo_profile","contributor_id": "107022004965696773221","contributor_name": "Matt Moeini","contributor_level": 5,"contributor_local_guide": true,"home_region_guess": "Chicago, IL","home_city": "Chicago","home_admin": "Illinois","home_admin_code": "US-IL","home_country": "United States","home_country_code": "US","confidence": 0.72,"home_cluster_size": 23,"travel_outliers": 9,"located_reviews": 32,"total_reviews": 32,"distinct_regions": 6,"region_granularity": "city","footprint": [{ "region": "Chicago, IL", "count": 23, "share": 0.7188 },{ "region": "Miami, FL", "count": 3, "share": 0.0938 }],"centroid": { "latitude": 41.9354, "longitude": -87.6443 },"bounding_box": { "min_latitude": 25.7617, "min_longitude": -87.6847, "max_latitude": 41.9784, "max_longitude": -80.1918 }}
Pricing
Pay-per-event: a small actor_start fee plus one charge per contributor analyzed. You pay once per reviewer, regardless of how deep the history goes, so pulling a full 200-review history to sharpen the signal costs the same as a shallow run.
| Plan | Per contributor analyzed | Start fee |
|---|---|---|
| Free | $0.02 | $0.001 |
| Bronze | $0.015 | $0.001 |
How to get started
- Open Google Maps Reviewer Geo Profile on the Apify Store.
- Enter a
contributorId(or acontributorIdslist). - Run the Actor and read the derived home-region profile from the dataset.
- Export as JSON, CSV, or Excel, or pull it from the API.
Prefer code? See johnvc's GitHub for setup guides and code examples.
Run from the API
curl -X POST "https://api.apify.com/v2/acts/johnvc~google-maps-reviewer-geo-profile-api/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"contributorId":"107022004965696773221","regionGranularity":"city"}'
🔌 Use this API from Claude (MCP)
This Actor is compatible with the Model Context Protocol (MCP), so AI agents can call it as a tool. Add it through the hosted Apify MCP server using this Actor-specific URL:
https://mcp.apify.com/?tools=actors,docs,johnvc/google-maps-reviewer-geo-profile-api
If you run agents from Claude Code (free trial) or Claude Cowork (free trial), add the Apify MCP server and ask it to "profile this reviewer's home region and tell me whether their footprint looks locally coherent."
Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp
Data and attribution
Region names, ISO codes, and coordinates are resolved offline using data from GeoNames, licensed under CC BY 4.0.
🔗 Related Tools
Reviewer vetting, reputation research, and fraud work usually chain a few tools together. These pair naturally with this API:
- Google Maps Contributor Reviews (Reviewer History API) returns a contributor's full review history as structured JSON. It is the upstream feed this profiler reads: pull the raw reviews there, then geo-profile the same
contributorIdhere. - Google Maps Places API finds places in bulk and returns their reviews, which is where you harvest the contributor IDs to profile.
- Google Local API returns Local Pack and business-search SERPs, a quick way to build the list of listings whose reviewers you want to vet.
- Yelp Reviews API extends the same reputation research to a second review platform when one source is not enough.
Older single-purpose alternatives, such as this generic Google Maps review scraper, pull raw reviews off a place listing but stop there: they do not cluster a reviewer's coordinates, infer a home region, or score local-versus-travel confidence. That option also carries a default placeholder name, a handful of users, and no ratings, whereas this API is actively maintained and returns one clean, standardized geo profile per reviewer.
FAQ
What is a contributor ID?
It is the long numeric ID that identifies a Google Maps reviewer. You can read it from any place review's reviewer profile, then pass it here.
Can this locate a specific individual?
No. It reports an aggregate, region-level home area derived from where a reviewer's public reviews cluster. It does not resolve a home address or track a person, and it stops at city/region granularity by design. Use it for reviewer vetting and reputation or fraud research, not to identify where someone lives.
How accurate is the home region?
It reflects where the reviewer's reviews cluster, which is a strong proxy for a home base but not a guarantee. The confidence score tells you how concentrated the cluster is, and located_reviews tells you how much data it is based on. Deeper history (raise maxResultsPerContributor) improves it.
What if a reviewer travels a lot?
The travel_outliers count and the footprint show the spread. A low confidence with many distinct regions is exactly the signal that a reviewer roams (or that the account is not a genuine local).
Can I profile many reviewers at once?
Yes. Pass a contributorIds list; each reviewer is analyzed independently and returned as its own row.
Why standardized ISO codes?
So you can group or filter reviewers by country (home_country_code) or state/province (home_admin_code) without parsing free-text addresses that vary by language.
Can I schedule this reviewer geo profile API?
Yes, and this is where the tool earns its keep. Any run can be automated: create a saved task with your contributorIds and settings, then attach a schedule from the Actor's Actions, then Schedule menu. Use cron strings like 0 7 * * * for daily at 7 AM, 0 */6 * * * for every six hours, or 0 9 * * 1 for Monday mornings, and note that one schedule can trigger many tasks at once. The Integrations section above (Automate Reviewer Reputation Research) has the full monitoring recipe. Reference: Apify schedules.
Should I use an API or a web scraper?
Both, really. An official API is rate limited, quota bound, and often missing the reviewer coordinates this tool needs, while a web scraper collects public data directly with no quota. This Actor gives you the best of both: it works as a no-code web scraper you run from the Store and as a clean API endpoint you call yourself, and it returns a derived geo profile rather than raw HTML.
Can I integrate this Scraper with other apps?
Yes. It connects to almost any cloud service through Apify integrations: route results into Make, Zapier, Slack, Google Sheets, or a database, and use webhooks on ACTOR.RUN.SUCCEEDED for custom actions. See the Integrations section above for copy-paste recipes.
Can I use this reviewer geo profile with the API?
Yes. The Apify API gives programmatic access to run the Actor, schedule it, and fetch datasets, and the apify-client package exists for both Node.js and Python. See the Actor's own API tab for ready-made snippets and your token.
Can I use this Actor through an MCP server?
Yes. Add it as a tool to any MCP client (Claude, Cursor, and others) through the hosted Apify MCP server using the Actor-specific URL https://mcp.apify.com/?tools=actors,docs,johnvc/google-maps-reviewer-geo-profile-api. See the Apify MCP docs for setup.
How can I vet reviewers across other Google Maps and review tools?
Pair this API with the related tools above: pull a reviewer's raw history with the Google Maps Contributor Reviews API, harvest contributor IDs from a listing with the Google Maps Places API, discover local listings with the Google Local API, and extend the check to a second platform with the Yelp Reviews API.
Is this a reputable source for reputation research?
The geo profile is derived transparently: it reverse-geocodes the coordinates attached to a reviewer's public reviews against the open GeoNames dataset (CC BY 4.0), then clusters them into a region-level home guess with a confidence score you can audit. It is aggregate and region-level by design, so treat it as one input to reputation research alongside the raw review history, not as a standalone verdict.
Is it legal to analyze Google Maps reviewers this way?
The Actor works only with public review data and returns an aggregate, region-level profile, not a home address. For background on the wider topic, see Apify's overview of the legality of web scraping. As always, follow the applicable laws and terms for your own use case.
Featured Tasks
Ready-to-run examples that show this API solving a specific problem. Each opens its own setup so you can run it on your account in one click.
- Detect Out-of-Town Google Reviewers
- Profile a Google Reviewer's Location via MCP
- Verify a Google Reviewer Is a Real Local
- Find a Google Reviewer's Home Country
- Spot Geographically Inconsistent Reviewers
- Bulk-Analyze Google Reviewers' Home Regions
Также на русском (Russian)
- Проверка иногородних авторов отзывов Google Maps: API
- Гео-профиль автора отзывов Google Maps через MCP
- Проверка автора отзывов Google: местный или нет
- Страна и город автора отзывов Google Maps по API
- Выявление фейковых отзывов: география авторов на картах
- API: массовый анализ регионов авторов отзывов Google Карт
中文版 (Chinese)
- 识别异地Google Maps评论者:常驻地区+置信度反刷评
- 让AI通过MCP推断谷歌地图评论者的家乡地区与出行足迹
- 谷歌地图评论者本地身份核验:置信度评分与足迹分析
- 谷歌地图评论者所在国家与城市识别|ISO代码地区归属推断API
- 谷歌地图虚假评论检测API:识别地理位置异常的评论者
- 批量分析谷歌地图评论者常住地区与出行足迹|信誉与虚假评论调查API
n8n integration
Available as an n8n community node, n8n-nodes-google-maps-reviewer-geo-profile-api. In n8n: Settings, Community Nodes, install n8n-nodes-google-maps-reviewer-geo-profile-api, then use it in any workflow (it also works as an AI Agent tool).
Last Updated: 2026.07.27