We tested our Google Maps scraper on 4 October 2026 with eight keyword-and-city searches. It delivered 1,644 unique places in 7 minutes 19 seconds, for $1.64 at the list price of $0.001 per place. Every row had name, category, coordinates and place id; 95.3% had a phone number and 90.7% a website.
Pages about Maps scrapers tend to quote a maximum and stop there. A buyer of local business data needs different numbers: how many rows one search really returns, which columns are filled, how long it takes and what it costs. Those are below, run by run, and the per-run file is results-2026-10-04.csv.
What we ran
| Item | Setting |
|---|---|
| Date and time | 4 October 2026, 08:30 to 08:37 UTC, plus the detail calls at 08:39 |
| Tool | The google_maps_places collector on the production API, version 1.0.0 |
| Input | A keyword and a location, with country and language; nothing else |
| Cap | max_results 300, the collector's maximum per run |
| Runs | 8 searches in 8 cities of 5 countries, one after the other, each as a background run polled every 3 seconds |
| Time | From the run's own started and finished timestamps |
| Cost | Delivered places multiplied by the published price of $0.001 |
The collector searches Google's local results for the keyword in the location, pages through them and removes duplicates before it delivers. You pay for delivered places only. If you have never used it, the product page for the Google Maps scraper API shows the input form and the output schema.
Rows, time and cost, run by run
| Search | Places | Time | Cost |
|---|---|---|---|
| dentist, Austin TX | 193 | 90.9 s | $0.193 |
| coffee shop, Seattle WA | 185 | 76.6 s | $0.185 |
| plumber, Chicago IL | 191 | 17.1 s | $0.191 |
| real estate agency, Miami FL | 297 | 41.1 s | $0.297 |
| restaurant, Manchester UK | 178 | 92.9 s | $0.178 |
| Zahnarzt, Berlin | 227 | 51.7 s | $0.227 |
| ristorante, Milano | 232 | 37.0 s | $0.232 |
| gym, Sydney NSW | 141 | 31.8 s | $0.141 |
| Total | 1,644 | 7 min 19 s | $1.64 |
That is 3.7 places per second on average, with a wide spread: the Chicago run delivered 191 plumbers in 17 seconds, the Manchester run took 93 seconds for 178 restaurants. Inside each run every place id was unique, so the 1,644 rows are 1,644 different businesses.
One search returns between 141 and 297 places here, not a fixed number. Google decides how deep a local query goes, and the answer depends on the category and the city. You are billed for the delivered rows only.
Field coverage on 1,644 places
Coverage is the share of rows where the field is filled. These are all rows, not the best ones.
| Field | Rows filled | Coverage |
|---|---|---|
| Name | 1,644 | 100% |
| Category | 1,644 | 100% |
| Latitude and longitude | 1,644 | 100% |
| Place id and Maps link | 1,644 | 100% |
| Rating | 1,585 | 96.4% |
| Address | 1,579 | 96.0% |
| Phone | 1,567 | 95.3% |
| Website | 1,491 | 90.7% |
| Phone or website | 1,629 | 99.1% |
| Phone and website | 1,429 | 86.9% |
The contact columns are the ones a lead list lives on, and they are the strong part: 1,629 of 1,644 businesses can be reached by phone or through a site.
Opening hours and the exact review count are available through the detail call in the next section. An email address is not part of a Maps listing; it comes from the business's own website, which is the job of the lead scraper. The anatomy of a row is in what a Google Maps lead contains.
Opening hours and review counts: the detail call
For a sample spread across the eight cities (every 55th row of the 1,644) we asked for the place card with the place_details search type, passing the id from the list row, and read 29 cards.
| Measure | Result |
|---|---|
| Place cards read | 29 |
| Median time per call | 0.60 s |
| Weekly opening hours present | 29 of 29 |
| Review count present | 29 of 29 |
| Website present | 27 of 29 |
| Also returned | Open or closed now, plus code, phone, address, rating, category |
So the working pattern is two steps: the collector for the list, then a detail call only for the rows you keep. A detail call is a Google rich-vertical search at $0.002, twice the price of a list row, which is why it pays to filter first. For the text of the reviews rather than their count, use the Google reviews collector.
What 1,000 and 10,000 places cost
| Volume | List rows at $0.001 | With a detail call on every row |
|---|---|---|
| 1,000 places | $1.00 | $3.00 |
| 10,000 places | $10.00 | $30.00 |
| This test: 1,644 places, 29 detail calls | $1.64 | $1.70 |
Every account gets $2 of free API usage per month, which is 2,000 list rows before the first cent. There is no subscription and a run that delivers nothing costs nothing. At the pace of this test, 10,000 places are about 45 minutes of sequential runs, or far less if you run several searches at once.
How to get past one search's ceiling
The largest run here returned 297 places and the cap per run is 300, while a big city has thousands of restaurants. The way through is more searches, not a bigger one:
- Split the area: run the same keyword on districts, postcodes or neighbouring towns instead of the whole city.
- Split the keyword: "dentist", "orthodontist" and "dental clinic" surface different businesses.
- De-duplicate on
place_idacross runs. Inside one run the collector already does it; across runs it is one line of code.
The full method, with the tiling and the email step, is in how to scrape leads from Google Maps. If you would rather receive the finished file than build it, we sell ready-made lead lists by sector and country, built with these same runs.
Limits of this test
- Eight searches on one morning. Coverage moves with category and city, as the phone column shows.
- Counts are what Google returned for one query, not a census of the city. We do not claim there are 193 dentists in Austin.
- We checked that fields were filled and ids unique. We did not phone 1,567 numbers.
- The detail sample is 29 place cards. It supports "hours come back", not a percentage to the decimal.
- Business listings are public, commercial data, but rules on using them for outreach differ by country: see is scraping Google Maps legal.
The exact run, and what to buy
One collector, a keyword and a location. The same run is the run_collector tool on the MCP server, and the result downloads as JSON or CSV.
curl -X POST "https://api.quanticdata.io/v1/scraper/collectors/google_maps_places/run" \
-H "Authorization: Bearer qd_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"input":{"query":"dentist","location":"Austin, TX","country":"us","max_results":300},"async":true}'
curl "https://api.quanticdata.io/v1/scraper/collectors/runs/RUN_ID?format=csv" \
-H "Authorization: Bearer qd_live_YOUR_KEY"
What to buy: nothing up front. The collector is pay per delivered place at $0.001, the free $2 per month covers the first 2,000 places, and the other 100+ scrapers in the collectors catalogue run on the same key. Parameters and the response envelope are in the API documentation; how the underlying search layer performed on the same day is in our SERP API benchmark.
