Google Maps Email Extractor - Google Maps Business Leads
Pricing
from $2.40 / 1,000 business emails
Google Maps Email Extractor - Google Maps Business Leads
Google Maps leads with business emails: local businesses on Google Maps (Google Places, GMB), each one's email from its own website, MX-checked - a business owner email finder for local leads. Reads Google Maps itself: $3 per 1,000 places with an email, $1 per 1,000 without.
Pricing
from $2.40 / 1,000 business emails
Rating
0.0
(0)
Developer
Rafal Sav
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
What does Google Maps Email Extractor do?
Google Maps Email Extractor finds businesses on Google Maps and gets the email address from each business's own website. Type what you would search for — dentist, plumber, Steuerberater — and a location, and you get one record per place: the name, address, phone and website Google Maps shows, plus the emails, phone numbers and social profiles published on that website, each email checked for a working mail server.
Google Maps does not show email addresses; the website does. This Actor reads every place's website the way a person would — the contact page, the imprint, the privacy policy — and returns the address the business actually answers.
You pay $0.003 for a place where an email is found. From October 27, 2026, a place this Actor finds on Google Maps without one costs $0.001 — the price of the place itself: its name, address, phone, website, rating and opening hours. Until then such a place costs nothing. A permanently closed place is always free, and an email that belongs to someone else (the web agency, a booking platform) is never charged as the business's.
It runs on the Apify platform: API access, scheduling, integrations (Make, Zapier, n8n, Google Sheets) and run monitoring included.
Why use it?
- About a third of the cost per email. On 300 places found by the most popular Google Maps email extractor in Apify Store, this Actor got the business's own email for 66% of them against its 56%, at $0.0032 per place with an email against $0.0105–0.0131 — it charges $0.006–0.0075 for every place, this Actor $0.003 for a place with an email and $0.001 for any other (measured September 2026, at the prices from October 27, 2026; details below).
- More places get an email. On 130 real businesses with a website — dentists, plumbers, lawyers, estate agents and accountants in Chicago, Manchester, Cologne and Kraków — it found a usable email for 80%, against 71% for the contact add-on built into Google Maps Scraper, on the same places (September 2026, details below).
- The email is the business's own. An address counts only when it is on the business's own domain, on a second domain carrying the business's name (
koeln@dahler.comfor DAHLER at dahlercompany.com), or a personal mailbox the business uses (Gmail, Outlook, T-Online, WP.pl…). The web agency that built the site — even one sharing the owner's surname — the booking platform named in the privacy policy, and the regulator or professional chamber a German Impressum must name are returned for reference but never billed as the business's email and never picked asbest_email. - Emails are checked for a working mail server. A domain that accepts no mail (a typo, an expired domain) is flagged
valid_mx: falseand never billed as an email. - Phones are normalized. Numbers found on the website come back in E.164 (
+17735550123), parsed for the place's country; they matched the Google Maps phone for 85% of the places above, against 61% for the add-on. - Obfuscated addresses are decoded: Cloudflare email protection, HTML entities,
name [at] domain [dot] com. - Chains do not pay twice for one inbox. Branches of one business that share an inbox are charged for the email once per run; a website shared by several branches is read once.
Use cases
- Local lead generation — every dentist, plumber or law firm in a city, with an inbox to write to.
- Agency prospecting — find businesses in a niche and region, with their website and socials.
- Sales territory mapping — a CSV of reachable businesses per category and city.
- Enriching a list you already have — give it an earlier Google Maps dataset and only the websites are read.
How to use it
- Enter one or more Search terms (one per line) and a Location, e.g.
dentistinChicago, USA. - Set Places per search term — every place found is paid for, so it also caps what the run costs.
- Click Start. Places are read as soon as Google Maps returns them; download the results as JSON, CSV, Excel or HTML.
Already scraped Google Maps? Pick that dataset under Or: places you already have instead of entering search terms: its places are enriched, nothing is paid for finding them again, and only a place with an email is charged. A Google Maps link pasted into the search terms works too.
Input
| Field | What it does |
|---|---|
| Search terms | What you would type into Google Maps. Each term is searched in the location. |
| Location | A city, region or country, as free text. One per run. |
| Places per search term | How many places to take per term (default 20). |
| Language | Language of place names and addresses returned by Google Maps. |
| Where the places come from | google (default) — this Actor reads Google Maps' search results itself: no other Actor runs, and the places come with their opening hours, coordinates and categories, at $0.001 a place without an email from October 27, 2026; should Google refuse, scraperlink takes the search over at its price. Or scraperlink ($0.50 per 1,000 places on the Free and Starter plans, compass takes over when it finds nothing) or compass (closest to Google Maps' own ranking), each in a run of its own on your account. |
| Places you already have | An existing Google Maps dataset to enrich instead of searching. |
| Max contact subpages | How many contact-like pages to read per website (default 5). |
| Validate emails | Check each email's domain for a mail server (on by default). |
| JavaScript rendering | auto re-reads a website in a browser when no usable email was found without one; needs 2048 MB of memory. |
Output
One record per place:
{"name": "Northside Dental Care","category": "Dentist","address": "1200 N Example Ave, Chicago, IL 60622","city": "Chicago","country_code": "US","maps_phone": "+17735550123","website": "https://www.northsidedental.example/","status": "ok","best_email": "info@northsidedental.example","emails": [{ "email": "info@northsidedental.example", "valid_mx": true, "role": true, "confidence": 0.85, "kind": "own" },{ "email": "hello@webagency.example", "valid_mx": true, "role": true, "confidence": 0.85, "kind": "other" }],"phones": ["+17735550123"],"faxes": [],"socials": { "facebook": ["https://facebook.com/northsidedental"], "instagram": ["https://instagram.com/northsidedental"] },"billed": true,"rating": 4.8,"reviews_count": 311,"google_maps_url": "https://www.google.com/maps/search/?api=1&query=...","place_id": "ChIJ...","search_string": "dentist","rank": 4,"billed_event": "place-with-email"}
| Field | Description |
|---|---|
name, category, address, city, country_code | The place as Google Maps lists it. |
maps_phone | The phone number Google Maps shows. |
website | The website Google Maps lists, without click-tracking parameters. |
status | ok (contacts found), no_contacts (website read, nothing published), unreachable (the website refused or did not answer, or forwards to a platform's front page — an expired domain sent to Facebook or to its registrar), no_website (none listed, or only a Facebook, Instagram or booking-platform page — kept in socials or website; a Google Site is read as the business's own), closed (permanently closed, not read). |
best_email | The address to write to: the business's own domain first, then a domain with its name, then a personal mailbox it uses. Empty when there is none. |
emails | Every address found on the website, each with valid_mx, role, confidence and kind: own, related (a domain carrying the business's name), free_mail or other (someone else's — never billed as an email). |
phones, faxes | Numbers found on the website, in E.164. Faxes are kept apart. |
socials | Profile links from the website, grouped by platform, de-duplicated. |
company | For German businesses, from the website's Impressum: company, legal_form, representatives (managing directors, owner or partners), vat_id, register_court, register_number and address; null fields when it cannot place them, null without a notice. For a French, Spanish, Italian or Dutch site the same object comes from its mentions légales, aviso legal, footer or contact page: register_number is the company's SIREN, NIF, codice fiscale or KvK number (register_type says which), vat_id its VAT number (TVA, partita IVA, BTW), each returned only when its checksum holds, with country (FR, ES, IT, NL). Included in the price. |
billed | Whether this place was charged. |
billed_event | Which price it was charged: place-with-email ($0.003) or place-without-email ($0.001, from October 27, 2026); null when it was not charged. |
rating, reviews_count, google_maps_url, place_id, search_string, rank | From Google Maps. |
opening_hours, open_status, description, categories, location, street, postal_code, state | From Google Maps too, when the Actor reads it itself (the default): the week's hours as listed, the live status line, Google's one-line summary of the business, every category, coordinates, and the address in parts. |
Accuracy
On September 24, 2026 we took the first 8 Google Maps results for five lead-generation categories in four cities — dentists, plumbers, lawyers, estate agents and accountants in Chicago, Manchester, Cologne and Kraków, searched in the local language — 136 places, 130 with a website. The same places went through this Actor and through Google Maps Scraper's own Company contacts enrichment add-on:
| Of 130 places with a website | This Actor | Contact add-on |
|---|---|---|
| Usable email (own domain or personal mailbox) | 104 (80%) | 92 (71%) |
| Email on the business's own domain | 94 (72%) | 82 (63%) |
| Only someone else's address found | 12 (9%) | 11 (8%) |
| Phone matching the one on Google Maps | 110 (85%) | 79 (61%) |
Only this Actor found a usable email for 17 of the places, only the add-on for 5. The top of Google Maps is not a random draw of businesses — firms that invest in their listing are over-represented — so read these as a fair comparison on the same places, not as a yield estimate for every list.
Against the most popular Google Maps email extractor (September 26–27, 2026). We ran the most popular Google Maps email extractor in Apify Store — over 3,000 monthly users — on 15 searches: roofers in Denver, vets in Seattle, auto repair shops in Phoenix, electricians in Birmingham, estate agents in Leeds, accountants in Vancouver, solicitors in Dublin, real estate agents in Auckland and seven more across the US, UK, Canada, Australia, Ireland and New Zealand. It returned 300 places, and this Actor read the same 300 (its dataset as input). Every address either returned was checked by hand.
| Of 300 places | This Actor | Most popular extractor |
|---|---|---|
| Places with the business's own email | 199 (66%) | 167 (56%) |
| Cost per place with an email, Starter plan | $0.0032 | $0.0105 |
| Cost per place with an email, Free plan | $0.0032 | $0.0131 |
- The other extractor charges every place — $0.004, plus $0.002 for its contacts add-on, on the Starter plan ($0.005 + $0.0025 on Free). This Actor charges $0.003 for a place with a usable email and, from October 27, 2026, $0.001 for any other place it finds on Google Maps: counted here as 170 places at $0.003 and the other 130 at $0.001. (Read from a dataset, as in this test, the 130 cost nothing.)
- Both sometimes return someone else's address — a franchisor's privacy inbox, a web template's placeholder, a regulator: 22 of the 401 addresses this Actor returned, 4 of the other's 416. Here they are listed in
emailsfor reference only: all 170 places billed for an email had the business's own address asbest_email. - 18 of the websites refused this Actor's requests (6%); the other extractor got an email from 8 of them.
Where the places come from (September 25, 2026). The same 20 searches through scraperlink's Google Maps Scraper, the default source, returned 63 of those places among their first 10 results, with the same website and phone for all 63 and the same share of usable emails, 81%. Its other places — more trades that serve an area without a street address, and more lead-generation sites — gave fewer: 74% of all 199 places with a website. The search costs an eighth as much, so a usable email costs about half. Pick compass as the place source for the ranking Google Maps shows.
This Actor reading Google Maps itself (google, October 9, 2026). The other extractor's own 15 searches — "veterinarian in Seattle", "solicitor in Dublin", "plumber in Melbourne" and twelve more, 20 places each — asked again through this source: 300 places, 285 of them in the city asked for (the other extractor's 300 had 213 — its Melbourne plumbers were in Florida, its Phoenix repair shops in Europe); 148 places in both sets, with the same website for all 148 and the same phone for 145; a website for 290, a phone for 299, opening hours for 297; and an email the business can be reached at for 203 of the 300 (68%), against 169 of its 300 (56%). No run on your account: the search is part of the Actor, and a place it finds costs $0.001 when no email is charged for it (from October 27, 2026). Permanently closed places are marked and never read or charged, and a place's one-line summary from Google comes in description. What it does not give yet: the review count for about half the places, which Google's search results carry only sometimes.
How much does it cost?
Every place is charged once, at one of two prices:
- Business email — $0.003 (~$3 per 1,000), for each place whose website gave a usable email: on its own domain, on a domain carrying its name, or a personal mailbox it uses. Phones and social profiles are included.
- Place without email — $0.001 (~$1 per 1,000), from October 27, 2026: a place this Actor found on Google Maps itself and returned without an email charge — no website, no email on it, a website that did not answer, only someone else's address, or an inbox already charged for another branch. You get what Google Maps shows: name, address, phone, website, rating, categories, opening hours and coordinates, with whatever the website gave. Until October 27 these places cost nothing.
Never charged: a permanently closed place; as a place, one from a dataset you gave or one another scraper found — those pay only for an email. A place is written to the dataset before it is charged, so you never pay for a row you cannot see, and once the maximum cost you set is reached, further places are not returned rather than given away or charged.
Finding the places is part of the Actor: by default it reads Google Maps' search results itself and no other Actor runs. Only if Google refuses the search does scraperlink's Google Maps Scraper take it over, in a run of its own on your account at its price ($0.50 per 1,000 places on the Free and Starter plans, $0.40 on higher ones, at least 10 per search term; the run's status says so when it happens) — and this Actor then charges those places only for an email. You can also pick scraperlink or compass's Google Maps Scraper ($4 per 1,000 places on the Free plan) as the place source yourself; their paid add-ons are never switched on. Enriching a dataset you already have reads no search at all.
100 dentists in Chicago cost about $0.25 — about 75 places with an email at $0.003 and 25 without at $0.001 ($0.22 until October 27). The Apify Free plan's $5 in monthly credits covers roughly 2,000 places; with scraperlink as the source about 1,800, with compass about 700.
The maximum cost per run you set applies to this Actor's charges. When another scraper searches (your choice, or Google refusing), its run gets its own limit: the places you asked for at its price plus a quarter — for compass never less than the $0.50 it requires.
Tips
- Keep "Places per search term" as low as you need — every place found is paid for, $0.003 with an email and $0.001 without (from October 27, 2026). Set a maximum cost per run and the run stops there.
- Some trades rarely list a website. Searching hair salons in Kraków, 12 of 15 places had none, or only a Facebook or booking page; dentists, lawyers and accountants usually do. A place without a website costs $0.001 from October 27, 2026: you still get its name, address and phone.
- Re-use a dataset rather than searching again for places you already have.
- Use
renderJs: auto(with 2048 MB of memory) for websites built entirely in JavaScript; it only starts a browser for sites where no usable email was found without one. - Stopping the run stops the search too — whether you abort it (any way) or it reaches its maximum cost — so nothing keeps billing in the background. Measured: a run aborted half a minute into a 300-place search stopped the search six seconds later, before a single place was billed. Small searches are often over before you could stop them: 100 places came back in 27 seconds.
- Reading websites takes longer than finding places. About 3 seconds per place at the default 1024 MB of memory (136 places in 6.5 minutes); results appear in the dataset as each place is done. The default run timeout of 4 hours covers roughly 5,000 places: a run that gets close to its timeout stops taking new places a few minutes early, finishes the ones in progress and says in its status how many were left — raise the timeout in the run options for bigger lists.
- A run the platform moves to another server picks up where it was. The search is not started again, and no place is read or charged twice.
FAQ
Why do some places have no email?
Check status. no_website: Google Maps lists no website, or only a Facebook or booking page. no_contacts: the website publishes no email (only a contact form) — or it is built entirely in JavaScript; renderJs: auto re-reads such a site in a browser when no usable email was found without one. unreachable: the website refused the request — the Actor then retries through Apify's datacenter proxy by itself — or the domain forwards to a platform's front page. None of these is charged as an email; from October 27, 2026 such a place costs $0.001 as a place when this Actor found it on Google Maps itself.
Why is an address in emails but not best_email?
It is on someone else's domain (kind: other): the agency that built the site, a booking or review platform, a supplier. It is returned so you can see it, but it is never billed as an email and never chosen as the address to write to. A second domain of the business's own — one carrying its name — is kind: related and is treated like its own.
Can I use it for a list of websites instead of Google Maps?
Use the Website Contact & Email Scraper — same engine, one record per website, priced per contact.
Is scraping this data legal?
Google Maps listings and business websites are public, and this Actor respects robots.txt and rate-limits its requests. What you do with the data is your responsibility: under GDPR you are the data controller, you need a lawful basis for outreach, some countries restrict unsolicited commercial email (for example § 7 UWG in Germany), and you must honour opt-outs.
Related Actors
- Website Contact & Email Scraper — emails, phone numbers and social profiles from any list of websites, priced per contact.
- Impressum & Legal Notice Scraper — the same for German websites: the Impressum read first,
DEphone numbers, the authorities a legal page must name left out. - Shopify Store Leads & Emails — Shopify stores by product keyword and country, with each store's email and its currency, catalogue size and shipping countries.
- No Website Leads — businesses on Google Maps without a real website, for web design agencies.
- Decision Maker Email Finder — the owners, CEOs and founders a company names on its own website, each with a work email it published or its mail server confirmed.
- Email Finder by Name & Domain — a person's work email from their name and company domain: published on the company's website or confirmed by its mail server.
Disclaimer
This Actor is a tool. You are the data controller for any personal data you collect and are responsible for complying with GDPR and local marketing law, the target sites' Terms of Service and robots.txt. It does not build or sell contact databases.
Support
Found a place where an email was missed or the wrong one was picked? Open an issue on the Issues tab — accuracy reports shape the roadmap directly.