๐Ÿ“ง Google Maps Email And Phone Number Scraper avatar

๐Ÿ“ง Google Maps Email And Phone Number Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
๐Ÿ“ง Google Maps Email And Phone Number Scraper

๐Ÿ“ง 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

Data Minds

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

3

Monthly active users

20 hours ago

Last modified

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.

FieldDescription
๐Ÿช businessName, categoryNameBusiness name and main category as listed on Google Maps.
๐Ÿ“ง primaryEmail, emails, emailCount, hasEmailBest email (a company-domain address is preferred), all kept addresses, their count and a yes/no flag.
๐Ÿ“ž primaryPhone, phoneCount, hasPhoneBest phone number, number of distinct numbers found and a yes/no flag.
๐Ÿ“ฑ googlePhone, googlePhoneUnformattedNumber shown on the Google Maps listing, as displayed and in dialable form.
๐ŸŒ websitePhones, otherPhonesNumbers published on the business website, and less certain numbers found in website text.
๐Ÿ”— linkedIns, instagrams, facebooks, twitters, youtubes, tiktoks, pinterests, discords, socialProfilesCountSocial media links from business websites, by network (twitters holds X/Twitter links), and their total count: a social profile finder for businesses.
๐Ÿข website, domainBusiness website and its domain.
๐Ÿ“ address, city, state, postalCode, countryCode, locationAddress parts and coordinates (lat, lng).
โญ totalScore, permanentlyClosed, temporarilyClosedGoogle rating and closed-business flags.
๐Ÿงช emailsVerification, verifiedEmailCountPer-email checks and the number of deliverable addresses (filled when verifyEmails is on).
๐Ÿ†” placeId, cid, url, imageUrlGoogle Maps identifiers, the Maps link and the main photo.
๐Ÿ”Ž rank, searchString, scrapedAtPosition in the search, the search that found the business and the collection time.
๐Ÿ“ฆ businessDetailsFull 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

  1. Run the Google Maps email scraper for a city and niche: put dentist in searchStringsArray and Denver, Colorado in locationQuery.
  2. Scrape emails from Google Maps and keep only businesses with an email by turning on onlyWithEmail.
  3. Export the contact list and import it into your CRM or sheet.

๐Ÿงน Lead list for cold outreach with business addresses

  1. Use it as a business email finder: turn on excludeFreeEmails and excludeGenericEmails to keep named company-domain mailboxes.
  2. Turn on verifyEmails and open the Email Verification view to see which addresses are deliverable.
  3. Review the list for compliance before any outreach.

๐Ÿ”„ CRM enrichment with emails and phones

  1. Enrich a Google Maps dataset with contacts: paste its place links into startUrls.
  2. Set includeBusinessDetails if you also want the full Google Maps profile.
  3. Match the saved emails, phones and social links to your records by placeId or website.

๐Ÿงญ B2B prospecting for local businesses without a website

  1. Use it as a phone number finder for businesses: set website to withoutWebsite and turn on onlyWithPhone.
  2. Add categoryFilterWords to focus on the right niche.
  3. Call or visit the businesses using the saved phone and address.

How do I use Google Maps Email And Phone Number Scraper?

  1. Open Google Maps Email And Phone Number Scraper on Apify and click Try for free.
  2. Enter one or more business types in Business search terms, for example dentist.
  3. Type an area in Where? (locationQuery) or use City, State and Postal code, or paste Google Maps links in startUrls.
  4. Set Businesses per search term (maxCrawledPlacesPerSearch) and the contact rules, such as onlyWithEmail.
  5. Click Start and watch contact rows appear in the Output tab while the run is going.
  6. 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.

PlanPrice per resultPer 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.

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

FieldTypeRequiredDescriptionDefault / example
searchStringsArrayarray of stringsYesBusiness types to search, one per line, as you would type them into Google Maps.["dentist"]
locationQuerystringNoFree-text area such as Denver, Colorado. Leave blank to search without a location.""
maxCrawledPlacesPerSearchintegerNoBusinesses to look up per term (1 to 5000). Contact details are collected for each one.20
startUrlsarrayNoGoogle Maps place links for specific businesses.[]
onlyWithEmailbooleanNoDrop businesses with no email. Also limits the search to places with a website.false
onlyWithPhonebooleanNoDrop businesses with no phone number.false
excludeFreeEmailsbooleanNoSkip free mailboxes such as gmail.com and keep company-domain addresses.false
excludeGenericEmailsbooleanNoSkip role addresses such as info@, sales@ and support@.false
dedupeEmailsbooleanNoNever return the same address twice in one run.true
maxEmailsPerPlaceintegerNoMaximum emails kept per business (1 to 100).10
contactMaxSubpagesintegerNoContact or about pages checked beyond the homepage (0 to 10).3
verifyEmailsbooleanNoCheck every address: free, role and disposable flags and a deliverability check.false
skipBigChainsbooleanNoSkip the contact lookup for well-known chains on a built-in list. The business row is still saved.true
languagestringNoLanguage for business names and categories: en, es, fr, de, it, pt, nl, pl, tr, ru, ar, hi, id, ja, ko or zh-CN."en"
countryCodestringNoCountry view: us, gb, ca, au, de, fr, es, it, nl, se, pl, br, mx, in, ae, za, sg or jp."us"
citystringNoCity name, for example Seattle.""
statestringNoState, province or region.""
countystringNoCounty or district.""
postalCodestringNoZIP or postal code, the tightest area filter.""
categoryFilterWordsarray of stringsNoKeep a business only if one of these words appears in its categories or description.[]
searchMatchingstringNoName matching for search terms: all, only_includes or only_exact."all"
placeMinimumStarsstringNoMinimum rating: two, twoAndHalf, three, threeAndHalf, four or fourAndHalf; empty for any.""
websitestringNoallPlaces, withWebsite or withoutWebsite."allPlaces"
skipClosedPlacesbooleanNoLeave out permanently or temporarily closed businesses.false
includeBusinessDetailsbooleanNoAdd a businessDetails object with the full Google Maps profile to every row.false
proxyConfigurationobjectNoOptional connection settings. Leave the default unless you need requests from a specific country.{"useApifyProxy": false}
browserFallbackbooleanNoExtra retries for difficult requests before giving up.true
maxConcurrencyintegerNoBusiness websites processed at the same time (1 to 20).5
requestDelaySecondsnumberNoPause between requests, in seconds (0 to 10).0.8
maxRetriesintegerNoRetries 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 onlyWithEmail or onlyWithPhone.
  • With dedupeEmails on, 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 placeMinimumStars set, businesses without a rating are skipped.
  • otherPhones holds less certain numbers found in website text. Verification can return unknown when 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 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.

ActorUse it to
๐Ÿ“ Google Maps Leads ScraperScrape Google Maps into business leads with name, address, phone, website, rating, reviews, hours, categories and socials.
๐Ÿ”Ž Website Lead Intelligence โ€” Find the Right Person, VerifiedTurn 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