📍 Google Maps Email Scraper — Scored Business Leads avatar

📍 Google Maps Email Scraper — Scored Business Leads

Pricing

from $3.00 / 1,000 results

Go to Apify Store
📍 Google Maps Email Scraper — Scored Business Leads

📍 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

Gezgin Data

Maintained by Community

Actor stats

1

Bookmarked

17

Total users

4

Monthly active users

2 days ago

Last modified

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

  1. Enter the business types you want, one or more: dentists, Friseur, Italian restaurants, plumbers.
  2. Enter the locationCologne, Germany, London, UK, Austin, Texas.
  3. Start with maxResults around 5–20 to see the shape of the data, then raise it.
  4. Run it, then sort the output by lead_priority and 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

FieldDefaultWhat it does
searchTermsBusiness types to search. Several terms broaden coverage. Required
locationCity and country. Required
maxResults50Per search term. Start small, up to 500 for production
extractEmailtrueVisit each business website and pull out the contact e-mail
enrichLeadstrueScore each lead and read website signals — costs no extra requests
minRating0Only businesses at or above this Google rating
onlyWithWebsite / onlyWithPhonefalseSkip businesses missing either
languageenLanguage of the Maps search
proxyConfigurationRecommended 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

FieldMeaning
name, category, address, city, countryCore listing data
phone, websiteAs published on Google Maps
website_typeWhat that link really is: own, social, link_hub, platform or none
email, email_sourceExtracted from the business website, with its provenance
rating, review_countGoogle rating and how many reviews it rests on
latitude, longitude, maps_url, opening_hoursLocation and listing detail
contactability_score, lead_priority, opportunity_tagsThe scoring below
has_ssl, mobile_friendly, cms, copyright_yearTechnical state of their website
has_tracking, tracking_tools, social_links, has_contact_formDigital 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?

SignalPoints
E-mail address found50
Phone number25
Website of their own listed15
Website actually responded10

opportunity_tags — is it worth reaching them?

TagFires when
needs_websiteNo website of their own — nothing listed, or only an Instagram page, a Linktree or a booking profile
weak_reviewsFewer than 25 reviews, or a rating below 3.8
stale_siteCopyright three or more years old, no viewport meta tag, or still on http
no_marketingWebsite is live but carries no analytics or tracking pixel

lead_priority

score ≥ 60 and at least one tag → hot
score ≥ 60 or at least one tag → warm
otherwise → 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 scrapeYou 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 found100%
Website listed92%
E-mail found64% 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.

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.