Why does a Google Maps scraper stop at about 120 results, and how do you get every business in a city?

Because one Google Maps search only returns one slice of a city. Google's Places API stops at 60 results a search, and the list on the Maps website ends at about 120. To get every business, run the same search from many overlapping points across the city and merge the results on Google's place ID. Across 24 tests in eight US cities that found about 2.2 times as many businesses in the median city, and 7.5 times as many roofing contractors in Houston. We make Lyre Leads, which searches this way, so weigh our numbers with that in mind; the method below works without us.

Is the limit 60 or 120?

Both, depending on how you read Google Maps, and neither is a fixed number for every tool.

  • 60 is the official API's cap. Google's documentation for Text Search in the Places API says it "returns a maximum of 60 results across all pages, although this limit is subject to change", delivered 20 to a page (Google, checked 14 October 2026). A scraper built on the Places API hits this first.
  • About 120 is the Maps website's list. Search for a trade in a city on google.com/maps and scroll the results panel: it stops. When we scrolled it by hand for plumbers in Houston it ended at about 120. The vendors who scrape it say the same: Apify's Google Maps scraper names "the limitation of Google Maps of displaying (and scraping) no more than 120 places per area" (Apify), Scrap.io's guide says "Google Maps maxes out at 120 results per search" (Scrap.io), and PhantomBuster's help centre puts it at 120 to 200 (PhantomBuster), all checked 14 October 2026.
  • Paged search APIs stop somewhere else again. Some search APIs return Google Maps results page by page, 20 at a time, and let you keep asking, which is how we read Maps too. In our tests one search for a trade from the city centre returned between 51 and 211 businesses inside the city before it ran dry or hit our 12-page limit, and in one Houston run a different API was still returning full pages when a 15-page limit stopped it at 255. HasData, which sells such an API, paged five searches until they ran dry and saw them stop anywhere from 36 rows (florists in Missoula) to 256 (dentists in Chicago) (HasData). Outscraper states a ceiling of 500 places per query (Outscraper).

What they have in common is that each stops at a count with little connection to how many businesses the city holds. One search for roofing contractors returned 164 inside Houston, a city of 2.4 million, and 159 inside Tulsa, which has 415,000 people. Searching both cities from many points found 1,237 in Houston and 415 in Tulsa.

Why doesn't paging deeper find the rest?

Google answers a search for a map view. Ask for roofing contractors in Houston and it picks a view of the city, ranks what that view holds by relevance and distance, and hands back the top of the ranking a page at a time. Paging walks further down the same ranking, which keeps returning businesses near the centre until it runs out. A roofer on the far side of the city sits in a different view, and Google only offers it when the search is run from there.

We measured how much that costs in Houston on the query "roofing contractor", spending the same $0.38 on each side. Fifteen pages from one point, read through a pricier search API that pages deeper, returned 255 businesses. A grid of 76 overlapping points, read through the cheaper API we use, returned 1,061, and 977 of them were within 25 km of the centre. Two caveats come with that pair. Those are businesses Google returned for the query, deduplicated by place ID, and not all of them are roofers. And 255 is a floor, because that API was still returning full pages when the 15-page limit stopped it.

How do you get every business in a city?

Search the city from many places instead of from its centre. Whether a tool does it for you or you script it yourself, the steps are the same:

  1. Cover the city with a grid of points close enough together that their map views overlap. The overlap is on purpose: a business on the edge of one view sits in the middle of the next.
  2. Run the same search at every point with a tight map view (we use zoom level 14), and page each point until a page brings back few businesses you haven't already seen.
  3. Merge everything on Google's place ID, so a business found from five points counts once.
  4. Keep only the businesses inside the area you care about. The outer points will happily hand you the next town.
  5. Run the plain city-wide search once as well and merge it in. It costs a few calls and catches the handful near the centre that a grid can miss.

That is what Lyre Leads runs when you pick complete coverage mode on a city search. The price is search calls. Each extra point finds fewer new businesses than the one before, and in our 24 tests the grid spent about 1.8 times as many searches per business found as the single paged search did. That cost is most of the reason cheap tools stop at one search per city.

How many more businesses does it find?

We ran both methods on 27 September 2026 across 24 pairs: three trades (roofing contractor, plumber, dentist) in eight US cities ranging from 62,000 to 2.4 million people. One side was a single search for the trade from the city centre, at the zoom Google picks for a city, paged until an empty page or 12 pages. The other side was our grid plus one run of that same city-wide search, which is how the product runs. Both sides were counted only inside the city's own footprint and matched on Google place ID, so neither could win by reaching into the suburbs.

  • The grid returned 99.2% of the businesses the single search returned. The missing 0.8% is mostly Google answering the same search slightly differently twice: in a separate test, three identical runs minutes apart each re-found about 97.5% of the run before.
  • 65.4% of what the grid returned never appeared in the single search.
  • In the median pair the grid found 2.2 times as many businesses. The range ran from 1.0 times in Corvallis, Oregon, to 7.5 times for roofing contractors in Houston.
