📍 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

2

Bookmarked

31

Total users

5

Monthly active users

9 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.

An opening line, already written. Every row carries outreach_hook — one sentence stating the single most concrete thing found about that business: "Your Google Maps listing points at a social media profile rather than a website of your own." or "The footer of your website still reads 2019." It is assembled from findings that were actually verified, never generated when the site could not be read, and it names one fact rather than reciting an audit. It does not try to sell for you; it hands you the sentence you would otherwise write 200 times by hand, and outreach_basis tells you which finding it came from so you can check it. Available in German and English, following the language you searched in.

It remembers what it already gave you. Prospecting means running the same city and trade again every few weeks, and until now that returned the identical list every time. Switch on onlyNew and you get only the businesses this search has not delivered before. Known ones are skipped before their page is opened, so a repeat run is cheaper as well as shorter — in testing, the second run of the same search took 34 seconds instead of 91. When there genuinely is nothing new, you get a row saying so rather than an empty sheet.

The better reason to use it: a business that has just appeared on Google Maps usually has no website, no reviews and no online presence at all. That is the strongest lead there is for anyone selling web work, and it used to drown in 200 rows you had already worked through. Each search keeps its own memory, and entries older than 180 days are forgotten.

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 location — Cologne, 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
searchTerms—Business types to search. Several terms broaden coverage. Required
location—City 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
onlyNewfalseReturn only businesses this search has not delivered before
minRating0Only businesses at or above this Google rating
onlyWithWebsite / onlyWithPhonefalseSkip businesses missing either
languageenLanguage 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

FieldMeaning
name, category, address, city, countryCore listing data
phone, websiteAs published on Google Maps
outreach_hookOne sentence you can open with, built from what was actually verified about this business
outreach_basisWhich finding that sentence came from, so you can check it
website_statusPlain wording for the table: Own website, Social profile only, Link page only, Booking or directory profile only, No website
website_typeThe same thing as a stable machine value: own, social, link_hub, platform, 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.

It also lists shared_emails — any address that turned up on more than one business in the run. Those belong to a booking platform, a directory or a web agency rather than to any of the leads, and they are worth removing before you send anything.

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
needs_website and a phone number → 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.

中文说明

输入行业关键词和城市,从谷歌地图批量获取海外企业客户名单,并自动从每家企业的官网提取联系邮箱。 适合外贸业务员、跨境服务商和需要开发海外客户的团队:不用再每天花几个小时在谷歌地图上手动翻找、复制粘贴。

为什么用它:

  • 邮箱已包含在内:每条结果除了公司名称、地址、电话、官网、评分和坐标,还会自动访问企业官网查找联系邮箱,不需要另外购买邮箱挖掘服务。
  • 云端运行,不占用自己的电脑:在 Apify 云端运行,无需自己配置海外网络环境或代理,不用让电脑开着跑好几个小时,也不怕中途卡住没有提示。
  • 按条计费,没有年费:每家企业 0.003 美元,即每 1,000 条 3 美元,邮箱提取和客户评分都包含在内。Apify 免费套餐每月赠送 5 美元额度,可以先免费试用。
  • 告诉你先联系谁:每条线索都有可联系度评分(contactability_score)和优先级(lead_priority:hot / warm / cold),按优先级排序后从最上面开始联系即可。
  • 数据可追溯:每个邮箱都标明来源(官网的 mailto 链接、联系页、结构化数据等),方便判断可信度。

实测数据: 在德国科隆随机抽取的 25 家企业中,100% 找到了电话,92% 有官网,64% 找到了邮箱(在有官网的企业中为 70%)。在德国汉诺威有官网的油漆装修公司中,邮箱获取率达到 85%。需要说明的是:美国企业更常使用网站表单而不是公开邮箱,在美国奥斯汀的同类测试中,有官网企业的邮箱获取率约为 55%。

适用场景:

  • 按行业和城市开发海外买家、经销商和零售商,例如“furniture store, Munich”“dental clinic, Dubai”
  • 定期重复同一搜索:开启 onlyNew 后只返回上次没有出现过的新企业,重复运行更快也更便宜
  • 筛选目标客户:可设置最低评分,或只要有官网、有电话的企业

使用方法:

  1. 在 searchTerms 中填入英文或当地语言的行业关键词,每行一个,例如 furniture store、Möbelhaus
  2. 在 location 中填入城市和国家,例如 Munich, Germany、Dubai, UAE
  3. 先把 maxResults 设为 5–20 看看数据效果,再加大数量
  4. 把 language 设置为目标国家的语言(如德国用 de),谷歌地图会用该语言返回结果
  5. 超过约 100 条结果时,建议开启 Apify Proxy,避免被谷歌限流

需要注意:

  • 没有官网的企业无法提取邮箱,但仍会返回电话和地址。
  • 约 30% 有官网的企业没有公开邮箱(只有表单,或邮箱藏在 JavaScript 中)。
  • outreach_hook(开发信开场白)目前只支持英语和德语。
  • 联系欧洲企业时请遵守 GDPR 等当地法规;例如在德国,未经同意发送 B2B 营销邮件通常是不允许的。

有问题或功能建议?欢迎在 Issues 页面留言,中英文均可。