Google Maps Reviews Monitor Scraper API - No Login
Pricing
from $0.30 / 1,000 new review delivereds
Google Maps Reviews Monitor Scraper API - No Login
Monitor Google Maps places on a schedule: only new reviews, plus rating, phone, website and hours changes. Nothing new costs almost nothing. No login.
Pricing
from $0.30 / 1,000 new review delivereds
Rating
0.0
(0)
Developer
Blackcube
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
| Google Maps Suite • 3 Actors, one codebase, one record billed once | ||
| Google Maps Reviews Scraper API By Place ID, No Login | Google Maps Place Details Scraper API By ID, No Login | Google Maps Reviews Monitor Scraper API ➤ You are here |
More from this account: YouTube Transcript Suite · Website Contact & Email Suite · Career Site & ATS Jobs Suite · Google News Suite · Keyword Research Suite · Shopify Store Intelligence Suite · eBay Data Suite · Amazon Reviews Suite · Reddit · Meta Ad Library · Vinted · Trustpilot Review Intelligence Suite · App Store & Google Play Reviews Suite · Etsy Research Suite · YouTube Comments Intelligence Suite · Telegram Channel Intelligence Suite · Business Reviews Suite · Google Trends Suite · Amazon Product Data Suite · Google Sheets Suite · TikTok Suite · Snapchat Suite · LinkedIn Public Data Suite · Instagram Suite · Contact Validation Suite · X / Twitter
Put a list of Google Maps places on a schedule and get only what changed — the new reviews since your last run, and any move in rating, phone, website or hours. One small check per place per run; a morning with nothing new costs almost nothing.
You pay one check per place per run, plus each new review; a place with nothing new costs only the check. A place that could not be read costs nothing. No login, no cookies, no proxy to configure.
Quick start
- Press Start — the defaults are a working run.
- Replace them with your own Place IDs, feature ids, Maps URLs or CIDs.
- Take the dataset as JSON, CSV or Excel, or via the API. Every row has a
type.
What people use it for
- Daily new-review alerts. Watch a set of locations and receive only the reviews posted since the last run, with the owner reply when there is one.
- Rating and NAP change tracking. Get a row the day a place's rating, phone, website or hours change, and a free "unchanged" row when they do not.
- Chain and competitor watch. Monitor 25 locations on a cron and pay one small check per location per run.
Input
| Field | What it does |
|---|---|
places | Place IDs, feature ids, Maps URLs or CIDs to watch, one per line. |
maxNewReviewsPerPlace | The most new reviews returned per place per run (default 20). A place with more new reviews than this skips the excess and its changes row says truncated: true; raise it for busy places. |
personalData | Off by default. |
language / country | Google hl / gl codes (default en / us). |
records | Objects from n8n, Make or a CSV; the id is read from a place/placeId/fid/cid/url field and every other field rides along as passthrough. Send a CID as a string: a 19–20 digit JSON number is already rounded to a different place and is refused as a free invalid row. |
maxCostUsd | Optional hard ceiling; the run stops before the charge that would cross it. |
What the rows look like
{ "type": "changes", "fid": "0x808580f112dc711d:0xbfb3fcde3487fb40", "name": "Tony's Pizza Napoletana","firstSeen": false, "newReviews": 3, "truncated": false, "changes": { "rating": { "from": 4.4, "to": 4.5 } } }{ "type": "unchanged", "fid": "0x8644…", "name": "Sforno Pizzeria Napoletana" }
Each new review is also delivered as its own review row. truncated: true means the run did not deliver every new review: cut by maxNewReviewsPerPlace (the excess is skipped — raise the cap for busy places), or by your cost ceiling or a failed page (the rest come next run, never billed twice).
Every row has a type. The free coverage row says what was asked for and what arrived; the free summary row reports what the run spent.
What it costs
| You pay for | Price |
|---|---|
| Each place checked, per run | $1.00 per 1,000 checks |
| Each new review delivered | $0.30 per 1,000 reviews |
The built-in example (2 places, first run) costs at most $0.0140 — 2 checks + up to 40 new reviews. A re-run with nothing new costs $0.0020. There is no start fee — every delivered record bills, and failures are free. Free, always: an id that does not resolve, a place Google will not serve, a filtered-out review, a duplicate, the coverage row and the run summary.
Set Maximum cost (USD) to stop any run before it crosses a number you choose; the free summary row reports what it actually spent.
Limits, stated plainly
We return what Google Maps' public pages carry and say plainly what they do not: photo galleries beyond the first few (~4) images, popular times, questions & answers, menus, order-online links, "people also search", owner updates, and any emails, phone lists or social profiles. Those need endpoints Google does not serve without a session, or a website crawl — not this Actor.
Unofficial — not affiliated with, endorsed by, or sponsored by Google. "Google Maps" is a trademark of Google LLC.
Use it from n8n, MCP, the API or a schedule
Built to be called by a workflow, not only from the Store form. The Actor is vonsensey/google-maps-reviews-monitor-scraper-api; every snippet below sends {}, which runs the defaults shown on the form — replace it with your own input.
n8n
Install the Apify community node (@apify/n8n-nodes-apify under Settings → Community Nodes, or search "Apify" on n8n Cloud). Add Apify → Run Actor with Actor vonsensey/google-maps-reviews-monitor-scraper-api and your input JSON, then Apify → Get Dataset Items on the run's defaultDatasetId and pipe the rows anywhere. For scheduled runs, the On new Apify Event trigger fires when a run of this Actor finishes.
MCP (Claude, Cursor, VS Code, any MCP client)
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=vonsensey/google-maps-reviews-monitor-scraper-api","headers": {"Authorization": "Bearer <YOUR_APIFY_TOKEN>"}}}}
Your agent then calls vonsensey/google-maps-reviews-monitor-scraper-api as a tool with the same input the form takes and reads the dataset back.
REST API (one call, rows in the response)
curl -X POST "https://api.apify.com/v2/acts/vonsensey~google-maps-reviews-monitor-scraper-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" -d '{}'
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("vonsensey/google-maps-reviews-monitor-scraper-api").call(run_input={})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('vonsensey/google-maps-reviews-monitor-scraper-api').call({});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Make, Zapier, LangChain, CrewAI
The Apify app in Make and Zapier has a Run an Actor module: pick vonsensey/google-maps-reviews-monitor-scraper-api. In LangChain and CrewAI the Apify tool wrappers take the same Actor id. A daily schedule needs nothing but the Console: Schedules → Create → this Actor → cron, and the dataset fills on its own.
Run it without configuring anything — Daily new-review monitor for your Google Maps locations, a ready-made example you can start as-is or copy.
Use cases
- Reputation and CX analytics. Every review of your locations or a competitor's, one row each, with stars, the exact posted date, the full text, review photos and the owner's reply — straight into a warehouse or an LLM.
- Review monitoring pipelines. Put your places on a schedule and receive only the reviews posted since the last run, billed only for those; the monitor adds a row the day a rating, phone, website or hours changes.
- CRM and lead enrichment. Feed the Place IDs or Maps URLs you already hold and get back phone, website, category, rating, hours and coordinates at the base price — no search step, no per-id surcharge.
- Local SEO and listing audits. Check a portfolio of locations for name, address, category, hours and rating drift, with an honest
partial: trueflag when Google serves the sparse variant of a place. - Star and topic breakdowns. Filter to 1–2 star or text-only reviews to find what a place is criticised for; a review your filter removes is free.
- Pipelines from n8n, Make or a CSV. Send
recordsand every extra field rides along aspassthrough, or call the reviews and place-details listings as a warm HTTP endpoint (Standby) that answers from a 128 MB container.
Run it on a schedule
A one-off pull answers a question; a schedule answers it every day without you. Open Schedules in the Apify Console, point a cron at this Actor, and the dataset keeps filling on its own — no server, no cron box, no babysitting. Everything here is built to be re-run: you are billed per record delivered, and a scheduled run that finds nothing new bills nothing on the reviews scraper with since last run on, one $0.001 check per place on the monitor (a quiet re-run over 2 places is $0.002, measured), and a normal lookup per place on place details, which has no change-only mode.
FAQ
Do I need a Google API key, a login or a proxy?
No. Every listing reads the pages Google Maps shows to anyone without an account, from Apify's own exit — no API key, no login, no cookies, nothing to configure and nothing to buy on top. One exception, stated plainly: if Google blocks a review page, that one page is retried once through Apify residential proxy on your account (about $0.0004 of proxy transfer per retried page at list price; measured 0 blocks in 57 of 57 requests from that exit). Place lookups are never proxied, and a plan without residential proxy simply skips the retry — the place comes back as a free unavailable row.
Where do I find a Place ID?
In the Google Places API, in most CRM and map exports, or by pasting the place URL from the Google Maps address bar — every listing also takes a feature id (0x…:0x…), a full Google Maps place URL or a CID, and all four resolve to the same place. Share links (maps.app.goo.gl) are not followed; paste the full URL instead.
Can I get all reviews of a place?
Yes. Reviews are paged to exhaustion, one row each, up to the per-place limit you set — measured on a place claiming 10,645 reviews, which came back as 10,649 distinct rows. sort: relevant returns Google's own curated order and can stop short of the full set; use newest for completeness.
What do I pay for a run that finds nothing?
On the reviews scraper with Only reviews new since the last run on: nothing — no new reviews, no charge. On the monitor: one place check ($1.00 per 1,000) per place per run, and a place whose rating, phone, website, review count and hours have not moved comes back as a free unchanged row, so a quiet morning over 2 places bills $0.002 (measured on two consecutive runs). The place-details scraper has no change-only mode: every place it delivers is billed on every run. An id that does not resolve is always free, on every listing.
Does it work outside the US?
Yes — any place on Google Maps, anywhere. language and country set Google's hl / gl codes (default en / us), so review text, translations and the place record come back in the language and region you choose.
Is this an official Google product?
No. Unofficial — not affiliated with, endorsed by, or sponsored by Google; "Google Maps" is a trademark of Google LLC. It reads only public pages that Google's robots.txt allows, never signs in, and reviewer names, profile URLs and photos are dropped unless you switch Include reviewer personal data on.
Something wrong, or a field you need that is missing? Open an issue on the Issues tab — it is read and it gets fixed. If this saved you time, a rating on the Store page helps the next person find it.