Google Maps Email Extractor - Emails, Phones & Social Links
Pricing
from $8.00 / 1,000 results
Google Maps Email Extractor - Emails, Phones & Social Links
Returns Google Maps places with the emails, phone numbers and social profiles their websites publish: one row per business with primary email, every email with its source, phones, address, rating and place id. Thousands of places per search, kept to the city boundary. No login, no API key.
Pricing
from $8.00 / 1,000 results
Rating
0.0
(0)
Developer
Ben
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
📧 Google Maps Email Extractor: Emails, Phones and Social Links
Returns Google Maps businesses with the contact details their own websites publish. For every place the Actor reads the website's home page and its contact, imprint and about pages and adds the emails, phone numbers and social profiles it finds to the place's Maps record: name, address, rating, reviews, category, coordinates and place id. One row per business, no Google login, no API key.
Price: until October 18, 2026 $10.00 per 1,000 places on the Apify Free plan; from October 19 $3.00 per 1,000 ($2.40 from Gold up). That is the whole price: emails, phones and social links cost nothing extra, and with requireEmail a place without an email is not charged at all. Export to JSON, CSV or Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.
🔎 What is the Google Maps Email Extractor?
Google Maps lists a business's phone and website, never its email. The email is on the website, usually on a contact or imprint page. This Actor does both steps: it finds the places on Google Maps without a browser and then reads up to ten pages of each place's website side by side.
In a test of 100 dentists in Austin, TX, 45 websites published an email, all 100 rows had a phone number and 85 had social profiles; the run took 60 seconds. In Germany, where an imprint with an email is required by law, 40 of 44 dentists in Leipzig had one.
It reads past the roughly 200 places one Google list holds by searching the map of your location in tiles, and keeps to the boundary of the city, district or state you name.
What data does it extract?
- Emails: the primary email, and every email found with the page it stood on (
website,contact_page,impressum) and a confidence value - Phones: the number on Google Maps and the numbers on the website, in international form, each number once
- Social profiles: Facebook, Instagram, LinkedIn, X, YouTube, TikTok and Xing profiles linked from the website
- Business: name, category and all categories, description, price range, website and domain
- Address: full address, street, neighborhood, city, state, postal code, country code, coordinates
- Reputation: rating, number of reviews, lead score from 0 to 100
- More: opening hours, "About" attributes, place id, CID, Google Maps link
What users of Google Maps email scrapers report, and what this Actor does
The issue pages of the most used Google Maps email Actors on Apify were read on October 4, 2026:
| Reported there | Here |
|---|---|
| "No emails!", "consumed all my credits for only 2 emails" | requireEmail saves and charges only places whose website publishes an email. The share of websites with an email is stated above, not promised to be 100% |
| "Unexpected enrichment charges", "billing query" | One price per row. There is no separate charge for an email, a phone number or a filter |
| "Dup emails and random results" | Addresses of web agencies, chambers, font and theme authors are dropped. An address on another domain only counts when the site links it or it sits at a mailbox provider such as Gmail. Nothing is guessed |
| "Results not in the location I entered" | Places are kept to the boundary OpenStreetMap has for your location |
| "How can I exclude previous scrapings?" | onlyNew with a monitor name, or excludePlaceIds |
| "The scraper kept running", "max items limit ignored" | A limit is exact, a place is saved once, and a run stops at its maximum charge |
⬇️ Input
| Field | Type | Default | What it does |
|---|---|---|---|
query | string | What to search for: a kind of business, a brand or a business name | |
location | string | City, district, state or country to search in | |
queries | array | Several search queries for one run | |
locations | array | Several locations; each query is searched in each of them | |
maxResults | integer | 10 | Places to save per search, up to 5,000 |
requireEmail | boolean | false | Save and charge only places with a published email |
skipClosed | boolean | true | Leave out permanently closed places |
mode | string | search | place_urls reads only the place links, websites only the websites |
placeUrls | array | Google Maps place links, place ids or feature ids | |
websites | array | Websites to read contact details from, without Google Maps | |
minRating | number | Only places with at least this rating | |
minReviews | integer | Only places with at least this many reviews | |
language | string | en | Language of categories and opening hours |
countryCode | string | us | Country Google is told the visitor is in |
onlyNew | boolean | false | Skip every place an earlier run with the same monitor name saved |
monitorId | string | Name of that memory | |
excludePlaceIds | array | Places to skip, as place ids, CIDs or feature ids | |
debugMode | boolean | false | Logs every Google Maps request |
Example input
Leads with an email only:
{"query": "dentist","location": "Austin, TX","requireEmail": true,"maxResults": 200}
Several trades in several cities:
{"queries": ["Steuerberater", "Rechtsanwalt"],"locations": ["Leipzig", "Dresden"],"language": "de","countryCode": "de","maxResults": 300}
Places you already know, by link or id:
{"mode": "place_urls","placeUrls": ["ChIJE5T3YoqAhYARtxUohSbFVDc", "0x808580f03b32e62d:0x62dc2642b0573fea"]}
Websites without Google Maps:
{"websites": ["https://www.wayfaretavern.com", "guhr-steuerberatung.de"]}
⬆️ Output
One row per place (from a run of October 4, 2026; opening hours and attributes are left out here):
{"name": "Wayfare Tavern","website": "https://www.wayfaretavern.com/","domain": "wayfaretavern.com","phone": "+14157729060","phones": ["+14157729060"],"website_phones": ["+14157729060"],"address": "201 Pine St, San Francisco, CA 94111","rating": 4.5,"review_count": 3099,"categories": ["American restaurant", "Bar"],"primary_email": "contact@wayfaretavern.com","email_confidence": 90,"email_source": "website","email_verified": null,"emails": [{"email": "contact@wayfaretavern.com", "confidence": 90, "source": "website", "verified": null}],"has_email": true,"has_phone": true,"socials": {"facebook": "https://www.facebook.com/WayfareTavern/","instagram": "https://www.instagram.com/wayfaretavern/"},"is_closed": false,"closed_status": null,"place_id": "ChIJE5T3YoqAhYARtxUohSbFVDc","lead_score": 100,"google_maps_url": "https://www.google.com/maps/place/Wayfare+Tavern/data=!4m7!3m6!1s0x8085808a62f79413:0x3754c526852815b7!8m2!3d37.7921097!4d-122.3999688!16s%2Fg%2F1tzgpfsc!19sChIJE5T3YoqAhYARtxUohSbFVDc","search_query": "ChIJE5T3YoqAhYARtxUohSbFVDc","search_location": null,"cid": "3987028339363157431","feature_id": "0x8085808a62f79413:0x3754c526852815b7","category": "American restaurant","description": "Popular upscale eatery serving Tyler Florence's American fare in a British pub-style setting.","latitude": 37.7921097,"longitude": -122.3999688,"neighborhood": "Financial District","street": "201 Pine St","city": "San Francisco","state": "California","postal_code": "94111","country_code": "US","phone_international": "+1 415-772-9060","timezone": "America/Los_Angeles","photo_count": 3927,"query": "ChIJE5T3YoqAhYARtxUohSbFVDc","rank": null,"scraped_at": "2026-10-04T17:42:53.179293+00:00"}
email_confidence is 95 for an address on the site's own domain that stands in the imprint, 90 for one elsewhere on the site, 75 for an address on another domain whose mail server exists, 55 otherwise. email_verified is always empty: the Actor does not send test mails. In websites mode a row has the contact fields and no Maps record.
💰 What a run costs
| Apify plan | Per 1,000 places until October 18, 2026 | From October 19, 2026 |
|---|---|---|
| Free | $10.00 | $3.00 |
| Bronze | $9.00 | $2.80 |
| Silver | $8.50 | $2.60 |
| Gold | $8.00 | $2.40 |
| Platinum | $7.50 | $2.40 |
| Diamond | $7.00 | $2.40 |
Apify's standard start event ($0.00005 per GB of memory) is the only other charge. The separate charges for a found email, a found phone number and an email check that this Actor had until October 4, 2026 are gone. Not charged: a place without an email when requireEmail is on, a place a filter or an exclusion drops, a place outside the boundary, and a place already delivered in only-new mode.
⏱️ Measured on Apify (October 4, 2026)
| Run | Places | With email | Time |
|---|---|---|---|
| Sample input: tax advisers in Berlin | 10 | 8 | 20 s |
| Dentists in Austin, TX | 100 | 45 | 60 s |
| Dentists in Leipzig, only those with an email (44 places read) | 40 | 40 | 33 s |
| Two places by id | 2 | 1 | 7 s |
| Three websites without Google Maps | 3 | 3 | 7 s |
A run of 120 dentists that was aborted after 25 seconds and resurrected ended with 120 rows, none of them twice. All at 2 GB of memory, the default. The website step needs processor time: the same 100 dentists took 136 seconds at 512 MB and gave 36 emails instead of 45, because slower page reads ran into their time limit.
🔔 Only new places
Turn on onlyNew and give the run a monitorId. Every place a run saves is remembered under that name, and later runs skip it. Use it to read a large area in several runs, or on a schedule to get the businesses that appear after a first complete run. The memory is a key-value store named google-maps-email-monitor in your own account.
🤖 For AI agents
Smallest useful call:
{"query": "plumber", "location": "Denver, CO", "maxResults": 20, "requireEmail": true}
Each row is one business with name, primary_email, emails, phone, website, address, rating, review_count, category and socials. queries, locations, placeUrls and websites take several entries. A search without results returns no rows and the status message says why. No credentials are needed.
💡 Use cases
- 📇 Outreach lists: every business of a kind in a city with a published email and phone.
- 🧭 Local sales: prospects by trade, rating and review count, with the social profiles to check before a call.
- 🗂️ CRM enrichment: emails and social links for places or websites you already have.
- 🔁 Fresh leads on a schedule: only the businesses earlier runs did not deliver.
⚠️ Limits, stated plainly
- Not every business publishes an email. In the tests here it was 45 of 100 dentists in Austin and 40 of 44 in Leipzig. Many US sites offer a contact form only.
requireEmailkeeps those out of your dataset and your bill. - Only what the website shows. No emails from Facebook pages, no personal addresses of employees, no guessed addresses such as info@. A business without a website has its Maps phone and no email.
- Up to ten pages per website, each given ten seconds. An address that stands on another page, appears only after a click or is drawn as an image is not found.
- No delivery check. The Actor looks up whether the email's domain has a mail server, which decides the confidence value; it does not test the mailbox.
- Phone numbers without a country code are completed with the country of the place. For a website outside Google Maps the country is taken from the website's ending; with
.comthe number stays as written. - Google decides which places a search finds, and the boundary is OpenStreetMap's, simplified to about 100 metres. See the Google Maps Scraper for how places are read.
❓ FAQ
Do I need a Google account or API key? No.
How many places come with an email? It depends on the trade and the country: about half of US dentists in the test, nine in ten German ones. Turn on requireEmail to pay only for places with one.
Why is the email missing although the website has one? It may stand on a page the Actor does not read, behind a contact form, in an image, or the site turned the request away. The website's phone numbers and social links are still returned when they were found.
Does it guess addresses like info@domain? No. Earlier versions added such guesses; this one returns only addresses it found.
What changed for users of the earlier version? The 25 fields it returned are still there under the same names and in the same order, followed by the place's Maps record. A run is no longer limited to 50 places. The charges for found emails, found phones and email checks are gone; enableSmtpVerification is ignored, because Apify's servers cannot reach mail servers. Phone numbers of places outside Germany now get their own country's code.
Can I use it on a list of websites? Yes, with websites. Each website is one row.
How do I call it from code? With the Apify API or the Python and JavaScript clients; every run returns a dataset you can fetch as JSON or CSV. It also works as a tool through Apify's MCP server.
Is it legal? The Actor reads business contact details that the businesses publish themselves. An email address of a sole trader or a named employee is personal data: GDPR, CCPA and similar rules apply to how you store and use it, and CAN-SPAM, the German UWG and other local rules decide whether you may write to it without consent.
🔗 You might also like
- Google Maps Scraper: the places alone, at half the price, with full details and reviews
- Website Contact Extractor: contact details for long lists of websites
- Facebook Pages Scraper: contact details of business pages
City and region boundaries © OpenStreetMap contributors.
Keywords: google maps email extractor, google maps email scraper, google maps leads with emails, business emails from google maps, local business email list, google maps contact scraper, lead generation, b2b leads, email finder, phone numbers from google maps, social media links, impressum email, google places emails, sales prospecting, no api key