TradeCityPopulationOne searchMany pointsMultiple
Roofing contractorHouston, TX2,390,1251641,2377.5x
Roofing contractorPhiladelphia, PA1,573,9161303412.6x
Roofing contractorAustin, TX993,5881645643.4x
Roofing contractorTucson, AZ554,0131243032.4x
Roofing contractorTulsa, OK415,1541594152.6x
Roofing contractorBoise, ID237,963771441.9x
Roofing contractorManchester, NH116,386641031.6x
Roofing contractorCorvallis, OR61,99365681.0x
PlumberHouston, TX2,390,1251756924.0x
PlumberPhiladelphia, PA1,573,916973033.1x
PlumberAustin, TX993,588992382.4x
PlumberTucson, AZ554,0131182322.0x
PlumberTulsa, OK415,154962142.2x
PlumberBoise, ID237,963511112.2x
PlumberManchester, NH116,38664721.1x
PlumberCorvallis, OR61,99360611.0x
DentistHouston, TX2,390,1251971,2926.6x
DentistPhiladelphia, PA1,573,9161645263.2x
DentistAustin, TX993,5881863341.8x
DentistTucson, AZ554,0131433172.2x
DentistTulsa, OK415,1541823612.0x
DentistBoise, ID237,9631211871.5x
DentistManchester, NH116,3861181511.3x
DentistCorvallis, OR61,9931091151.1x

Businesses Google returned for each query inside the city's footprint, matched on place ID, 27 September 2026. Populations are the US Census figures our city list carries. The counts are not checked against Google's category, and for roofing roughly half of what a search returns is listed on Google as a roofing contractor. In 12 of the 24 tests the single search used all 12 of its pages, so it might have found a few more. A separate Houston plumbers run allowed 15 pages, ran out on its own after 14, and found 183 businesses inside the city against 175 in this table.

That separate Houston run is also the pair we checked against Google's own category. Of the 183 businesses one search found inside Houston, 164 were listed as plumbers. The grid found 551 listed plumbers, 3.4 times as many.

Is it worth it in a smaller town?

Often not, and the table shows where the line sits. A town of 62,000 has few enough plumbers that one search reaches nearly all of them: Corvallis came in between 1.0 and 1.1 times across all three trades. In the 18 tests in cities over 200,000 people the grid never found fewer than 1.5 times as many businesses, and in the 12 tests in cities over 500,000 never fewer than 1.8 times. For "roofing contractor", the share of the grid's results that the single search never showed falls with size: 87% in Houston, 71% in Austin, 62% in Tulsa, 50% in Boise, 38% in Manchester and 6% in Corvallis.

So if you sell to local businesses in towns over 200,000 people, a tool that pages through one search per city will most likely miss valuable leads, and in cities over 500,000 it certainly will. If your territory is a handful of small towns, a cheap paged scraper will find most of the same businesses for less money, and you should buy on price and on what each tool tells you about every business.

Does it work the same outside the US?

Less so, and in Denmark it depends almost entirely on the city. We ran the same test for hairdressers (frisør) in five Danish cities on 12 October 2026:

CityOne searchMany pointsMultiple
Copenhagen2117523.6x
Aarhus1753131.8x
Odense1742341.3x
Aalborg1701911.1x
Esbjerg1391481.1x

The median is 1.3 times, against 2.2 in the US, because only Copenhagen and Aarhus are big enough for one search to run out well before the city does. Copenhagen also showed how much Google varies from run to run: the identical search, run twice, re-found only 72.5% of itself. In Denmark the case for searching from many points is Copenhagen and Aarhus. Elsewhere one search finds most of the market, and the reasons to pick a tool are what it tells you about each business and whether it finds the people to contact.

Which Google Maps tools search this way?

More of them than the "120 results" complaint suggests, and it's worth knowing which before you compare prices. Apify's Google Maps scraper and Octoparse's Google Maps Scraper template both split an area into many smaller map views and merge the results, the same idea as ours. Outscraper can split a city by zip code or neighbourhood when you switch that on. Scrap.io sidesteps the question by filtering its own stored index of listings. PhantomBuster and HasData's API run one search per area and leave the splitting to you, D7 Lead Finder takes one keyword and one city per search, and Apollo's Google Maps search shows up to 60 results a search.

We haven't run any of these tools through the test above, so this table says how each one searches, not how much each one finds. A tool that splits the city can reach the outer neighbourhoods too; how close it gets depends on how finely it splits, and only a test like the one below shows that. Where two tools split equally well, the differences left are price and what you learn about each business.

