Guide · measured
How to scrape data from Google Maps
Three ways: copy listings by hand, run a scraper you configure, or order the finished list. Each returns the listing's own fields - name, address, phone, website, category, rating. Across 1,036,929 records we have scraped, 46.9% of the phones are mobiles and 31.1% of the businesses publish no website.
Three ways. What each one costs you, in money and in work.
1. By hand
Search Google Maps, open each listing, copy the fields into a spreadsheet. Free, accurate for what you read, and practical for a dozen businesses - a search shows a capped list, so a whole city or state means many searches and many hours.
2. A scraper you configure
An open-source script you run yourself, or a hosted scraper such as Apify, Outscraper, Bright Data or PhantomBuster that you set up and pay per record or per hour of run time. You get raw rows fast and at a low price per row; you own the setup, the cleaning, the de-duplication and any checking of the numbers.
3. Order the finished list
Leadity runs the scrape for you: pick a trade, an area and the filters - only mobiles, only businesses with no website, the owner's name - and the filters run inside the scrape, so a lead that fails one is never delivered and never billed. A business record is from $0.0032, a record with a carrier-verified mobile from $0.016.
The hosted scrapers are compared field by field, with each one's own prices and the date they were read, on the comparison page.
What a scrape returns. The columns, then the counts.
| Company name | The name on the Google Maps listing |
|---|---|
| Phone number and line type | The number as listed, and its line type - mobile, landline, VoIP or toll-free - on any order that filtered by it |
| Owner name | When you bought the owner lookup: the confirmed name, or the row is not delivered |
| Address, city, state, ZIP | As listed, with the postal area it was swept from |
| Timezone | The listing's local zone, so a call list can be sorted by when the office opens |
| Category | The niche it was found under |
| Website | The listing's own site, or none - aggregator pages are dropped, not counted as a site |
| Rating and review count | The star rating and the review count at the moment of the scrape |
| Email and status | When you bought the email finder: the address off the business's own site, and on a verified-email order its verification result |
| Scraped at | The moment the listing was read, so nothing in the file is older than the run |
| Google Place ID and Maps link | So anyone on your team can check the listing in one click |
What a scrape returns, measured. 1,036,929 rows across 241 scrapes, read 5 September 2026.
| Phones that are mobiles | 46.9% (landline 27.5%, VoIP 23.1%, toll-free 2.0%)select phone_type, count(*) from leadity.leads group by 1 |
|---|---|
| Of the rows customers were billed for | 88.0% mobile, 6.2% landline, 4.5% VoIPselect phone_type, count(*) from leadity.leads where charged_milli > 0 group by 1 |
| Rows returned that were billed | 50.0% - the other half were returned by the sweep and never billedselect count(*), count(*) filter (where charged_milli > 0) from leadity.leads |
| Businesses publishing no website | 31.1% - aggregator pages such as Facebook or Yelp are not counted as a websiteselect count(*) filter (where website is null or btrim(website) = '') / count(*) from leadity.leads |
The line type is read from each number's NANPA thousand block rather than its area code, which cannot answer the question - the Line Type Report counts why. The same figures for one trade at a time, by state, are in the business lists by trade.
Reuse it. Quote any figure here with a link back to this page. No business is named and no number appears: these are aggregate statistics about public listings.
How a sweep covers an area.
A single Maps search shows a capped list of businesses, so an area is swept one search at a time, each anchored on a ZIP code. Google answers a ZIP-anchored search with the businesses around it as well, so neighbouring searches overlap - the same business comes back again and again - and a clean list is a de-duplicated one.
Questions.
What the listing publishes: the business name, address, phone number, website, category, opening hours, rating and review count, and the link to the listing. The type of the phone line and the owner's name are not on the listing - they have to be looked up.
It depends on the trade and the place. Averaged over every ZIP code we have searched, from about 29 businesses a search (Marketing Agency) down to about 5 (Software Company), read 2026-09-25. A search anchored on one ZIP code also returns its neighbours, so a sweep of adjacent codes overlaps and has to be de-duplicated.
Classify every number by line type against the carrier's thousand-block record and keep the mobiles - an area code cannot tell you. On raw rows that is a step you add after the scrape; Leadity does it during the scrape, and 1,000 records with a carrier-verified mobile cost $16 to $58.
Not from the listing: a Google Maps listing carries no email. The address lives on the business's own website, so the scrape has to follow each listing's website and read the pages behind it. Leadity's email filter does that during the scrape and delivers only businesses whose site publishes an address, at 1 credit a record.
Search one trade in one area, collect every listing, then keep the ones you can use - usually a number that is a mobile, or a business with no website - and remove the repeats that neighbouring searches return. Leadity runs those steps as one order and bills only the records that pass.
Technically, yes - by hand, with a scraper you configure, or by ordering the list, the three ways above. Whether you may, and what you may do with the data, depends on where you are and what you do next, and that is a question for your own counsel; this guide does not answer it. Calling and texting US numbers is regulated separately - the TCPA risk checker is a checklist, not legal advice.
Related.
Last measured 5 September 2026. Prices derive from the live catalog at build time.
Skip the scraper, keep the list.
Pick a trade and an area, choose the filters, and export - from $0.0032 a business record, $0.016 with a carrier-verified mobile.
