Blog/google maps
1 min read

Why One Google Maps Scraper Is Not Enough

No single Google Maps scraper does reviews and listings well. Compare the Places API, one actor, and a marketplace that routes the right Apify endpoint.

Why One Google Maps Scraper Is Not Enough

Copy this line to your agent to pull a place full review history from Google Maps.

set up https://monid.ai/SKILL.md and use apify /compass/google-maps-reviews-scraper to pull a place reviews

Copy this line to your agent to pull a place's full review history from Google Maps.

set up https://monid.ai/SKILL.md and use apify /compass/google-maps-reviews-scraper to pull a place reviews

Betting your Google Maps data on a single scraper is the mistake, because no one actor does the whole job. Pulling a restaurant's full review history and mapping every gym in a metro area are two different problems that reward two different endpoints, and the moment Google shifts a page layout, whichever actor you standardized on can go dark. Monid is a pay-per-call data API marketplace: one interface and one wallet reach hundreds of external data endpoints, so instead of marrying one actor you route the right endpoint per need and swap it the day it breaks.

TL;DR

  • Reviews and listings are separate jobs. compass/google-maps-reviews-scraper reads a place's reviews in depth; damilo/google-maps-scraper discovers businesses across an area. Neither covers the other well.
  • The official Google Places API returns at most 5 reviews per place through Place Details, needs an API key plus billing, and gives you no way to page past those five. Verified below.
  • A single third-party actor nails one shape and breaks on layout changes, and you carry that risk alone.
  • The marketplace route puts both Apify actors, plus whatever you need next, behind one wallet with the price shown before you run.
  • Fair caveat: if you only need a place's top few reviews rendered live inside your own Google-powered product, the official API is the right call.

Two jobs that look like one

"Scrape Google Maps" hides two very different tasks. One is going deep on a place you already know: every review, sorted and dated, in the languages customers actually wrote them. The other is going wide across a geography you do not know yet: find me every plumber in Austin with a phone number and a rating. A scraper tuned for the first walks a single place's review pane to exhaustion. A scraper tuned for the second runs keyword-and-location searches and paginates through result cards. Ask either one to do the other's job and you get thin data or none.

This is why "pick the best Google Maps scraper" is the wrong question. There is no single best, only the best-fit endpoint for the task in front of you, and the tasks change week to week.

The five-review ceiling on the official API

Start with the option that looks safest, because it is real and it has a real wall. Google's Place Details endpoint returns a maximum of five reviews per place, with no pagination and no sort control beyond Google's own relevance or newest toggle. Developers have asked for more since 2015 on Google's public issue tracker, and as of 2026 the cap is unchanged. To go past it officially you move to the Business Profile APIs, which page up to 50 at a time but only for locations you own and manage, behind an access-request process that can take weeks.

The Places API is also key-gated and billed per request, and it will never hand you the business-discovery breadth of a keyword search across a city. So for anything past "show this one place's top few reviews," the official route was never on the table. That is not a knock on Google. It is the correct posture for a first-party product surface, and it points you elsewhere the moment your job is analysis rather than display.

The trap of a single actor

The obvious next move is to grab one popular scraper actor and standardize on it. This works until it does not. A single actor covers one data shape well: reviews, or listings, rarely both, and never the adjacent jobs you will want next quarter. Google Maps is also a moving target. When the review pane's markup shifts, the actor you depend on stops returning data, and you are watching one maintainer's changelog while your pipeline is down.

Renting the same battle-tested actors through a marketplace does not make them unbreakable. What it changes is your exposure: when one actor stalls, a free monid discover search surfaces the alternatives already priced and ready, and you switch the endpoint string without a new contract, a new key, or a new vendor relationship. You stop betting the pipeline on one actor's uptime.

Set up once

For agents

Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:

set up https://monid.ai/SKILL.md

It learns the whole discover, inspect, run workflow itself. More details in the agent quickstart.

For humans

npm install -g @monid-ai/cli
monid keys add --label main --key <your-api-key>

More details in the CLI quickstart.

Reviews, past the wall and in every language

For depth on a place, compass/google-maps-reviews-scraper from Apify takes a Maps place URL or a place ID and reads far past five. Point it, set maxReviews, and let it walk.

monid run -p apify -e /compass/google-maps-reviews-scraper \
  -i '{"startUrls": [{"url": "https://www.google.com/maps/place/?q=place_id:ChIJ..."}],
       "maxReviews": 300, "reviewsSort": "newest", "language": "en"}'
