How to extract data from Google Maps

There are four ways to get business data out of Google Maps, and the right one depends entirely on how many rows you need and how often. This covers all four, including the ones that do not involve buying anything.

Last reviewed

The short version

A few dozen rows, once: copy them by hand, it takes twenty minutes. A few hundred rows, occasionally: a browser extension, usually free. Thousands of rows, repeatedly: desktop extraction with a grid. Data feeding another system on a schedule: the Places API or a cloud extractor.

Route 1: by hand

Worth doing once even if you intend to automate, because it teaches you the shape of the constraint.

  1. Open Google Maps and search your category and city, for example dentist, Manchester.
  2. Zoom in until the viewport covers a few square kilometres rather than the whole metro.
  3. Re-run the search. Maps re-queries against the visible area and returns what is in it.
  4. Copy the name, phone, address and rating for each result into a spreadsheet.
  5. Pan to the adjacent area and repeat.
  6. De-duplicate at the end, because areas overlap at their boundaries.

Where it stops working: the moment you need a whole city. The method is sound; the labour is the problem.

Route 2: the Google Places API

The official route, and the only one Google actively sanctions. You register a project, obtain a key, and call Nearby Search or Text Search with coordinates and a radius.

What you get: clean structured data, high reliability, no risk of the interface changing under you, and a supported path if something breaks.

What it costs you: billing per request, which climbs steeply at prospecting volumes. There are also terms governing what you may store, for how long, and what you may display, which matter if you intend to build a list you keep. And Nearby Search returns at most 60 results per query, a tighter ceiling than the public interface, so you still end up subdividing the map.

Choose this route when you need data inside a product or a pipeline, where reliability and licensing matter more than unit cost.

Route 3: browser extensions

Install, open Maps, run a search, click extract. Genuinely the fastest path to a small list, and the free tiers are often sufficient.

Where they stop working: they read what the page has already loaded, so they inherit the 120-result ceiling and usually cap well below it, in the low hundreds per session. They also occupy a browser tab for the duration, and a long job dies with the tab.

Route 4: desktop extraction with a grid

This is the route built for city-scale lists, and the grid is the whole idea. Rather than one query over the metro, the target area is divided into a grid of smaller cells and each cell is searched separately. Because the 120 ceiling applies per query, no individual cell comes close to it, and total coverage scales with the number of cells.

Three details separate an implementation that works from one that disappoints:

  • Adaptive subdivision. A uniform grid wastes queries on farmland and still saturates the city centre. Cells returning a count near the ceiling need splitting and re-running, or coverage is silently truncated exactly where the businesses are densest.
  • De-duplication on a stable key. Cells overlap at their edges by design, so the same business appears several times. De-duplicating on the business name fails, because names vary in punctuation and suffix between listings. Key on the place identifier.
  • Checkpointing. A metro sweep is thousands of queries over hours. Without saved progress, a dropped connection means starting over.

Cleaning what you extracted

Extraction is the easy half. Before anyone calls a single number:

  1. De-duplicate on the place identifier, before you count anything.
  2. Drop rows with neither a phone nor a website, since they cannot be contacted at all.
  3. Normalise phone numbers to E.164 so diallers and duplicate detection both work.
  4. Filter out listings flagged permanently closed, which is the highest-value single filter available.
  5. Segment by review count before anything else. Three reviews and three hundred are different companies with different budgets.

Field-by-field reliability is covered in what Google Maps data is worth trusting.

Staying on the right side of the line

Business listing data on Google Maps is publicly published, which is generally treated differently from personal data. That does not settle what you may do next. Outreach is governed by GDPR in the EU and UK, by CAN-SPAM in the United States, and by local telemarketing rules that in several countries include do-not-call registries you are required to screen against. Google Maps also has its own terms of service. Check what applies to your market before the first campaign, not after it.

Next: compare the delivery models to pick a tool, read why the 120-result limit exists for the mechanics, or see what email extraction can realistically deliver.

Frequently asked

Can I extract Google Maps data without any software?
Yes, by hand. Search your category and city, zoom into a small area so the viewport covers a few square kilometres, re-run the search so Maps queries the visible area, and copy the results into a spreadsheet. Pan to the next area and repeat. This is entirely workable for one neighbourhood and becomes impractical across a metro, where the same process is thousands of pans and copies.
What is the difference between the Places API and a scraper?
The Google Places API is the official, licensed route. It returns structured data, it is reliable, and Google permits it, but it is billed per request, it caps what you may store and for how long, and its Nearby Search returns at most 60 results per query. A scraper reads the public interface instead. It is cheaper at volume and unconstrained by storage terms, but it is not an official channel and it breaks when the interface changes.
How many results can I get from one search?
About 120 from a single Google Maps query, regardless of how many businesses exist in the area, because the limit applies to the query rather than to the city. The Places API Nearby Search caps lower still, at roughly 60. Both ceilings are worked around the same way: divide the target area into smaller areas and query each one separately.
Will Google block me for extracting data?
Rate matters more than volume. Requests fired as fast as the network allows are throttled quickly, whereas requests paced like a person browsing generally are not. Running from your own connection rather than a shared proxy pool also helps, because you are not inheriting the reputation of everyone else using that pool.
What format should I export to?
CSV for anything that will be imported elsewhere. It opens in Excel and Google Sheets, and every CRM and sequencer accepts it. Reserve XLSX for files a person will read directly and JSON for feeding another program. Normalise phone numbers to E.164 before import, since inconsistent local formatting breaks both dialler imports and duplicate detection.