📍 Google Maps Email Scraper — Scored Business Leads
Pricing
from $3.00 / 1,000 results
📍 Google Maps Email Scraper — Scored Business Leads
Most Google Maps scrapers just dump raw leads. This one scores every lead by how reachable it is and tags why it's worth contacting — no website, weak reviews, a dated site, no marketing — then gives you a one-page market summary. Emails included, all in one run, flat JSON.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Gezgin Data
Maintained by CommunityActor stats
1
Bookmarked
17
Total users
4
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape Google Maps business leads with e-mail addresses — and find out which of them are worth contacting. Search any business type in any city worldwide, get name, address, phone, website, rating and GPS, then let the Actor visit each business website to pull out a contact e-mail and work out how reachable and how promising that lead really is.
Other Google Maps scrapers hand you a list. This one hands you a work list: every lead carries a reachability score, tags explaining why it is worth a call, and a one-page market summary for the whole run. All in a single run, one flat JSON row per business, no dataset joins.
On a fresh test batch of 25 hairdressers in Cologne it found a phone number for 100%, a website
for 92%, and an e-mail address for 64% of all businesses — 70% of those that actually had a
website. Nine of the 25 came back flagged hot.
What you get that other Google Maps scrapers don't
E-mails are included, not an add-on. The large scrapers charge separately for contact enrichment — typically an extra fee per record on top of the per-place price, and more again for "lead enrichment". Here, e-mail extraction and lead scoring are part of the same $0.003 per result.
Every lead is scored and tagged. No other Google Maps Actor tells you which businesses to call first. This one does, and explains why.
A website field you can trust. Google Maps lists whatever the owner typed in, and a sizeable
share of small businesses type in an Instagram page, a Linktree or a Treatwell booking profile.
Other scrapers hand that to you in a column called "website", and it looks like coverage you do not
have. This Actor tells them apart in website_type and treats them for what they are: a business
with no site of its own is flagged needs_website, and no technical judgement is made about a page
that belongs to Meta rather than to the business. In Berlin test batches, 10% of tattoo studios and
25% of nail salons had no site of their own — and those are exactly the businesses worth calling if
you sell web work.
One row per business. Contact data, website signals and scoring arrive in the same flat record. Nothing to merge, nothing to join.
E-mail provenance. Each address records where it came from — a mailto: link, structured data,
a Cloudflare-obfuscated address, the page source, or a contact/imprint page — so you can judge how
much to trust it.
How to scrape Google Maps business leads
- Enter the business types you want, one or more:
dentists,Friseur,Italian restaurants,plumbers. - Enter the location —
Cologne, Germany,London, UK,Austin, Texas. - Start with
maxResultsaround 5–20 to see the shape of the data, then raise it. - Run it, then sort the output by
lead_priorityand start at the top.
Set the language to match your target country — it decides which language Google Maps answers in. For runs above ~100 results, switch on Apify Proxy to avoid rate limits.
Input
| Field | Default | What it does |
|---|---|---|
searchTerms | — | Business types to search. Several terms broaden coverage. Required |
location | — | City and country. Required |
maxResults | 50 | Per search term. Start small, up to 500 for production |
extractEmail | true | Visit each business website and pull out the contact e-mail |
enrichLeads | true | Score each lead and read website signals — costs no extra requests |
minRating | 0 | Only businesses at or above this Google rating |
onlyWithWebsite / onlyWithPhone | false | Skip businesses missing either |
language | en | Language of the Maps search |
proxyConfiguration | — | Recommended above ~100 results |
Output
One flat row per business. Download as JSON, CSV, Excel or HTML, or pull it through the API.
{"name": "Example Hair Studio","category": "Hairdresser","address": "Musterstraße 2, 50667 Köln, Deutschland","phone": "+49 221 56065017","website": "https://www.example-hair.de/","email": "service@example-hair.de","email_source": "mailto_link","rating": 5,"review_count": 498,"latitude": 50.937376,"longitude": 6.953564,"contactability_score": 100,"lead_priority": "hot","opportunity_tags": ["stale_site"],"opportunity_count": 1,"has_ssl": true,"mobile_friendly": true,"cms": "webflow","copyright_year": 2023,"has_tracking": true,"tracking_tools": ["meta_pixel"],"social_links": { "instagram": "https://www.instagram.com/example_hair/" },"has_contact_form": false}
Data fields
| Field | Meaning |
|---|---|
name, category, address, city, country | Core listing data |
phone, website | As published on Google Maps |
website_type | What that link really is: own, social, link_hub, platform or none |
email, email_source | Extracted from the business website, with its provenance |
rating, review_count | Google rating and how many reviews it rests on |
latitude, longitude, maps_url, opening_hours | Location and listing detail |
contactability_score, lead_priority, opportunity_tags | The scoring below |
has_ssl, mobile_friendly, cms, copyright_year | Technical state of their website |
has_tracking, tracking_tools, social_links, has_contact_form | Digital maturity signals |
A market summary for the whole run is written to the key-value store: contactability across the
city, average rating, how many businesses have a site of their own (with_website_pct), how many
get by on a social profile, link hub or booking platform instead
(substitute_presence_only_pct), and which opportunity signals dominate.
How the lead scoring works
Two separate things are measured, because they answer different questions.
contactability_score — can you reach them?
| Signal | Points |
|---|---|
| E-mail address found | 50 |
| Phone number | 25 |
| Website of their own listed | 15 |
| Website actually responded | 10 |
opportunity_tags — is it worth reaching them?
| Tag | Fires when |
|---|---|
needs_website | No website of their own — nothing listed, or only an Instagram page, a Linktree or a booking profile |
weak_reviews | Fewer than 25 reviews, or a rating below 3.8 |
stale_site | Copyright three or more years old, no viewport meta tag, or still on http |
no_marketing | Website is live but carries no analytics or tracking pixel |
lead_priority
score ≥ 60 and at least one tag → hotscore ≥ 60 or at least one tag → warmotherwise → cold
In the Cologne test batch, no_marketing fired on 11 of 25 businesses, stale_site on 6 and
needs_website on 2 — which is the sales pitch for a web or marketing agency written out in
advance.
How much does it cost to scrape Google Maps?
$0.003 per business, with e-mail extraction and lead scoring included. There is no separate charge for contacts or enrichment.
| You scrape | You pay |
|---|---|
| 100 businesses | $0.30 |
| 500 businesses | $1.50 |
| 5,000 businesses | $15.00 |
Enrichment adds no extra cost, because it is computed from the same page fetch the e-mail search already performed.
Tips for better results
Start with 5–20 results to check the data before committing to a large run.
Use onlyWithWebsite when e-mail addresses are the whole point — businesses without a website
can never yield one. But leave it off if you sell websites: needs_website is the strongest
buying signal in the entire output.
Set minRating to 4.0 for established businesses, or leave it at 0 and use weak_reviews to
find the ones struggling with their reputation.
Turn on Apify Proxy above ~100 results to avoid Google rate limits.
Match the language to the country you are searching.
What it does well, and where it falls short
Measured on a fresh batch of 25 businesses that had no part in developing the Actor:
| Result | |
|---|---|
| Phone number found | 100% |
| Website listed | 92% |
| E-mail found | 64% of all — 70% of those with a website |
Where it falls short, honestly:
Roughly 30% of businesses with a website yield no e-mail. Some publish only a contact form, some hide the address behind JavaScript, some genuinely have none. The Actor is browser-free for the website visit, which is what keeps it fast and cheap — the trade is that client-side-rendered contact pages stay invisible.
Businesses without a website can never produce an e-mail. They come back with needs_website,
which is a signal in itself, but not an address.
no_marketing can misfire on businesses using server-side or self-hosted analytics, which
leave no trace in the page source.
The scoring weights are reasoned judgements, not learned values. They were set by argument, not
by measuring which leads actually converted, and they assume you sell websites, hosting or
marketing. If you sell something else, ignore the tags and sort by contactability_score.
Large runs need a proxy. Google rate-limits aggressive scraping; above roughly 100 results, switch Apify Proxy on.
FAQ, legal note and support
Does it work outside Germany and the US? Yes — any city worldwide. Set language to match the
country for the best results.
Do I need an API key? No. No Google API key, no third-party account.
Can I schedule it? Yes, through Apify's scheduler, and results can be pushed to your own systems by webhook or API.
The Actor reads publicly visible Google Maps listings and business websites, the way a browser does. Business contact details published in an imprint or on a contact page are public information, but what you may do with them afterwards is regulated — under GDPR in the EU, and in Germany unsolicited B2B e-mail advertising generally requires prior consent under the UWG. Please make sure your intended use is lawful where you operate.
Found a bug, or want another signal in the output? Open an issue on the Issues tab.


