Google Maps Reviewer Geo Profile API avatar

Google Maps Reviewer Geo Profile API

Pricing

from $19.41 / 1,000 contributor analyzeds

Go to Apify Store
Google Maps Reviewer Geo Profile API

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

John

Maintained by Community

Actor 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_guess plus the standardized breakdown home_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) and bounding_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 * * 1 runs 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 ApifyClient
from supabase import create_client
apify = 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

FieldTypeDescription
contributorIdstringA single Google Maps contributor ID (the long numeric ID from a reviewer's profile). Provide this, contributorIds, or both.
contributorIdsarray of stringsA batch of contributor IDs to profile in one run. Merged with contributorId and de-duplicated.
regionGranularitystringLevel the home-region guess is computed at: city (default), admin1 (state/province), or country.
hlstringOptional two-letter language code for the source reviews. Default en.
maxResultsPerContributorintegerReviews 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

  • city gives the sharpest answer (e.g. "Chicago, IL") and is the default.
  • admin1 rolls up to state/province, which is steadier for reviewers who move around a metro area.
  • country is 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.

PlanPer contributor analyzedStart fee
Free$0.02$0.001
Bronze$0.015$0.001

How to get started

  1. Open Google Maps Reviewer Geo Profile on the Apify Store.
  2. Enter a contributorId (or a contributorIds list).
  3. Run the Actor and read the derived home-region profile from the dataset.
  4. 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.

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 contributorId here.
  • 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.

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.

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.

Также на русском (Russian)

中文版 (Chinese)

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