# -> Run ID: 01HXYZ...

monid runs get -r 01HXYZ... -o reviews.json
# -> COMPLETED: review text and translations, star ratings,
#    timestamps, reviewer metadata, owner responses, images,
#    per-service ratings, billed per result

Three input fields carry most of the value. reviewsSort set to newest plus reviewsStartDate (which accepts a relative value like 7 days or 3 months) turns a full-history dump into a fresh-reviews-only poll, so a weekly reputation check pulls just what arrived since last run. reviewsFilterString narrows to reviews mentioning a keyword. And every review comes back with its original text and a translation, which is the field that matters when your customers write in a dozen languages and you want to read all of them at once. Owner responses and per-service ratings land in the same record, so you can measure how fast a location replies, not just what it scored.

Listings, wide across a geography

The other job needs the other actor. damilo/google-maps-scraper runs a keyword-and-location search and returns business records: names, addresses, phone numbers, websites, coordinates, ratings, review counts, opening hours, categories, and images, with no Google Maps API key anywhere.

monid run -p apify -e /damilo/google-maps-scraper \
  -i '{"query": "yoga studio", "location": "Austin, TX, USA", "max_results": 120}'

query and location are the only required fields, and max_results is your cost and scope dial in one. This is the endpoint for building a local prospect list, mapping competitors around a location, or seeding a set of place IDs that you then hand to the reviews scraper for a second, deeper pass. That handoff, listings first to find the places then reviews to read them, is exactly the kind of two-endpoint flow a single actor cannot give you.

The comparison that matters

ApproachReview depthBusiness discoveryAccess hurdleWhen it breaks
Official Places API5 reviews maxnoneAPI key, billing, quotanever (but capped low)
One scraper actorone shape onlyone shape onlyactor accountyou wait for one maintainer
Monid marketplacefull history, fresh, multilingualkeyword + location, per areaone account, one walletswap the endpoint string

The pattern: the official API is capped by design, and the single-actor bet concentrates both coverage gaps and outage risk on one dependency. Routing per need spreads that risk and lets the reviews actor and the listings actor coexist on the same balance.

What a real Google Maps pass costs

Put approximate numbers on a two-stage job. Say you sweep a metro area for 500 businesses in a category with the listings scraper, which bills per result at a small fraction of a cent each, so that stage lands around a dollar or two. Then you take the 40 places worth watching and pull 200 recent reviews each with the reviews scraper, also billed per result, which lands in single-digit dollars. The whole discover-then-monitor cycle costs less than a lunch, and a week with zero runs costs zero. There is no seat license and no plan priced for your busiest month. Current per-endpoint prices, both billed per result, live at monid.ai/tools, and the free inspect step shows the exact figure before anything bills.

Because Monid also ships as an MCP server, an agent handed "find the top-rated coffee shops in Portland and summarize what people love and complain about" can route the listings scraper to build the set and the reviews scraper to read each one, from one wallet.

The honest caveat

If all you need is a place's top few reviews rendered live inside your own app or store locator, use the official Places API. It is first-party, key-simple, and free within quota, and no scraper should replace it for that job. The marketplace route earns its place the moment you need the sixth review, the reviews from last Tuesday, the translations, or a list of every business in a postal code. That is most of the real work, and it is the work a single actor cannot cover on its own.

FAQ

How many reviews does the Google Places API return? At most five per place through Place Details, with no pagination. The cap has stood since 2015 and remains in 2026. Owned locations can page up to 50 through the Business Profile APIs after an access request.

Why not just standardize on one scraper actor? Because one actor covers one shape and breaks on Google's layout changes, leaving your pipeline waiting on a single maintainer. A marketplace lets you swap to a ready, priced alternative without a new contract.

Do I need a Google Maps API key? No. Both Apify actors run without one. You bring a single Monid account and a pay-as-you-go balance, and the provider owns the scraping infrastructure.

What does a Google Maps pull cost? Both endpoints bill per result at a small fraction of a cent to a fraction of a cent each, shown before you run. A wide listings sweep plus a deep review pass on the places that matter stays in single-digit dollars. Current prices are at monid.ai/tools.

Try it

Run a free discover for "google maps reviews" and "google maps business listings", inspect both actors and their current prices, then pull one place's recent reviews and one small area sweep. If the data holds up, widen the search and add the second stage. Start at monid.ai.

google mapsweb scrapingreviewsapify