๐ง Google Maps Email And Phone Number Scraper
Pricing
from $2.50 / 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 $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Data Minds
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
3
Monthly active users
20 hours ago
Last modified
Categories
Share
Google Maps Email And Phone Number Scraper is an Apify Actor and Google Maps email scraper that finds local businesses on Google Maps and returns the emails, phone numbers and social profiles found for each business in one row. Export the contact list as JSON, CSV or Excel. From $2.50 per 1,000 results on the Gold plan ($5.00 on the Free plan), platform usage billed in addition. ๐ Try it free
What can Google Maps Email And Phone Number Scraper do?
- ๐ง One contact row per business - the best email, the best phone number, every address and number found, plus social profiles.
- ๐ Contact details from business websites - a contact page scraper that returns the emails and phone numbers found for each business, with a chosen number of extra contact or about pages.
- ๐งน Cleaner lists - keep business-domain emails only, skip generic inboxes such as info@, and remove duplicate addresses across the run.
- ๐งช Optional email verification - flags free, role and disposable addresses and checks deliverability, with no third-party key.
- ๐ฏ Prospect filters - category keywords, name matching, minimum rating, website presence, closed places and big chains.
- โก Results as they are ready - each contact row is saved to the dataset as soon as it is built.
- ๐ Export and automation - download JSON, CSV, Excel, XML or HTML, or use the API, schedules and webhooks.
Use it as a Google Maps email extractor and Google Maps email finder for local lead generation. Need only numbers? It also works as a Google Maps phone number extractor. Each search gives you a Google Maps lead list, with Google Maps contact details such as emails, phones and social links in the same row.
What data can I extract from Google Maps?
The Actor returns public business data from Google Maps and the websites those listings link to.
| Field | Description |
|---|---|
๐ช businessName, categoryName | Business name and main category as listed on Google Maps. |
๐ง primaryEmail, emails, emailCount, hasEmail | Best email (a company-domain address is preferred), all kept addresses, their count and a yes/no flag. |
๐ primaryPhone, phoneCount, hasPhone | Best phone number, number of distinct numbers found and a yes/no flag. |
๐ฑ googlePhone, googlePhoneUnformatted | Number shown on the Google Maps listing, as displayed and in dialable form. |
๐ websitePhones, otherPhones | Numbers published on the business website, and less certain numbers found in website text. |
๐ linkedIns, instagrams, facebooks, twitters, youtubes, tiktoks, pinterests, discords, socialProfilesCount | Social media links from business websites, by network (twitters holds X/Twitter links), and their total count: a social profile finder for businesses. |
๐ข website, domain | Business website and its domain. |
๐ address, city, state, postalCode, countryCode, location | Address parts and coordinates (lat, lng). |
โญ totalScore, permanentlyClosed, temporarilyClosed | Google rating and closed-business flags. |
๐งช emailsVerification, verifiedEmailCount | Per-email checks and the number of deliverable addresses (filled when verifyEmails is on). |
๐ placeId, cid, url, imageUrl | Google Maps identifiers, the Maps link and the main photo. |
๐ rank, searchString, scrapedAt | Position in the search, the search that found the business and the collection time. |
๐ฆ businessDetails | Full Google Maps profile (categories, description, hours, attributes, coordinates and more); added only when includeBusinessDetails is on. |
Emails come from business websites, so a business without a website usually returns no email, only the phone number listed on Google Maps.
What can you do with the data from Google Maps?
๐ฏ Google Maps lead generation for agencies and local sales
- Run the Google Maps email scraper for a city and niche: put
dentistinsearchStringsArrayandDenver, ColoradoinlocationQuery. - Scrape emails from Google Maps and keep only businesses with an email by turning on
onlyWithEmail. - Export the contact list and import it into your CRM or sheet.
๐งน Lead list for cold outreach with business addresses
- Use it as a business email finder: turn on
excludeFreeEmailsandexcludeGenericEmailsto keep named company-domain mailboxes. - Turn on
verifyEmailsand open the Email Verification view to see which addresses are deliverable. - Review the list for compliance before any outreach.
๐ CRM enrichment with emails and phones
- Enrich a Google Maps dataset with contacts: paste its place links into
startUrls. - Set
includeBusinessDetailsif you also want the full Google Maps profile. - Match the saved emails, phones and social links to your records by
placeIdorwebsite.
๐งญ B2B prospecting for local businesses without a website
- Use it as a phone number finder for businesses: set
websitetowithoutWebsiteand turn ononlyWithPhone. - Add
categoryFilterWordsto focus on the right niche. - Call or visit the businesses using the saved phone and address.
How do I use Google Maps Email And Phone Number Scraper?
- Open Google Maps Email And Phone Number Scraper on Apify and click Try for free.
- Enter one or more business types in Business search terms, for example
dentist. - Type an area in Where? (
locationQuery) or use City, State and Postal code, or paste Google Maps links instartUrls. - Set Businesses per search term (
maxCrawledPlacesPerSearch) and the contact rules, such asonlyWithEmail. - Click Start and watch contact rows appear in the Output tab while the run is going.
- Export from the Dataset tab as JSON, CSV or Excel, or fetch the results through the Apify API.
How much does it cost to scrape Google Maps?
Google Maps Email And Phone Number Scraper uses pay-per-event pricing: you pay for each contact row saved to the dataset, and Apify platform usage is billed in addition. The price per result depends on your Apify plan.
| Plan | Price per result | Per 1,000 results |
|---|---|---|
| ๐ Free | $0.005 | $5.00 |
| ๐ฅ Bronze | $0.00425 | $4.25 |
| ๐ฅ Silver | $0.0035 | $3.50 |
| ๐ฅ Gold, Platinum and Diamond | $0.0025 | $2.50 |
Compare Google Maps scraper pricing per 1,000 results in the last column.
Each run also has a start event of $0.00005 per GB of memory, minimum one. The default memory is 1,024 MB (1 GB), so one start costs 1 event = $0.00005.
Example: 100 results on the Free plan cost 100 ร $0.005 = $0.50, plus the $0.00005 start event and platform usage.
Only saved rows are charged. Businesses dropped by your filters, or by onlyWithEmail and onlyWithPhone, are not charged. Set a maximum cost per run in the run options: the Actor stops when it is reached and keeps the rows already saved.
Is scraping Google Maps free?
Google Maps Email And Phone Number Scraper has no rental fee. You pay per saved result, starting at $0.005 per result on the Free plan, plus a $0.00005 start event and Apify platform usage. Lower prices apply on higher plans, down to $0.0025 per result on Gold, Platinum and Diamond.
How much does Google Maps Email And Phone Number Scraper cost per 1,000 results?
One thousand results cost $5.00 on the Free plan, $4.25 on Bronze, $3.50 on Silver and $2.50 on Gold, Platinum and Diamond. Each run adds a $0.00005 start event at the default 1 GB of memory, and Apify platform usage is billed in addition to the result price.
Input
Describe who you are looking for, and where, with search terms and a location, or paste Google Maps place links. Only searchStringsArray is required. The Actor reads every field below; the defaults suit most runs.
Search by business type and area
Use searchStringsArray with locationQuery (or city, state, county, postalCode for a precise area). Each term is searched on its own, and maxCrawledPlacesPerSearch limits the businesses collected per term. A free-text locationQuery takes priority over the separate area fields.
Look up specific Google Maps links
Paste place links into startUrls to get contacts for particular businesses. Links and search terms can be combined in the same run. A link names one business, so only that business is collected.
Input fields
| Field | Type | Required | Description | Default / example |
|---|---|---|---|---|
searchStringsArray | array of strings | Yes | Business types to search, one per line, as you would type them into Google Maps. | ["dentist"] |
locationQuery | string | No | Free-text area such as Denver, Colorado. Leave blank to search without a location. | "" |
maxCrawledPlacesPerSearch | integer | No | Businesses to look up per term (1 to 5000). Contact details are collected for each one. | 20 |
startUrls | array | No | Google Maps place links for specific businesses. | [] |
onlyWithEmail | boolean | No | Drop businesses with no email. Also limits the search to places with a website. | false |
onlyWithPhone | boolean | No | Drop businesses with no phone number. | false |
excludeFreeEmails | boolean | No | Skip free mailboxes such as gmail.com and keep company-domain addresses. | false |
excludeGenericEmails | boolean | No | Skip role addresses such as info@, sales@ and support@. | false |
dedupeEmails | boolean | No | Never return the same address twice in one run. | true |
maxEmailsPerPlace | integer | No | Maximum emails kept per business (1 to 100). | 10 |
contactMaxSubpages | integer | No | Contact or about pages checked beyond the homepage (0 to 10). | 3 |
verifyEmails | boolean | No | Check every address: free, role and disposable flags and a deliverability check. | false |
skipBigChains | boolean | No | Skip the contact lookup for well-known chains on a built-in list. The business row is still saved. | true |
language | string | No | Language for business names and categories: en, es, fr, de, it, pt, nl, pl, tr, ru, ar, hi, id, ja, ko or zh-CN. | "en" |
countryCode | string | No | Country view: us, gb, ca, au, de, fr, es, it, nl, se, pl, br, mx, in, ae, za, sg or jp. | "us" |
city | string | No | City name, for example Seattle. | "" |
state | string | No | State, province or region. | "" |
county | string | No | County or district. | "" |
postalCode | string | No | ZIP or postal code, the tightest area filter. | "" |
categoryFilterWords | array of strings | No | Keep a business only if one of these words appears in its categories or description. | [] |
searchMatching | string | No | Name matching for search terms: all, only_includes or only_exact. | "all" |
placeMinimumStars | string | No | Minimum rating: two, twoAndHalf, three, threeAndHalf, four or fourAndHalf; empty for any. | "" |
website | string | No | allPlaces, withWebsite or withoutWebsite. | "allPlaces" |
skipClosedPlaces | boolean | No | Leave out permanently or temporarily closed businesses. | false |
includeBusinessDetails | boolean | No | Add a businessDetails object with the full Google Maps profile to every row. | false |
proxyConfiguration | object | No | Optional connection settings. Leave the default unless you need requests from a specific country. | {"useApifyProxy": false} |
browserFallback | boolean | No | Extra retries for difficult requests before giving up. | true |
maxConcurrency | integer | No | Business websites processed at the same time (1 to 20). | 5 |
requestDelaySeconds | number | No | Pause between requests, in seconds (0 to 10). | 0.8 |
maxRetries | integer | No | Retries per request before trying another way (1 to 10). | 3 |
Example input:
{"searchStringsArray": ["dentist"],"locationQuery": "Denver, Colorado","maxCrawledPlacesPerSearch": 20,"onlyWithEmail": true,"excludeGenericEmails": false,"contactMaxSubpages": 3,"verifyEmails": true,"language": "en","countryCode": "us"}
Output
Each business becomes one row in the Apify dataset, saved while the run is going. Open the Output tab or the Dataset tab and pick a table view: Contact Overview, Emails, Phone Numbers, Social Profiles, Email Verification, Business & Location, or Source & IDs. Export as JSON, CSV, Excel, XML or HTML from the console or the API.
Contact row (trimmed, fake values):
{"rank": 1,"searchString": "dentist","businessName": "Example Dental Studio","categoryName": "Dentist","website": "https://www.example.com/","domain": "example.com","primaryEmail": "hello@example.com","emails": ["hello@example.com", "appointments@example.com"],"emailCount": 2,"hasEmail": true,"primaryPhone": "+13035550100","googlePhone": "(303) 555-0100","googlePhoneUnformatted": "+13035550100","websitePhones": ["+13035550100"],"otherPhones": ["303-555-0142"],"phoneCount": 1,"hasPhone": true,"socialProfilesCount": 3,"linkedIns": ["https://www.linkedin.com/company/example-dental-studio"],"instagrams": ["https://www.instagram.com/example_dental_studio"],"facebooks": ["https://www.facebook.com/exampledentalstudio"],"twitters": [],"youtubes": [],"tiktoks": [],"pinterests": [],"discords": [],"address": "123 Example Street, Denver, CO 80202","city": "Denver","state": "Colorado","postalCode": "80202","countryCode": "US","location": {"lat": 39.7392, "lng": -104.9903},"totalScore": 4.8,"permanentlyClosed": false,"temporarilyClosed": false,"placeId": "ChIJexampleplaceid000000","cid": "0x0000000000000000:0x0000000000000000","url": "https://www.google.com/maps?cid=1000000000000000000","imageUrl": "https://example.com/photo.jpg","emailsVerification": [{"email": "hello@example.com", "free": false, "role": true, "error": "", "quality": "good", "result": "ok", "subResult": "accepted_email"},{"email": "appointments@example.com", "free": false, "role": false, "error": "", "quality": "good", "result": "ok", "subResult": "accepted_email"}],"verifiedEmailCount": 2,"scrapedAt": "2026-10-17T09:00:00+00:00"}
Run summary (trimmed), saved to the key-value store under run-summary:
{"source": "google-maps","scrapedAt": "2026-10-17T09:05:00+00:00","contactRows": 1,"searches": 1,"businessesFound": 20,"skippedByFilters": 0,"skippedWithoutContact": 19,"emailsCollected": 2,"rowsWithEmail": 1,"rowsWithPhone": 1,"socialProfiles": 3,"chargedContactEvents": 1,"stoppedByChargeLimit": false,"durationSeconds": 42.5,"perSearch": [{"search": "dentist Denver, Colorado", "found": 20, "kept": 20}]}
Notes and limitations
- Emails and website phone numbers come from the business website; a business without a website usually has no email.
- Rows without an email are still saved and charged unless you turn on
onlyWithEmailoronlyWithPhone. - With
dedupeEmailson, an address shared by several businesses stays in the first row only, so later rows may show no email. - Filters run after the search results are collected, so you can get fewer rows than
maxCrawledPlacesPerSearch. A business already collected by an earlier search in the same run is skipped. - One search term stops after a fixed number of result pages. For large areas, split the job by city or postal code or use several terms.
- With
placeMinimumStarsset, businesses without a rating are skipped. otherPhonesholds less certain numbers found in website text. Verification can returnunknownwhen a clear answer is not available.- Results reflect what Google Maps and each website show at the time of the run and can differ from what you see in a browser.
FAQ
Is it legal to use a Google Maps email scraper?
Is it legal to scrape Google Maps emails? The Actor collects publicly available business information, but legality depends on your country and your use. Check cold email GDPR and CAN-SPAM rules before emailing anyone. This is not legal advice; read Is web scraping legal? for background.
Do I need a Google account, cookies or an API key?
No. You can scrape Google Maps without an API key, Google account or cookies: provide search terms, an area or Google Maps links. Email verification also works without a third-party key. You only need an Apify account to run the Actor and pay for results.
How do I extract emails and phone numbers from Google Maps?
To get a business email from Google Maps, add a business type and an area, set how many businesses you want and click Start. As a Google Maps email and phone extractor, it returns, for each listing, the emails, phone numbers and social links in one row. Turn on onlyWithEmail to keep only businesses with an email.
How many results can I get per run, and how fast?
Set Businesses per search term from 1 to 5,000; the default is 20. Each search term is also limited by how many result pages Google Maps returns, so split large areas into several searches. Speed depends on how quickly the business websites respond, and you can raise maxConcurrency up to 20.
Can I verify scraped emails?
Yes. Turn on verifyEmails and each address gets free, role and disposable flags and a deliverability check, without any external key or extra account. Run it on a small batch first to see how your lists behave. The emailsVerification field shows the result per address, and verifiedEmailCount counts the addresses rated good.
Can I export Google Maps contacts to CSV or Excel and schedule runs?
Yes. After a run, download the contact list from the Dataset or Output tab as CSV, Excel, JSON, XML or HTML. You can also schedule Google Maps scraping on the Actor page, trigger webhooks when a run finishes, and connect results to tools such as Make, Zapier or n8n.
Can I use this Google Maps email scraper with the Apify API or MCP?
Yes. Use it like a Google Maps data API: start runs and read the dataset through the Apify API or an MCP server, as described in the Apify API documentation. The Actor page shows ready-made code for your language, so this README does not repeat it.
Why am I getting fewer results or emails than expected?
Common causes are filters such as onlyWithEmail, website or placeMinimumStars, businesses without a website, and dedupeEmails removing repeated addresses. Try a broader search term, another area, a higher contactMaxSubpages value or a lower rating filter, then run the Actor again and compare the results.
How is this Google Maps email scraper different from a general Google Maps scraper?
It is contact-first: one row per business with emails, phones and social profiles, plus verification and no API key. For ratings, reviews and hours, use the Google Maps Leads Scraper under Related Actors. For a Google Maps data extractor or Google Maps places scraper view of each listing, turn on includeBusinessDetails.
Google Maps Email And Phone Number Scraper not working?
Open the Issues tab on the Actor page and describe what you entered and what you expected, so the problem can be reproduced. First check that your search term and area are valid, your filters are not too strict, and the run log shows the number of businesses found.
Related Actors
| Actor | Use it to |
|---|---|
| ๐ Google Maps Leads Scraper | Scrape Google Maps into business leads with name, address, phone, website, rating, reviews, hours, categories and socials. |
| ๐ Website Lead Intelligence โ Find the Right Person, Verified | Turn company websites into a scored outreach list with verified emails and named decision-makers. |
Support and disclaimer
Found a bug or need a feature? Open an issue in the Issues tab. For custom solutions, integrations or questions, contact hello.dataminds@gmail.com. Google Maps Email And Phone Number Scraper is independent and not affiliated with Google; Google and Google Maps are trademarks of their owners. It collects publicly available data, and you are responsible for complying with applicable laws and the terms of the sites you use.
Last updated: 2026-10-17