ToolHow it finds businessesCheapest plan and free tier
Apify Google Maps ScraperSources: Maps scraper, Maps pricing, plansSplits the location you give it into many map screens (or a polygon you draw) to get past the 120-per-search limit, then merges the places.Starter $19 a month of prepaid usage; the Maps scraper costs $3 per 1,000 places on Starter. Emails and verification are paid add-ons. Free tier: $5 of usage a month, no card: up to 1,250 places. The leads and verification add-ons cost $100 per 1,000 on Free.
OctoparseSources: Maps template, listings template, pricing, free credits help, homeIts Google Maps Scraper template splits the area into overlapping grid points, up to 120 results each, and merges them. Its free Listings template pages one search and leaves splitting to you.Standard $83 billed monthly ($69 billed yearly). Google Maps templates need Standard, and the grid template adds $2 per 1,000 rows. Free tier: 10 tasks and local runs, but the Google Maps templates need Standard. 2,000 free records a week through its MCP and API.
OutscraperSources: API docs, app, Maps prices, email pricesOne Google Maps search per query, up to 500 places. For dense areas it tells you to split the query; the app can split a city by zip code or neighbourhood.No subscription. Google Maps places: first 500 free, then $3 per 1,000 up to 100,000, then $1 per 1,000. Emails and contacts are priced separately, from $3 per 1,000 sites. Free tier: First 500 Google Maps places and 500 website email lookups free each billing period; a card or prepaid credits needed to start.
Scrap.ioSources: guide, categories help, pricing, trial help, homeFilters its own stored index (225,676,406 listings in 195 countries, by its count) by Google category and area, up to a whole country. No free-text keyword search.Basic €49, priced in euros (€35 billed yearly): 10,000 export credits, one per place. Whole-country search needs the €499 Company plan. Free tier: No free plan; a 7-day trial with a card covers up to 50 searches and 100 export credits.
PhantomBusterSources: Maps export help, plans help, trial help, pricingRuns your Google Maps search in its cloud and exports the listings: up to 120 to 200 results a search, so a city means splitting searches by hand.Start $69 ($56 billed yearly): 20 hours of run time, 5 automation slots and 500 email credits a month. Free tier: 14-day trial, no card, exports capped at 10 rows. Then a Free plan with 30 minutes of run time a month.
HasDataSources: depth test, API docs, pricing, Maps scraper docs, Maps scraperMaps API: one keyword at one map point, paged 20 at a time. Its own test found a search stops at 36 to 256 results, and it advises splitting the area and deduplicating.Startup $59 ($49 billed yearly): 200,000 credits. A Google Maps row costs 3 credits on the no-code scraper. Free tier: 1,000 credits a month (about 333 Maps places), no card.
D7 Lead FinderSources: search help, home, area help, plansOne keyword and one city or town per search, fetched fresh, up to 1,200 leads a search. Big-city searches include the surrounding area.Starter $44.99 (US, card): 10 searches a day, about 3,500 leads a day. Monthly only. Free tier: 5 guest searches a day, results partly blurred and not exportable.
ApolloSources: data, Maps search help, pricingStored database of 240M+ contacts and 30M+ companies. Paid plans add a live Google Maps business search: up to 60 results a search, sorted by distance.Basic $65 per seat billed monthly (2,500 credits a month), or $49 per seat billed yearly. An email costs 1 credit, a phone number 8. Free tier: 75 credits a month per seat, API and MCP included. No Google Maps search on Free.
Lyre Leads (ours)Sources: coverage test, pricing, featuresLive Google Maps search for any keyword. Complete coverage mode searches a city from many overlapping points and merges on place ID (median 2.2x one paged search in 24 US tests).Growth $39: 7,500 leads (a lead is one new business, enriched and relevance-checked). Unused leads roll over up to three months. Free tier: 500 leads a month, no card.

Checked 14 October 2026. Each row links to the pages its facts were read on. Prices are in US dollars, per month on monthly billing, unless the cell says otherwise. We make Lyre Leads.

For the head-to-head questions buyers ask most, see Scrap.io vs Outscraper and Apify vs Outscraper, or every comparison we've written.

How can you check a tool's coverage yourself?

Pick one trade in one large city you know, run it through two tools, and remove duplicates on Google's place ID, or on name plus street address when a tool doesn't export the ID. Count what each tool found that the other didn't, and count only businesses inside the city, since a tool that reaches into the next county will look bigger without being better. A single search that stops near 120, or near 60, in a city of a million people has hit a search limit long before the end of the market. Our free tier is 500 leads a month with no card. That covers one trade in a city the size of Tulsa or Tucson; a metro like Houston, where the grid found 1,237 roofing contractors, needs a paid month.

Run the test on your own market

500 leads a month, free, no card. Search any keyword on Google Maps in complete coverage mode, see the cost before it runs, and count what comes back against the tool you use today.

Start free, no credit card required