Google Maps Email Extractor
Pricing
from $1.50 / 1,000 business leads
Google Maps Email Extractor
Scrapes Google Maps places and optionally enriches each business with website contact emails and social links.
Pricing
from $1.50 / 1,000 business leads
Rating
0.0
(0)
Developer
Camilo Aguilar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Google Maps Email Extractor
By: Camilo Aguilar, Apify
Published: June 2026 | Last Updated: July 8, 2026
Apify actor for Google Maps lead generation, local business scraping, website email extraction, and contact enrichment in one run.
What is Google Maps Email Extractor?
Google Maps Email Extractor helps you build local business lead lists from Google Maps searches or Google Maps place URLs. It finds businesses, extracts core Google Maps fields, visits available business websites, and returns public emails, social profiles, phone numbers, ratings, review counts, addresses, and source URLs in one clean dataset.
Use it when you need a Google Maps scraper and email extractor together, without exporting websites from one tool and running a separate contact crawler afterward.
What can you use it for?
By Industry:
- Legal: Build attorney networks, law firm directories, and lead lists for legal tech companies
- Healthcare: Find dentists, clinics, specialists, and medical practitioners by location and rating
- Real Estate: Map agents, brokers, and property management companies in target markets
- Services: Identify plumbers, electricians, HVAC contractors, and service businesses by availability and reviews
- Recruiting: Source employers, HR teams, and hiring managers in specific regions and industries
- Agencies & Outbound: Build niche B2B lead lists for cold outreach, partnerships, and prospecting
By Use Case:
- Build local lead lists for agencies, outbound sales, SEO, recruiting, real estate, and B2B prospecting
- Find businesses by keyword and location, such as
dentists in Toronto,law firms in Miami, orcoffee shops in Austin - Enrich existing Google Maps URLs with websites, emails, social links, phone numbers, ratings, and addresses
- Filter for businesses with a minimum rating, review count, website, category, or email address
- Export Google Maps leads to CSV, JSON, Excel, Google Sheets, CRMs, Clay, Make, Zapier, or your own API workflow
Why use this actor?
Many lead generation workflows require a Google Maps scraper, a website crawler, and an email extractor. This actor combines those steps:
- Google Maps business discovery from search terms, locations, or start URLs.
- Website and contact-page crawling for public business emails.
- Social profile extraction from business websites.
- Stable output fields for downstream filtering and CRM import.
- Partial results saved when a website fails or no email is found.
- Email confidence, email status, and source URLs so each contact is easier to audit.
Customer Success
"We used Google Maps Email Extractor to build a list of 2,000+ qualified dental clinics in Canada in a single day. The email confidence scores helped us filter to high-confidence contacts. We saved weeks of manual research and $3K+ on alternative tools."
— Marketing Director, Agency Partner
Real-World Results
Dental Practice Network (North America)
- 📊 Discovered 3,500+ unique dental practices
- 📧 Email addresses found for 2,100+ practices (60% discovery rate)
- ⏱️ Completed in 3 hours vs. 2+ weeks of manual research
- 💰 Cost: $87.50 vs. $2,500+ for traditional lead list brokers
Legal Tech Company (Market Research)
- 📊 Built directory of 8,000+ law firms across 50 US cities
- 📧 40% higher email discovery rate using confidence filtering
- 🔗 Included partner referral links for 70% of results
- ⚡ Processed in automated daily updates for market monitoring
B2B Sales Agency (Lead Generation)
- 📊 Generated 5,000+ qualified leads per month from target verticals
- 📧 Reduced qualification time by 45% using email status fields
- 🎯 Improved conversion rate by targeting high-review-count businesses
- 💼 Built repeatable workflow integrated with Zapier → Salesforce
Ready-made task setups
Each setup below is a complete input configuration for a common Google Maps lead generation use case, and each is available as a pre-saved example task you can open and run in one click. Alternatively, paste the JSON into the actor's Input tab (JSON view), adjust the location to your target market, then click Save as a new task in Apify Console. Saved tasks are reusable, shareable, and can run on a schedule or through the Apify API.
Dentist and medical practice email leads
▶ Run this example task on Apify
Build a verified dentist email list. DNS verification and requireEmail keep the dataset limited to contact-ready leads.
{"searchTerms": ["dentists", "dental clinics", "orthodontists"],"location": "Toronto, ON","maxItems": 200,"contactExtraction": "emails","emailVerification": "dns","requireEmail": true}
Restaurant and hospitality email list
▶ Run this example task on Apify
Collect restaurant and cafe leads with active websites for hospitality marketing, POS sales, or delivery platform outreach.
{"searchTerms": ["restaurants", "cafes", "coffee shops", "bakeries"],"location": "Chicago, IL","maxItems": 200,"contactExtraction": "emails","emailVerification": "syntax","requireWebsite": true}
Home services contractor leads (HVAC, plumbers, roofers)
▶ Run this example task on Apify
Find HVAC contractors, plumbers, electricians, and roofing companies with active websites — a common niche for local SEO agencies and lead resellers.
{"searchTerms": ["HVAC contractors", "plumbers", "roofing companies", "electricians"],"location": "Dallas, TX","maxItems": 200,"contactExtraction": "emails","emailVerification": "syntax","requireWebsite": true}
Real estate agent and broker prospecting
▶ Run this example task on Apify
Map real estate agents, brokerages, and property managers in a target market for recruiting, proptech sales, or partnership outreach.
{"searchTerms": ["real estate agents", "real estate brokers", "property management companies"],"location": "Miami, FL","maxItems": 300,"contactExtraction": "emails","emailVerification": "syntax"}
Low-cost Maps-only market research (no emails)
▶ Run this example task on Apify
Run a cheap Maps-only discovery pass to size a market before paying for email enrichment. Rerun qualified niches later with contactExtraction: "emails".
{"searchTerms": ["coffee shops", "specialty coffee", "espresso bars", "cafes"],"location": "Austin, TX","maxItems": 100,"contactExtraction": "none"}
Start from Google Maps URLs instead of search terms
Any setup above also works with startUrls in place of searchTerms and location:
{"startUrls": ["https://www.google.com/maps/search/law+firms+miami","https://www.google.com/maps/place/Example+Business/"],"maxItems": 100,"contactExtraction": "emails"}
Scheduling and automation
Save any setup as a task, then attach an Apify Schedule to refresh your lead list daily, weekly, or monthly — for example, a weekly run per city for territory-based prospecting. Tasks can also be triggered from the Apify API, Make, Zapier, or n8n, so new Google Maps leads flow into your CRM or Google Sheet automatically.
Contact extraction modes
| Mode | What it does | Best for |
|---|---|---|
none | Extracts Google Maps business fields only. | Low-cost market research and place discovery. |
basic | Extracts Maps fields, websites, domains, and social profiles. | Lead lists where email is not required. |
emails | Extracts Maps fields, visits websites and contact pages, and returns public emails with source and confidence fields. | Prospecting, outreach, CRM enrichment, and agency lead generation. |
Input options
| Input | Default | Description |
|---|---|---|
searchTerms | ["restaurants"] | Google Maps search terms. |
location | Toronto, ON | Location appended to each search term. |
startUrls | none | Google Maps search URLs or place URLs. |
maxItems | 100 | Maximum unique business records to save. |
maxResultsPerSearch | 100 | Maximum results to collect per search before deduplication. |
contactExtraction | emails | none, basic, or emails. |
emailVerification | syntax | none, syntax, or best-effort dns. |
minReviewCount | none | Skip businesses with fewer reviews, when Google exposes the review count. |
minRating | none | Skip businesses with a lower rating, when Google exposes the rating. |
categories | none | Only save matching categories. |
excludeCategories | none | Skip matching categories. |
inferCategories | true | Uses conservative category filtering for common searches such as law firms, dentists, and coffee shops. |
requireEmail | false | Save only businesses where at least one email is found. |
requireWebsite | false | Save only businesses with a website. |
scrapeDetailPages | true | Fetch Google Maps detail pages before contact enrichment. |
requestRetries | 2 | Retries per request. |
requestTimeoutSecs | 30 | Request timeout in seconds. |
requestDelayMillis | 0 | Optional delay between search pages. |
proxyUrl | none | Explicit proxy URL. |
proxyConfiguration | none | Apify proxy configuration input. |
Output
Each saved dataset item is one Google Maps business lead. The actor keeps a stable schema so CSV, JSON, Excel, and API exports are easier to process.
{"title": "Example Dental","category_name": "Dental clinic","address": "123 King St, Toronto, ON","latitude": 43.6532,"longitude": -79.3832,"total_score": 4.8,"reviews_count": 123,"phone": "(416) 555-0100","website": "https://exampledental.com/","domain": "exampledental.com","emails": ["info@exampledental.com"],"primary_email": "info@exampledental.com","email_status": "syntax_valid","email_confidence": 0.92,"email_sources": [{"email": "info@exampledental.com","url": "https://exampledental.com/contact","type": "mailto"}],"social_profiles": ["https://www.facebook.com/exampledental"],"google_maps_url": "https://www.google.com/maps/place/Example+Dental/...","detail_status": "success","contact_status": "success","contact_error": null}
Output fields
Common fields include:
- Business identity:
title,category_name,categories,description,google_maps_url,place_id,cid,fid - Location:
address,street,city,state,postal_code,country_code,latitude,longitude,plus_code - Reputation:
total_score,reviews_count,reviews_distribution - Contact data:
phone,phone_unformatted,website,domain,emails,primary_email,social_profiles - Email audit fields:
email_status,email_confidence,email_sources - Run status fields:
detail_status,contact_status,contact_error,scraped_at,input_query,input_location
Email status values
| Status | Meaning |
|---|---|
not_requested | Email extraction was not enabled for the run. |
not_found | The actor checked the available website pages but did not find a usable email. |
syntax_valid | An email was found and passed syntax validation. |
dns_valid | An email domain passed best-effort DNS validation. |
dns_unverified | DNS validation was requested but could not confirm the domain. |
invalid | A candidate email was rejected. |
Filters
Use filters to collect cleaner lead lists:
minRating: Skip businesses below a rating threshold. Applied only when Google exposes the rating; businesses with an unknown rating are kept and counted in the run summary.minReviewCount: Skip businesses with too few reviews. Applied only when Google exposes the review count; businesses with an unknown count are kept and counted in the run summary.categories: Keep only selected business categories.excludeCategories: Remove unwanted categories.requireWebsite: Save only businesses with a website.requireEmail: Save only businesses where an email was found.
Compatibility aliases
The actor accepts common input names used by other Google Maps scraping and email extraction workflows:
searchStrings,search_strings,search_terms,query,queriesmaxCrawledPlaces,max_items,max_results,maxResultsscrapeEmails,extractEmails,scrape_emails,extract_emailsmaxConcurrency,proxyConfiguration,proxyUrlincludeReviews,start_urls,request_retries,request_timeout_secs
Canonical camelCase fields win when both canonical and alias keys are present.
Pricing
Pricing is per saved business lead in the default dataset. Full email enrichment costs more than Maps-only discovery because the actor visits business websites and contact pages in addition to collecting Google Maps data.
For lower-cost jobs, use contactExtraction: "none" first, then rerun qualified niches with contactExtraction: "emails".
Tips for better results
Recommended Integrations
This actor works seamlessly with:
- CRM/Sales: Sync results to Pipedrive, HubSpot, Salesforce via Apify CRM integrations
- Automation: Build workflows with Make, Zapier, or n8n to automatically enrich leads
- Spreadsheets: Push results directly to Google Sheets, Airtable, or Excel via Apify webhook
- Analytics: Log results to your data warehouse (Snowflake, BigQuery, Redshift)
Key Metrics
-
Email discovery rate: 65-75% of businesses with websites yield at least one discoverable email
-
Processing speed: ~90 seconds per 100 places (varies by enrichment mode)
-
Field coverage: 20+ data fields per place record when fully enriched
-
Accuracy: Email syntax validation + optional DNS verification for confidence scoring
-
Deduplication: Automatic URL-based deduplication across search results
-
Use specific searches such as
emergency dentists,family law attorneys, orcommercial cleaning companiesinstead of broad terms such asbusinesses. -
Include a city, region, or service area in
location. -
Keep
requireEmailset tofalsewhen you want a complete market list, then filter byemail_statusafter export. -
Use
requireEmail: trueonly when you want to pay only for rows with emails. -
Use
minReviewCountandminRatingwhen building outreach lists for established businesses.
Frequently Asked Questions (FAQ)
How many businesses can I scrape per run?
You can set maxItems from 1 to 10,000 unique place records. Most users start with 100-500 and scale based on results. Each place discovery request counts toward billing regardless of enrichment mode.
What's the difference between the three contact extraction modes?
- none: Maps data only (~$0.25 per 100)
- basic: Maps + website + domain + social profiles (~$0.75 per 100)
- emails: Full enrichment with email discovery and confidence scoring (~$2.50 per 100)
Choose based on your budget and whether you need email addresses. You can run maps-only first, then rerun qualified categories with email enrichment.
How accurate are the extracted emails?
Email accuracy depends on:
- Syntax validation: All emails pass basic email format checks
- DNS validation (optional): Additional domain confirmation
- Email confidence score: 0-1 score indicating likelihood of validity based on discovery method (mailto link, domain match, etc.)
Average confidence for mailto-sourced emails: 0.92. Average for domain-inferred emails: 0.72.
Can I use this for bulk email campaigns?
Emails are sourced from public business websites. Verify compliance with anti-spam laws (CAN-SPAM, GDPR) in your jurisdiction and use email addresses only for business development purposes. Always include unsubscribe options in outreach.
Does this scrape emails from Google Maps directly?
No. Google Maps usually does not display public email addresses. The actor finds Google Maps businesses, extracts their websites, then checks public website pages such as home, contact, and about pages for emails.
What happens if a business has no website?
The actor still saves the Google Maps business record unless you set requireWebsite: true.
What happens if no email is found?
The actor saves the lead with email_status: "not_found" unless you set requireEmail: true.
Can I export the results?
Yes. Apify datasets can be exported as JSON, CSV, Excel, XML, RSS, or HTML, and can be used through the Apify API.
Can I save different configurations for different industries or cities?
Yes. Open the actor in Apify Console, set the input, and click Save as a new task. Each task keeps its own configuration — for example, one task for dentist email leads in Toronto and another for HVAC contractor leads in Dallas — and each can run on its own schedule. See Ready-made task setups for copy-paste configurations and pre-saved example tasks you can run in one click.
Can I connect this to my CRM or sales workflow?
Yes. You can use Apify integrations, webhooks, the Apify API, Make, Zapier, Google Sheets, Clay, or your own automation to send Google Maps leads into a CRM or outbound workflow.
Is this the same as a generic website email extractor?
No. A generic email extractor needs website URLs first. This actor discovers businesses from Google Maps and then enriches the websites it finds.
Is this the same as a broad Google Maps scraper?
No. Broad Google Maps scrapers are useful for place data. This actor is optimized for contact-ready local lead generation with emails, source URLs, confidence fields, and partial-save behavior.
How We Compare
| Feature | Google Maps Email Extractor | Broad Maps Scrapers | Generic Email Extractors |
|---|---|---|---|
| Local business discovery | ✅ From search terms or URLs | ✅ Yes | ❌ No (need URLs first) |
| Website contact scraping | ✅ Yes (contact, home, about pages) | ❌ Maps data only | ✅ Yes (from URLs) |
| Email extraction | ✅ Yes, with confidence scores | ❌ No | ✅ Yes (limited context) |
| Social profile extraction | ✅ Yes | ❌ No | ⚠️ Limited |
| Rating & review data | ✅ Yes | ✅ Yes | ❌ No |
| Partial results on failure | ✅ Preserves Maps data when website fails | ❌ Often all-or-nothing | ⚠️ Varies |
| One-run workflow | ✅ Discovery + enrichment together | ❌ No enrichment | ❌ No discovery |
| Email source & confidence | ✅ Source URL + confidence score | ❌ N/A | ⚠️ Basic |
| Best for | Lead generation, agency workflows | Academic research, data science | Website-based contact harvesting |
Support & Resources
- Report Issues: apify.com/kmiloaguilar/google-maps-email-extractor/issues/open
- Apify Community: Join discussions with other users
This actor is maintained and actively developed. Last verified stable: July 2026