Spec sheet · every column · measured fill rates
THE GOOGLE MAPS SCRAPER YOU DON’T HAVE TO RUN
by Usama Zafar, who builds and maintains PlotLeads · fill rates measured 13 August 2026
PlotLeads is a Google Maps scraper with the scraper part taken away from you. You choose a trade and a US metro; it crawls Google Maps for that search and hands back a finished CSV. There is no API key to obtain, no proxy pool to rent, no browser extension to babysit, nothing to install, and no config file to get wrong at two in the morning.
That convenience is the entire product, so the rest of this page is the spec sheet rather than a pitch: the exact twelve columns, how often each one is genuinely populated measured across 3,190 real rows, the hard limits, and the cases where you should honestly go use something else.
The output
ONE FILE, TWELVE COLUMNS
Every export is a single CSV. One business per row, twelve columns, every field quoted, CRLF line endings and a UTF-8 byte-order mark so Excel opens it without mangling an apostrophe or an accented street name. This is the literal header line of the file you download:
business_name,phone,email,website,address,city,state,zip,google_maps_url,rating,review_count,category
| Column | What it holds | The catch |
|---|---|---|
| business_name | The company name as it appears on the listing. | Required. A row with no name never reaches your file. |
| phone | The number the business publishes on Google Maps. | We pass it through as listed. We do not dial it. |
| An address found on the business's own website, when there is one. | The weak column. Read the fill rates below before you plan around it. | |
| website | The URL the listing links out to. | Verbatim, tracking parameters included — strip them yourself if you care. |
| address | The street address on the listing. | Service-area businesses have none; we say so in the cell rather than invent one. |
| city | The listing's city, falling back to the metro you searched. | Suburbs of your metro are included, and are labelled as themselves. |
| state | Two-letter state code. | Same fallback rule as city. |
| zip | The postal code, when Google publishes one. | Never inferred from the city. Blank means Google had none. |
| google_maps_url | A direct link back to the listing this row came from. | This is your audit trail — any row can be checked in one click. |
| rating | The Google star rating. | Blank for a business with no reviews yet. |
| review_count | How many Google reviews the business has. | 0 is a real value, not a gap. Sort on it to rank an outreach list. |
| category | The category Google itself assigns the listing. | For example "HVAC contractor" or "Roofing contractor". |
A REAL ROW, UNTOUCHED
Specimen data is easy to make flattering, so here is an actual stored row from a Phoenix HVAC crawl — the same one published on our Phoenix HVAC contractor list. Nothing has been tidied for display.
- business_name
- Larson Air Conditioning
- phone
- (480) 470-1280
- website
- https://www.larsonairaz.com/?utm_campaign=gmb&utm_medium=organic&utm_source=google
- address
- 7363 E Adobe Dr Ste 101, Scottsdale, AZ 85255
- rating
- 4.9
- review_count
- 1828
- category
- HVAC contractor
Three things in the Larson Air Conditioning row above are worth pointing at. The website carries the business’s own campaign tracking parameters, because we return the link exactly as the listing publishes it rather than guessing at what you wanted cleaned. The address is in Scottsdale, not Phoenix proper, because a metro search covers the metro — suburbs are included and are labelled as themselves, never relabelled as the city you typed. And that Larson row is the seven-field preview subset we store; a paid export additionally carries email, city, state, zip and the Maps URL.
Measured, not claimed
HOW OFTEN EACH COLUMN IS ACTUALLY FILLED
Column lists are cheap. Every scraper on the market will tell you it returns a phone number and an email; almost none will tell you what share of rows arrive with one. That number is the difference between a file you can work and a file you spend an afternoon apologising for.
So here is ours, counted rather than estimated. The figures below come from a single query over the 3,190 rows we hold as stored preview data — 100 lists spanning 10 trades and 10 US metros, produced by the same crawl that produces a paid export.
| Column | Filled | Rows | How to read it |
|---|---|---|---|
| phone | 99.1% | 3,162 of 3,190 | Effectively every row. This is the column the product runs on. |
| category | 99.9% | 3,188 of 3,190 | Google classifies almost everything it lists. |
| review_count | 100% | 3,190 of 3,190 | Always written. 164 rows (5.1%) are a genuine zero. |
| rating | 94.9% | 3,026 of 3,190 | The 164 blanks are exactly the businesses with zero reviews. |
| website | 84.4% | 2,692 of 3,190 | About one contractor in six runs on a Maps listing alone. |
| address (street) | 81.5% | 2,601 of 3,190 | 563 more are service-area businesses; 26 had neither. |
Four columns are missing from that table on purpose. Our stored preview rows carry seven fields, so email, city, state, zip and the Maps URL cannot be measured from this corpus, and we would rather print “not measured” than a number we did not count.
The 563 rows with no street address are not errors. Just under one row in six — 17.7% — is a service-area business: the plumber who works out of a van and publishes no storefront. Google shows no address for them, so the cell reads “Service-area business (no storefront listed)” instead of sitting empty or being quietly filled with the metro centroid. Those rows still carry a phone, a city and a state, and they are often the best prospects in the file, because a van operation is a smaller business than a firm with a showroom.
Now the column you should be sceptical about: email. Google Maps does not publish a business email address at all, which means an email can only ever come from separately crawling the company’s own website — and small contractors either have no site, or put a contact form where an address would be. On a real 49-row delivered list, three rows carried an email. Treat PlotLeads as a phone-and-website list that occasionally yields an email, and never as an email list. If a mail sequence is the whole plan, this is the wrong file and you should read the Apollo comparison before you spend anything.
Where the data comes from and how the metro scoping works is set out separately on our methodology page.
Limits
THE HARD NUMBERS
Nothing here is a marketing range. These are the constants enforced in the code that runs your search.
- Rows per search
- Up to 500
- Credit cost
- 1 credit per delivered row
- Typical run time
- Usually inside about two minutes
- Download link
- Signed, expires after 5 minutes
- Re-downloading
- Free — never charged twice
- Trades covered
- 10 US home-services trades
- Locations
- Free-text — any US metro
- Repeat of the same search
- Returned free inside 24 hours
- Daily ceiling
- 30 searches, 5 running at once
- File format
- CSV, quoted, CRLF, UTF-8 BOM
A few of those deserve a sentence. The 500-row ceiling is per search, not per account — you widen coverage by running more searches, one trade and one metro at a time, which is also how you keep a list segmented enough to write a decent opening line. Credits are spent on rows that actually arrive, so a thin metro costs you less than a dense one. The download link is deliberately short-lived at five minutes, but re-generating it from your dashboard is free and does not spend credits again.
Entry is a $35 credit pack covering 500 leads, credits never expire and there is no subscription; the full ladder lives on the pricing page.
Trades covered
- Roofers
- HVAC contractors
- Plumbers
- Electricians
- Painters
- Landscapers
- Pest control
- Pool service
- Cleaning companies
- Handyman services
Ten trades, deliberately. A general-purpose scraper will happily fetch you dentists or car washes; we tune for US home services and nothing else, which is why the category values come back clean and the metro scoping behaves. If you want the trade-by-trade view, the business-list catalogue breaks it down.
Fit
WHEN YOU SHOULD USE SOMETHING ELSE
We are not the cheapest way to get Google Maps data into a spreadsheet and we are not going to pretend otherwise: if you are comfortable in a terminal and you want volume, go use Outscraper — its first 500 records are free and it charges roughly $3 per thousand after that, which is a fraction of our per-row price at any pack size, and always will be.
What we sell is the removal of everything around the data. The honest way to decide is to ask what you are actually short of.
USE PLOTLEADS IF
- You want a file, not a tool. Your success condition is a CSV on your desktop, not a working scraper.
- You sell to US home-services companies specifically, and you want the categories to come back sane.
- You buy in bursts — a campaign now, another in two months — and you resent paying a monthly seat in between.
- You would rather not learn what a residential proxy is, or discover on a Friday that your extension got blocked.
- You need to hand the file to someone junior without also handing over credentials.
DO NOT BUY THIS IF
- You need six-figure row counts or nationwide coverage in one pull. Our ceiling is 500 rows per search on purpose.
- Your campaign is email-led. The fill rate above is the answer, and it is not a good one.
- You need verified contact names, titles or direct dials. Nothing in this file is enriched.
- You want an API, a webhook or a nightly recurring pull. There is no API.
- You are targeting anything outside US home services — other verticals, other countries. Ten trades, US only.
- You genuinely enjoy running your own scraper. Then you should, and you will pay less.
Two adjacent questions have their own pages rather than a paragraph here. Whether scraping Maps is permitted is covered in is scraping Google Maps legal, and if you would rather extract the data by hand, the manual routes — including why Google’s own Places API stops well short of a full metro — are walked through in exporting Google Maps to CSV.
Missing features
WHAT IT DOES NOT DO
Written plainly so you find out here rather than after paying:
- No API and no integrations. A CSV is the entire interface. There is no Zapier step, no CRM push, no webhook.
- No scheduling. Every search is something you start. Nothing runs on a cadence and nothing re-pulls a metro for you next month.
- No de-duplication across searches. In our own 3,190-row corpus, 101 rows carry a business name that already appears somewhere else in it — an HVAC firm that also lists as a plumber, a business sitting on a metro boundary. Merge your files and de-duplicate on phone number.
- No verification. We do not dial the numbers or test the websites. What you get is what the business publishes, which is current but not audited.
- No contact names, titles or company size. This is a business record, not a person record.
- No review text, photos or opening hours. Twelve columns is the whole file.
Some of those are roadmap and some are deliberate. None of them are going to be quietly implied on a feature grid somewhere else on this site.
OPEN THE FILE BEFORE YOU PAY FOR IT
A spec sheet is still an argument. The only way to judge a lead list is to sort it, scan the phone column and see whether you would actually dial the fifteenth row. Pick a trade and a metro and we will send 50 real rows — drawn from the same stored corpus the fill-rate table above is counted from — with no card and no call.
Running outreach for clients rather than yourself? The workflow side — segmenting, sequencing, what to do with the file once it lands — is written up for agencies.