๐ง Google Maps Email And Phone Number Scraper
Pricing
from $5.00 / 1,000 results
๐ง Google Maps Email And Phone Number Scraper
Find business emails and phone numbers behind Google Maps places: scrape listings, then crawl each website for emails, phones, socials and contact pages. Email verification, dedupe, generic-address filters. No API key needed.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Data Minds
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
๐ง Google Maps Email And Phone Number Scraper โ Business Email Finder & Contact Extractor
Google Maps Email And Phone Number Scraper is a production-grade Apify Actor that answers one question fast: how do I contact this business? Give it a business type and an area โ dentist in Denver, Colorado โ and it returns one clean contact row per business: best email address, every email found, the Google phone number, every phone published on the website, and LinkedIn / Instagram / Facebook / X / YouTube / TikTok / Pinterest / Discord profiles โ streamed into your Apify Dataset as they are found.
๐ก Need a custom version, private integration, or a tailored contact-enrichment pipeline? Email hello.dataminds@gmail.com.
Built for cold email outreach, cold calling, lead enrichment, recruiting, partnership scouting and CRM hygiene โ anyone who needs business emails and phone numbers rather than a full business dump.
๐ Table of contents
- What is Google Maps Email And Phone Number Scraper?
- Main features
- Who is this Actor for?
- How the contact hunt works
- Contact rules you control
- Email verification explained
- Output format (Dataset)
- Example output (JSON)
- Quick start
- Input parameters reference
- Integrations & automation
- Frequently asked questions (FAQ)
- Troubleshooting
- Help, support & custom builds
- Is scraping business contacts legal?
- SEO keywords targeted
๐ง What is Google Maps Email And Phone Number Scraper?
Google Maps lists the phone number of a business, but never the email address โ that lives on the business website, usually two clicks deep on a contact page. Collecting that by hand is the slowest part of building any outreach list.
This Actor closes the gap and hands you a contact-first table:
- Finds the businesses matching your search in the area you choose.
- Takes the phone number Google publishes and keeps it in both display and dialable form.
- Opens the business website, plus its contact and about pages, and extracts every email address and phone number published there.
- Picks the best one for you โ
primaryEmailprefers an address on the company's own domain,primaryPhoneprefers the verified Google number. - Cleans the list โ drop free mailboxes, drop generic
info@inboxes, remove duplicates across the entire run, cap emails per business. - Verifies deliverability on request โ disposable, free-mail and role checks plus a mail-server probe. No third-party key.
- Streams every row live to your dataset โ export to JSON, CSV, Excel, XML, or pull it through the Apify API.
โจ Main features
- ๐ง Email finder โ homepage + contact/about pages, junk-domain filtering, image-file filtering.
- ๐ฅ Best contact picked for you โ
primaryEmailandprimaryPhoneare ready to paste into a sequence. - โ๏ธ Three phone sources, kept apart โ Google's listed number,
tel:links from the site, and loose text matches in a separateotherPhonescolumn so you always know how confident to be. - ๐ 8 social networks discovered and deduplicated.
- ๐งน Contact hygiene โ business-emails-only mode, generic-inbox skipping, run-wide deduplication, per-business caps.
- โ Only-with-email / only-with-phone modes โ a row is saved only when it is actually actionable.
- ๐งช Built-in verification โ free / role / disposable flags, MX lookup and an SMTP deliverability probe.
- ๐ฏ Prospect filters โ category keywords, name matching, minimum rating, website presence, closed places, big chains.
- ๐ช Optional full business profile โ attach every Google Maps field under
businessDetailswhen you need more than contacts. - ๐ฆ Blocking handled for you โ the run adapts on its own when a site pushes back, with no configuration required.
- ๐ฆ Live dataset writes and seven prebuilt views โ Contact Overview, Emails, Phones, Socials, Verification, Business & Location, Source & IDs.
๐ฅ Who is this Actor for?
- ๐ฌ Cold email teams โ build a clean, deduplicated address list in minutes.
- ๐ Cold calling & telesales โ phone-first lists with the verified Google number plus website numbers.
- ๐งฒ Lead-gen agencies โ deliver contact data per niche and city on demand.
- ๐งโ๐ผ Recruiters โ reach local employers directly instead of through a portal.
- ๐ค Partnership & BD teams โ find the right inbox for outreach at scale.
- ๐๏ธ RevOps / CRM teams โ fill in missing emails, phones and socials on existing accounts.
- ๐งโ๐ป Developers โ a simple business email API with no scraping stack to maintain.
โ๏ธ How the contact hunt works
- Search โ each term is looked up in your chosen area, page after page, deduplicated by place.
- Filter early โ rating, category, website presence and closed status are applied before any website is opened.
- Read the listing โ business name, category, address, rating and the Google phone number.
- Crawl the website โ homepage plus up to 10 contact/about pages per business.
- Extract & clean โ emails, phones and socials are collected, filtered by your rules, then deduplicated.
- Verify (optional) โ every surviving address gets a quality verdict.
- Save immediately โ each contact row lands in your dataset the moment it is ready.
๐๏ธ Contact rules you control
| Rule | What it does |
|---|---|
| ๐ง Only keep businesses with an email | Rows without an address are dropped; the search is automatically limited to businesses that publish a website |
| โ๏ธ Only keep businesses with a phone | Rows without any phone number are dropped |
| ๐ข Business emails only | Skips gmail.com, yahoo.com, outlook.com and friends |
| ๐ Skip generic inboxes | Skips info@, sales@, support@, contact@ and similar role addresses |
| โป๏ธ Remove duplicate emails | The same address is never returned twice in one run |
| ๐ข Max emails per business | Caps how many addresses each row keeps |
| ๐ Extra pages per website | How deep to look for a contact page (0โ10) |
| ๐ฌ Skip big chain websites | Chains rarely publish a reachable inbox |
๐งช Email verification explained
Turn on Verify email addresses and each address gets a verdict:
| Field | Meaning |
|---|---|
quality | good, bad or unknown โ the summary you can filter on |
result | ok, invalid, disposable or unknown |
subResult | Why โ accepted_email, rejected_email, no_mx_record, disposable_domain, smtp_unreachable |
free | The domain is a free mailbox provider |
role | The address is a role inbox rather than a person |
email | The address the verdict belongs to |
error | Empty unless the check itself failed, then the reason |
โน๏ธ Cloud networks routinely block outbound mail ports. When that happens the verdict is
unknownโ deliberately, rather than guessing a falsegood.
๐ค Output format (Dataset)
One row per business, contact fields first. The Output tab ships with seven prebuilt views:
| View | What it shows |
|---|---|
| โจ Contact Overview | Business, best email, best phone, website, counts, city, Maps link |
| ๐ง Emails | Domain, best email, every email, count, has-email flag |
| โ๏ธ Phone Numbers | Best phone, Google phone, dialable format, website phones, other numbers |
| ๐ Social Profiles | LinkedIn, Instagram, Facebook, X, YouTube, TikTok, Pinterest, Discord |
| ๐งช Email Verification | Per-address verdicts and the deliverable count |
| ๐ช Business & Location | Category, rating, address parts, coordinates, photo |
| ๐งญ Source & IDs | Rank, search term, place ID, CID, Maps link, collected timestamp |
Field groups in every row
| Group | Fields |
|---|---|
| Business | businessName, categoryName, website, domain, address, city, state, postalCode, countryCode, location, totalScore, permanentlyClosed, temporarilyClosed, imageUrl |
primaryEmail, emails, emailCount, hasEmail | |
| Phone | primaryPhone, googlePhone, googlePhoneUnformatted, websitePhones, otherPhones, phoneCount, hasPhone |
| Social | socialProfilesCount, linkedIns, instagrams, facebooks, twitters, youtubes, tiktoks, pinterests, discords |
| Verification | emailsVerification, verifiedEmailCount |
| Source | rank, searchString, placeId, cid, url, scrapedAt |
| Optional | businessDetails โ the complete Google Maps profile when you switch it on |
A run summary โ totals, per-search counts and contact coverage โ is stored in the key-value store as run-summary.
๐งช Example output (JSON)
{"rank": 2,"searchString": "dentist","businessName": "Icon Dental","categoryName": "Dentist","website": "https://icondentaldenver.com/","domain": "icondentaldenver.com","primaryEmail": "info@icondentaldenver.com","emails": ["info@icondentaldenver.com"],"emailCount": 1,"hasEmail": true,"primaryPhone": "+17206452153","googlePhone": "(720) 645-2153","googlePhoneUnformatted": "+17206452153","websitePhones": ["17206452153", "7206452153"],"otherPhones": ["720-645-2153", "720.645.2167"],"phoneCount": 3,"hasPhone": true,"socialProfilesCount": 2,"linkedIns": [],"instagrams": ["https://www.instagram.com/icon_dental_denver/"],"facebooks": ["https://www.facebook.com/IconDentalDenver/"],"twitters": [],"youtubes": [],"tiktoks": [],"pinterests": [],"discords": [],"address": "Icon Dental, 1425 Market St Ste. 100, Denver, CO 80202","city": "Denver","state": "Colorado","postalCode": "80202","countryCode": "US","location": { "lat": 39.7485634, "lng": -105.0004756 },"totalScore": 4.6,"permanentlyClosed": false,"temporarilyClosed": false,"placeId": "ChIJโฆ","cid": "0x876c78โฆ","url": "https://www.google.com/maps?cid=โฆ","imageUrl": "https://lh5.googleusercontent.com/โฆ","emailsVerification": [],"verifiedEmailCount": 0,"scrapedAt": "2026-07-30T09:14:22.104Z"}
๐ Quick start
Run in Apify Console
- Log in at console.apify.com โ Actors.
- Open Google Maps Email And Phone Number Scraper.
- Enter a business search term (
dentist) and a location (Denver, Colorado). - Set Businesses per search term to
10for a first test. - (Optional) switch on Only keep businesses with an email and Business emails only.
- Click Start and watch each contact row appear live in the log.
- Open the Output tab, switch between the seven views, and export to JSON / CSV / Excel.
Run via API
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchStringsArray": ["dentist"],"locationQuery": "Denver, Colorado","maxCrawledPlacesPerSearch": 25,"onlyWithEmail": true,"excludeFreeEmails": true}'
Fetch the results once the run finishes:
$curl "https://api.apify.com/v2/datasets/YOUR_DATASET_ID/items?token=YOUR_APIFY_TOKEN&format=csv"
Python client
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("YOUR_ACTOR_ID").call(run_input={"searchStringsArray": ["law firm", "accountant"],"locationQuery": "Chicago, Illinois","maxCrawledPlacesPerSearch": 50,"onlyWithEmail": True,"excludeGenericEmails": False,"verifyEmails": True,})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["businessName"], row["primaryEmail"], row["primaryPhone"])
๐ ๏ธ Input parameters reference
๐ Who are you looking for?
| Parameter | Type | Default | Description |
|---|---|---|---|
searchStringsArray | array | โ | Required. Business search terms, one per line |
locationQuery | string | โ | Free-text area, e.g. Denver, Colorado |
maxCrawledPlacesPerSearch | integer | 20 | Businesses looked up per term |
startUrls | array | [] | Google Maps place URLs โ full, ?cid=โฆ, ?place_id=โฆ or short links (bulk supported) |
๐ง Contact rules
| Parameter | Type | Default | Description |
|---|---|---|---|
onlyWithEmail | boolean | false | Keep only businesses with an email |
onlyWithPhone | boolean | false | Keep only businesses with a phone |
excludeFreeEmails | boolean | false | Company-domain addresses only |
excludeGenericEmails | boolean | false | Skip info@, sales@, support@โฆ |
dedupeEmails | boolean | true | Never return the same address twice |
maxEmailsPerPlace | integer | 10 | Cap addresses kept per business |
contactMaxSubpages | integer | 3 | Extra contact/about pages per website |
verifyEmails | boolean | false | Quality-check every address |
skipBigChains | boolean | true | Skip global chain websites |
๐ฏ Business filters ยท ๐ฃ๏ธ Language & region ยท ๐ก Area
| Parameter | Type | Default | Description |
|---|---|---|---|
categoryFilterWords | array | [] | Keep only matching categories |
searchMatching | string | all | all, only_includes, only_exact |
placeMinimumStars | string | โ | two โฆ fourAndHalf |
website | string | allPlaces | allPlaces, withWebsite, withoutWebsite |
skipClosedPlaces | boolean | false | Drop closed businesses |
language / countryCode | string | en / us | Google view used for the search |
city / state / county / postalCode | string | โ | Precise area targeting |
๐ฆ Output ยท ๐ Network ยท โก Speed
| Parameter | Type | Default | Description |
|---|---|---|---|
includeBusinessDetails | boolean | false | Attach the full Maps profile as businessDetails |
proxyConfiguration | object | direct | Optional proxy configuration for the run. |
browserFallback | boolean | true | Give stubborn requests one extra, more thorough attempt. |
maxConcurrency | integer | 5 | Websites opened in parallel (1โ20) |
requestDelaySeconds | number | 0.8 | Pause between requests |
maxRetries | integer | 3 | Attempts per request before it is skipped. |
๐ Integrations & automation
- โฐ Schedules โ refresh a niche list weekly and only push new addresses to your sequencer.
- ๐ Webhooks โ notify your service when a run finishes.
- ๐ Make, Zapier & n8n โ send contacts to HubSpot, Pipedrive, Instantly, Lemlist, Airtable or Sheets.
- ๐๏ธ Direct API access โ dataset items as JSON, JSONL, CSV, XLSX, XML or RSS.
โ Frequently asked questions (FAQ)
How do I find a business email address from Google Maps?
Google Maps never shows emails. This Actor follows each listing's website link, opens the contact and about pages, and extracts the addresses published there โ then picks the best one for you.
What is primaryEmail exactly?
The first address on the business's own domain. If there is none, the first non-free address. If everything is free-mail, the first address found.
Why are there three phone columns?
Confidence. googlePhone is the number Google publishes, websitePhones come from tel: links (very reliable), and otherPhones are numbers matched in page text (useful, occasionally a fax or a partner's number).
How do I get only company emails, not Gmail addresses?
Turn on Business emails only (excludeFreeEmails).
How do I avoid info@ addresses?
Turn on Skip generic inboxes (excludeGenericEmails). Note that many small businesses publish nothing else, so expect fewer rows.
Are emails deduplicated across the whole run?
Yes, when dedupeEmails is on โ useful for franchises and multi-location businesses that share one inbox.
Does verification guarantee delivery?
No verification does. It rules out disposable domains, missing mail servers and rejected recipients; anything it cannot probe is reported as unknown instead of guessed.
Can I also get the full business profile?
Turn on Attach the full business profile and every row gains a businessDetails object with the complete Google Maps record โ categories, description, hours, attributes, coordinates and more.
Do I need a proxy?
No. Leave the proxy input empty and the run handles blocking on its own. Set one only when you want a specific country or route.
Is this the same as your Leads Scraper?
Same collection engine, different shape. Use Google Maps Leads Scraper when you want the full business record; use this one when you want a tight contact table ready for outreach.
๐ ๏ธ Troubleshooting
| Symptom | Fix |
|---|---|
| No rows saved | onlyWithEmail is strict โ switch it off, or raise contactMaxSubpages so contact pages get opened. |
| Few emails found | Set website: withWebsite, raise contactMaxSubpages, and turn off excludeGenericEmails. |
All emails are info@ | That is what most small sites publish. Turning on excludeGenericEmails trades volume for named inboxes. |
Verification returns unknown | Outbound mail ports are blocked in most cloud networks; the address is still valid-looking, it simply could not be probed. |
| Duplicate businesses across terms | They are already deduplicated by place ID โ identical names are usually genuinely different branches. |
| Run feels slow | Lower contactMaxSubpages, raise maxConcurrency, turn off verifyEmails. |
| Fewer businesses than requested | The area may hold fewer matches; broaden the location or add related terms. |
๐ฌ Help, support & custom builds
- ๐ Found a bug or need a new field? Open an issue on the Actor's Issues tab.
- ๐ง Custom scrapers, private integrations, bulk pipelines: hello.dataminds@gmail.com
- โญ Enjoying it? Leave a review โ it genuinely helps.
โ๏ธ Is scraping business contacts legal?
This Actor collects publicly published business contact details โ the same information any visitor can read on a company website. Scraping public data is generally lawful in the EU and the US, but you remain responsible for how you use it:
- Do not collect data behind authentication or paywalls.
- Respect the target site's terms of service and reasonable request rates.
- Handle personal data (a named person's email, for instance) in line with GDPR, CCPA and local law.
- Follow CAN-SPAM, CASL and equivalent rules before sending marketing email, and always offer an opt-out.
See Apify's guide on the legality of web scraping for background. This is not legal advice.
๐ SEO keywords targeted
google maps email scraper ยท google maps phone number scraper ยท business email finder ยท email extractor from google maps ยท b2b contact scraper ยท lead contact enrichment ยท cold email list builder ยท google maps contact details ยท company email finder ยท local business phone numbers ยท email verification tool ยท social media profile scraper ยท sales prospecting data ยท google places contact extractor ยท outreach list builder ยท email finder API ยท business directory scraper ยท phone number extractor ยท maps lead contacts ยท verified business emails