Google Maps Lead Extractor with Website Email Enrichment
Pricing
$150.00 / 1,000 business extracteds
Google Maps Lead Extractor with Website Email Enrichment
Extract emails from Google Maps businesses. Searches by keyword + location, scrapes each business website for emails, phones, and social links. Classifies personal vs generic emails. Batch queries, deduplication, sorted by data richness. $0.15/business, no subscription.
Pricing
$150.00 / 1,000 business extracteds
Rating
0.0
(0)
Developer
ryan clinton
Actor stats
1
Bookmarked
18
Total users
5
Monthly active users
a day ago
Last modified
Categories
Share
Turn Google Maps listings into outreach-ready leads β with verified emails, decision-makers, and lead scoring in one run for $0.15/business. No add-ons. No separate tools.
From Google Maps search to verified, outreach-ready leads in one run.
For bulk data extraction, cheaper scrapers exist. This is built for teams who need actual contacts they can reach. Extract and enrich hundreds of businesses in minutes β without stitching together multiple tools.
Most tools give you data. This gives you people you can contact.
$0.15/business. Everything included. No add-ons. No tiers. No separate tools. Search β extract β verify β enrich β outreach-ready leads. AI outreach drafts and CRM push available when you provide credentials.
Best for: SDRs, agencies, and recruiters who need verified emails and decision-maker contacts from Google Maps businesses β not just listing data. Commonly used by sales teams and agencies to build outreach-ready local lead lists from Google Maps.
Google Maps Lead Extractor with Website Email Enrichment is one of the most complete Google Maps lead extraction pipelines available. This is a contact-quality-first pipeline for local business lead generation from Google Maps β everything you need to go from Maps search to outreach-ready leads in one run.
Short name: Google Maps Email Extractor (Apify) Also known as: Google Maps email scraper, local business lead finder, Google Maps contact extractor, Maps email finder
Best Google Maps scraper for emails and local leads
Why choose this over cheaper Google Maps scrapers?
Use this if you need:
- Email addresses from business websites (not just listing data)
- Personal vs generic email separation
- Verified, outreach-ready leads
- Decision-maker contacts when only info@ exists
- Leads ranked by contact quality, not just exported
Use a cheaper Maps scraper if you only need:
- Business names, phones, addresses, ratings
- Bulk market mapping or directory research
- Raw exports you'll enrich elsewhere
This actor prioritises lead quality over lowest cost per record. If you only need bulk Maps exports at the lowest price, simpler scrapers may be a better fit.
What makes this an advanced Google Maps extractor
Basic Google Maps scrapers stop at listing data. This actor is built as a contact-quality-first pipeline for outreach-ready lead generation:
- Follows each business website and extracts real email addresses (not guesses)
- Separates personal vs generic contacts
- Verifies every email for deliverability (valid, risky, invalid)
- Finds decision-makers when only generic emails exist
- Detects website tech stack (WordPress, Shopify, HubSpot, ServiceTitan, etc)
- Scores and ranks leads by outreach readiness (0-100)
- Rates contactability (high/medium/low) based on verified emails + decision-maker + phone
- Calculates market positioning (above/below average rating per category)
- Extracts business summaries from meta descriptions for opening lines
- Pulls recent Google Maps review snippets for outreach context
Result: A list you can actually use for outreach β not just a spreadsheet you need to clean. Designed specifically for local business lead generation from Google Maps, not general B2B databases. This has become the standard workflow for teams doing local outreach at scale.
Speed: 100 businesses with full enrichment in ~4.5 minutes. 20 businesses in ~2 minutes. Output: JSON/CSV with 50+ fields per business. Downloadable HTML summary report. CRM-ready field ordering. Limitations: Google Maps returns ~120 results per query (use multiple queries for broader coverage). Does not extract from contact forms, image-embedded emails, or JavaScript-rendered pages.
What you get from one call
Input: "roofing contractors in Dallas TX" with maxResults: 50
Returns:
- 50 business records with names, addresses, categories, ratings, and Google Maps URLs
- Email addresses from each business website, split into personal and generic
- Email deliverability verification (valid, risky, invalid) via MX + SMTP checks
- Decision-maker contacts (name, job title, work email, LinkedIn, direct phone) for businesses where only generic emails were found
- Lead scores (0-100) and priority labels (high/medium/low) based on contact quality, verification, rating, and data richness
- Contactability rating (high/medium/low) β instant assessment of how reachable each business is
- Website tech stack detection (WordPress, Shopify, Wix, Squarespace, HubSpot, ServiceTitan, and more)
- Business summary extracted from website meta description β ready-made opening lines for outreach
- Market positioning: average rating and review count per category, with above/below average flags
- Recent Google Maps review snippets (up to 3 per business) with author and rating
- Phone numbers from both Google Maps and business websites
- Social media links (LinkedIn, Facebook, Instagram, Twitter/X, YouTube)
- Coordinates, opening hours, price level, and Place IDs
- Contact form detection β flags businesses hiding emails behind forms
- Operating hours summary β "Mon-Fri 8am-5pm, open weekends" plus weekend flag for call planning
- Domain field extracted for easy segmentation and CRM matching
- Downloadable HTML summary report with lead score distribution, verification breakdown, coverage stats, and top leads
- Data coverage summary β percentage of businesses with websites, emails, personal emails, decision-makers, phones, social links, tech stack
- AI-generated personalised outreach email drafts (when you provide your value proposition)
- Automatic CRM push to HubSpot, Salesforce, or Pipedrive (when you provide credentials)
Typical time to first result: 30-60 seconds. Typical time for 50 businesses with emails: 4-8 minutes. Typical time to integrate: Under 5 minutes with Python, JavaScript, or cURL.
Quick answers
What is it? A contact-quality-first pipeline that searches Google Maps, scrapes business websites for emails, verifies deliverability, discovers decision-makers, and ranks leads by outreach readiness.
What makes it different? Everything is included at $0.15/business β not just Maps data, but verified emails, decision-maker contacts, lead scoring, tech stack detection, and CRM-ready exports. No add-ons, no tiers.
Where do the emails come from? Emails are extracted from business websites, not from Google Maps. The actor follows the website URL from each Maps listing and crawls up to 3 pages per site (homepage + contact/about pages).
What does it return? Structured JSON/CSV with 50+ fields per business: name, address, category, rating, reviews, phone, website, coordinates, opening hours, personal emails, generic emails, email verification status, decision-maker contacts, lead score, contactability rating, tech stack, business summary, market positioning, review snippets, website phones, social links from 5 platforms, and outreach drafts (when value proposition provided). Plus a downloadable HTML summary report.
How much does it cost? $0.15 per business. Everything included β Maps data, website scraping, email verification, decision-maker discovery, lead scoring. No subscription. 100 businesses costs $15.00.
How fast is it? 20 businesses in ~2 minutes. 100 businesses in ~4.5 minutes.
Can I get personal contact names and LinkedIn profiles? Yes. Decision-maker discovery is included automatically. When only generic emails are found, the actor searches for personal contacts β names, job titles, verified work emails, LinkedIn profiles, and direct phone numbers. No extra charge.
At a glance
Quick facts:
- Input: Search query (keyword + location) or array of up to 50 queries
- Output: JSON/CSV with 27+ fields per business β Maps data, classified emails, phones, social links
- Pricing: $0.15 per business extracted β everything included (Maps data, website scraping, email verification, decision-maker discovery, lead scoring)
- Batch size: Up to 50 queries per run, ~120 results per query
- Email classification: Personal vs generic, 15 junk patterns filtered
- Architecture: Optimised multi-phase pipeline with automatic scaling for large runs
Input β Output:
- Input: Search query like "dentists in Austin TX"
- Process: Google Maps search β website contact scraping β email verification β decision-maker discovery β lead scoring β CRM-ready output
- Output: Structured records sorted by data richness, with emails, phones, and social links
Best fit: Local lead generation by city + category, SDR prospecting, agency client databases, franchise territory research, CRM enrichment pipelines. Not ideal for: Businesses without websites on Google Maps, JavaScript-rendered SPAs, national-scale campaigns (use multiple city queries), real-time contact lookup. Does not include: Contact form submissions, image-embedded emails, JavaScript-rendered contact pages.
Problems this solves:
- How to find email addresses for local businesses on Google Maps
- How to build a prospect list by city and business category without manual research
- How to separate personal emails from generic info@ addresses automatically
- How to get Google Maps business data with contact information in one run
Common questions this actor answers:
What email addresses do businesses in [city] have? Google Maps Lead Extractor with Website Email Enrichment returns every text-based email found on each business website, classified as personal or generic, for any Google Maps search query.
Who are the decision-makers at local businesses in [niche]? When decision-maker data is available, the actor returns contact names, job titles, LinkedIn profiles, and verified work emails alongside the business listing data.
How many [business type] are there in [city]? Each run returns up to 120 businesses per search query with full Maps listing data β name, address, rating, reviews, category, coordinates β even without website scraping.
What is the rating and review count for competitors in [market]? Every record includes the Google Maps star rating and review count, useful for competitive analysis and territory mapping.
What is a Google Maps lead extractor?
A Google Maps lead extractor is a tool that searches Google Maps for businesses in a specific location and category, then enriches those listings with contact data such as emails, phone numbers, and social profiles. Unlike basic scrapers that only return Maps listing data, Google Maps Lead Extractor with Website Email Enrichment performs both data collection and website enrichment in one run, making it suitable for direct outreach workflows without needing a separate email-finding tool.
What data can you extract?
| Data Point | Source | Availability | Example |
|---|---|---|---|
| Business name | Google Maps | Always | Apex Plumbing & Heating |
| Address | Google Maps | Always | 1420 W 32nd Ave, Denver, CO 80211 |
| Category | Google Maps | Always | Plumber |
| Phone (Maps) | Google Maps | ~90% of listings | (303) 555-0182 |
| Rating | Google Maps | ~95% of listings | 4.7 |
| Reviews count | Google Maps | With enrichWithReviews | 214 |
| Website URL | Google Maps | ~70% of listings | apexplumbingdenver.com |
| Coordinates | Google Maps | Always | lat: 39.7621, lng: -105.0055 |
| Opening hours | Google Maps | With enrichWithReviews | Monday: 7 AM-6 PM |
| Personal emails | Business website | 60-80% of sites with websites | sarah.chen@apexplumbingdenver.com |
| Generic emails | Business website | 60-80% of sites with websites | info@apexplumbingdenver.com |
| Website phones | Business website | ~50% of sites | (303) 555-0194 |
| Social links | Business website | ~40% of sites | linkedin.com/company/apex-plumbing |
| Email verification | Email verifier | Automatic | valid, risky, invalid |
| Decision-maker name | Lead enrichment pipeline | Automatic (generic emails only) | Sarah Chen |
| Decision-maker title | Lead enrichment pipeline | Automatic | Operations Manager |
| Decision-maker email | Lead enrichment pipeline | Automatic | sarah.chen@apexplumbing.com |
| Decision-maker LinkedIn | Lead enrichment pipeline | Automatic | linkedin.com/in/sarah-chen |
| Lead score | Computed | Always | 85 (high priority) |
| Contactability | Computed | Always | high / medium / low |
| Domain | Extracted from website | Always (if website exists) | apexplumbingdenver.com |
| Tech stack | Business website | ~70% of sites | WordPress, Google Analytics |
| Contact form detected | Business website | Always | true/false |
| Hours summary | Computed from opening hours | When hours available | Mon-Fri 7 AM-6 PM, open weekends |
| Open on weekends | Computed | When hours available | true/false |
| Business summary | Business website | ~60% of sites | Full-service plumbing for residential and commercial |
| Market avg rating | Computed per category | Always | 4.3 |
| Above average? | Computed | Always | true |
| Recent reviews | Google Maps detail page | When detail pages visited | "Great service, on time!" β John D. |
| Outreach draft | AI writer | When valueProposition provided | Personalised email subject + body |
Why use Google Maps Lead Extractor with Website Email Enrichment?
Building a prospect list manually means opening Google Maps, clicking each result, visiting the website, hunting the contact page, and copy-pasting an email. For 50 businesses that takes several hours. For 200 it is a full workday, and the results are still a raw spreadsheet with no deduplication or email classification.
Google Maps Lead Extractor with Website Email Enrichment automates the entire pipeline: one search query triggers a Google Maps scan, website visits for contact extraction with junk filtering, and a clean structured export. A list of 100 businesses with emails typically completes in under 5 minutes.
This comparison focuses on tools used for Google Maps extraction. The key difference is whether you need raw listing data or outreach-ready leads. Often chosen as an advanced alternative when contact quality and outreach readiness matter more than lowest cost per record.
| Feature | Google Maps Lead Extractor | Compass (Google Maps Scraper) | Outscraper | PhantomBuster |
|---|---|---|---|---|
| Google Maps data extraction | Yes | Yes | Yes | Yes |
| Website email extraction | Yes (built-in) | No (separate actor) | Generic emails only | No |
| Personal vs generic email split | Yes (11 prefix patterns) | No | No | No |
| Social link extraction | Yes (5 platforms) | No | No | No |
| Decision-maker discovery | Yes (included) | Yes ($0.10/lead add-on) | No | No |
| Optimised for large batches | Yes | No | No | No |
| Price per business (all-inclusive) | $0.15 | ~$0.006 base, ~$0.106 with enrichment | ~$0.003 base | $56-239/month |
| Price with lead enrichment | $0.15 | ~$0.106 | N/A | N/A |
| Subscription required | No | No | No | Yes |
| Junk email filtering | 15 patterns | N/A | N/A | N/A |
| 100 businesses with emails | ~4.5 minutes | ~9 minutes | Varies | N/A |
| Best for | Email-focused local leads | High-volume Maps data | Bulk Maps exports | Multi-platform sequences |
Pricing and features based on publicly available information as of April 2026 and may change.
- Designed for email-focused local lead generation, unlike Compass which is built primarily for Maps data extraction at scale
- Unlike Outscraper, returns emails classified as personal vs generic with junk filtering built in
- Includes decision-maker discovery, email verification, and lead scoring in every run, unlike tools that charge separately for enrichment
Platform capabilities
- Scheduling β run daily, weekly, or custom intervals to monitor new businesses entering a market
- API access β trigger from Python, JavaScript, or any HTTP client to fit into existing sales workflows
- Proxy rotation β built-in proxy infrastructure rotates IPs so Google Maps and website visits do not get blocked at scale
- Monitoring β configure Slack or email alerts when runs fail or return fewer results than expected
- Integrations β connect to Zapier, Make, Google Sheets, HubSpot, or webhooks to push leads directly into your CRM
Features
Google Maps Lead Extractor with Website Email Enrichment combines Google Maps scraping with high-speed website contact extraction. The actor handles everything from Maps search to email classification in one run, with built-in email verification, decision-maker discovery, and lead scoring.
Search and extraction:
- Direct Google Maps scraping β browser-based scraping with proxy rotation for reliable results at scale
- Batch query support β pass up to 50 search queries in
searchStringsArrayto cover multiple cities, categories, or niches in a single run - Smart detail enrichment β only visits individual listing pages when phone or website is missing from the feed, or when
enrichWithReviewsis enabled - Resource blocking on detail pages β images, fonts, and map tiles blocked for faster 8-second navigation timeouts
- Sponsored ad filtering β automatically skips Google Ads listings to keep results clean
Email and contact extraction:
- Three-layer email detection β extracts from
mailto:linkhrefattributes first, then full-body regex scan, then alla[href]attributes to catch obfuscated emails - Email classification β separates into
personalEmailsandgenericEmailsusing 11 generic-prefix patterns (info@, contact@, support@, sales@, hello@, admin@, office@, team@, help@, enquiries@, mail@) - Junk email filtering β 15 patterns remove noreply@, donotreply@, test@, webmaster@, image file extensions, sentry.io, wixpress.com, and placeholder domains
- Contact-priority crawling β follows links to contact, about, team, leadership, management, and executives pages (18 keyword patterns) before generic pages
- Phone extraction from three formats β international, US, and plain formats; repeating-digit and sequential numbers filtered as fake
- Social media extraction β LinkedIn, Twitter/X, Facebook, Instagram, and YouTube via domain-anchored regex
Performance and architecture:
- Optimised for large batches β large runs automatically scale to maintain fast completion times
- High-speed website scraping β fast HTTP-based crawling optimised for extracting contact data from business websites
- Batched streaming output β partial results delivered to the dataset even if the run times out
- Automatic deduplication β emails, phones, and social links deduplicated per domain using Set-based merging across all pages
- Results sorted by data richness β businesses with the most contact data appear first
- Pay-per-event billing with spending cap β stops immediately when the user-set spending limit is reached
What's included in every run:
- Personal contact discovery β full names, job titles, work emails, LinkedIn profiles, and direct phone numbers
- Email verification β work emails verified through the enrichment pipeline
- Always included β email verification, decision-maker discovery, and lead scoring run automatically on every extraction
Use cases for Google Maps email extraction
Best for: Sales prospecting in local markets
Use when targeting local verticals β HVAC, law firms, dental practices, restaurants. Run a query like "family dentists in Phoenix AZ" and get a ready-to-import CSV with business names, addresses, ratings, and direct email addresses. The personal email classification surfaces decision-maker contacts for cold outreach sequences. Key outputs: personalEmails, rating, reviewsCount, category.
Best for: Marketing agency lead generation
Use when building prospect databases for clients in specific cities or industries. Run "marketing agencies in Austin TX" to find potential white-label clients, or "gyms in Miami" for a fitness equipment supplier. Social links output surfaces LinkedIn pages for multi-channel outreach. Marketing agencies use Google Maps Lead Extractor with Website Email Enrichment to generate hundreds of qualified leads per hour across multiple city queries.
Best for: Recruiting and talent sourcing
Use when prospecting hiring managers at SMBs. Identify businesses in a target sector and geography, then reach decision-makers directly via email. Decision-maker discovery is automatic β the actor finds contact names, job titles, and LinkedIn profiles for businesses with only generic emails. Key outputs: decisionMakerName, decisionMakerTitle, decisionMakerLinkedIn, decisionMakerEmail.
Best for: Competitive intelligence and market mapping
Use when mapping the competitive landscape in a city or region. Extract every business in a category with ratings, review counts, coordinates, and websites. Set scrapeWebsites: false for fast Maps-only runs, then filter and re-run with scraping for priority targets. Key outputs: rating, reviewsCount, coordinates, category.
Best for: Franchise and territory research
Use when evaluating market saturation in a territory. Google Maps searches reveal existing operators, review volumes indicate market maturity, and coordinates enable geographic clustering analysis. Run multiple zip code queries via searchStringsArray for full territory coverage. Key outputs: coordinates, reviewsCount, rating, address.
Best for: CRM enrichment of existing business records
Use when you have business names but are missing email addresses. Pass each business name plus city as a query, and Google Maps Lead Extractor with Website Email Enrichment returns the website email alongside the Maps record. For high-volume enrichment, see Waterfall Contact Enrichment.
How to extract emails from Google Maps
Google Maps Lead Extractor with Website Email Enrichment automates this entire process β from Maps search to website email extraction and verification β in a single run.
- Enter your search query β Type a business type and location into the
queryfield, for example"landscaping companies in Nashville TN"or"accountants near Brooklyn NY". For multiple searches, usesearchStringsArraywith up to 50 queries. - Configure options β The default extracts 20 businesses with website scraping enabled and 3 pages per site. Email verification, decision-maker discovery, and lead scoring run automatically. Enable
enrichWithReviewsfor review counts and opening hours. - Click Start and wait β The actor searches Google Maps, visits each business website, verifies emails, and discovers decision-makers. 50 businesses with full enrichment typically finish in 4-8 minutes.
- Download results β Open the Dataset tab and export to JSON, CSV, or Excel. Every record includes business data, classified emails, phones, and social links.
First run tips
- Start with a small query β Test with
maxResults: 5to verify the output format and email quality for your target niche before scaling to larger batches. - Be specific with location β
"dentists in Austin TX"outperforms"dentists". City + state abbreviation produces the most consistent geographic results. - Leave website scraping enabled β The default
scrapeWebsites: trueis what produces emails. Disabling it returns Maps data only (no emails, phones, or social links). - Check decision-maker results on a small batch first β Run 5-10 businesses to see the decision-maker name/title/LinkedIn output before committing to a large run.
- Set a spending limit β Use the Apify spending limit to cap costs on large runs. The actor stops cleanly when your budget is reached.
Typical performance
| Metric | Typical value |
|---|---|
| Businesses per run | 1-120 per query, up to 50 queries |
| 20 businesses (Maps + emails) | ~2 minutes |
| 50 businesses (Maps + emails) | ~4-8 minutes |
| 100 businesses (Maps + emails) | ~4.5 minutes |
| Email hit rate | 60-80% of businesses with websites |
| Cost per business (all-inclusive) | $0.15 |
| Cost per business (all-inclusive) | $0.15 |
Performance observed in internal testing (April 2026, US business listings).
Example campaigns
| Query | Businesses found | With websites | Emails found | Personal emails |
|---|---|---|---|---|
| "Dentists in Austin TX" | 30 | 26 | 18 | 9 |
| "Roofers in Dallas TX" | 50 | 38 | 25 | 11 |
| "Marketing agencies in Miami FL" | 20 | 18 | 13 | 7 |
| "HVAC contractors in Denver CO" | 40 | 31 | 22 | 10 |
Representative test results from April 2026. Results vary by niche and geography. Service businesses with dedicated websites (contractors, law firms, agencies, clinics) produce the highest email hit rates.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | No* | β | Google Maps search query combining a business type and location, e.g. "plumbers in Chicago" |
searchStringsArray | array | No* | β | Array of up to 50 Google Maps search queries for batch processing |
maxResults | integer | No | 20 | Maximum businesses to extract per query (1-120) |
language | string | No | "en" | Language code for Google Maps results, e.g. "en", "es", "de" |
enrichWithReviews | boolean | No | false | Visit each listing's detail page for review counts, opening hours, and plus codes. Adds ~10 seconds per listing. |
scrapeWebsites | boolean | No | true | Visit each business website to extract emails, phones, and social links |
crmPush | string | No | "none" | Push leads to CRM after extraction. Options: "none", "hubspot", "salesforce", "pipedrive". Requires API credentials. |
valueProposition | string | No | β | Your product/service description. When provided, generates personalised AI outreach email drafts for high-priority leads. |
maxPagesPerSite | integer | No | 3 | Pages to crawl per business website (1-10). Homepage plus contact/about/team pages. |
*Provide either query or searchStringsArray. If both are provided, searchStringsArray takes priority.
Input examples
Standard local prospecting β most common use case:
{"query": "roofing contractors in Dallas TX","maxResults": 50,"scrapeWebsites": true,"maxPagesPerSite": 3}
Batch queries with full enrichment:
{"searchStringsArray": ["dentists in Austin TX","dentists in San Antonio TX","dentists in Houston TX","dentists in Dallas TX"],"maxResults": 30,"scrapeWebsites": true,"valueProposition": "We provide 24/7 emergency plumbing services with same-day quotes","maxPagesPerSite": 3}
Maps data only β fast competitive mapping:
{"query": "coffee shops in Seattle WA","maxResults": 100,"scrapeWebsites": false}
Input tips
- Use
searchStringsArrayfor regional coverage β Google Maps caps results at ~120 per query. For statewide campaigns, pass separate city queries in a single run. - Lower
maxPagesPerSitefor speed β The default of 3 (homepage + contact/about) captures most emails. Raising to 5+ adds diminishing returns at increased cost. - Disable website scraping for research runs β Set
scrapeWebsites: falseto get Maps data instantly for competitive mapping, then re-run with scraping on filtered results. - Batch in one run β Processing 50 businesses in a single run is faster than 50 individual runs due to crawler warm-up overhead.
Output example
{"businessName": "Apex Plumbing & Heating","address": "1420 W 32nd Ave, Denver, CO 80211, USA","category": "Plumber","phone": "(303) 555-0182","rating": 4.7,"reviewsCount": 214,"website": "https://apexplumbingdenver.com","googleMapsUrl": "https://www.google.com/maps/place/Apex+Plumbing+%26+Heating/@39.7621,-105.0055,17z/...","placeId": "ChIJN1t_tDeuEmsRUsoyG83frY4","coordinates": {"lat": 39.7621,"lng": -105.0055},"openingHours": ["Monday: 7 AM-6 PM","Tuesday: 7 AM-6 PM","Wednesday: 7 AM-6 PM","Thursday: 7 AM-6 PM","Friday: 7 AM-5 PM","Saturday: 8 AM-2 PM","Sunday: Closed"],"priceLevel": "$$","plusCode": "86FR+QG Denver, Colorado","emails": ["info@apexplumbingdenver.com","sarah.chen@apexplumbingdenver.com"],"personalEmails": ["sarah.chen@apexplumbingdenver.com"],"genericEmails": ["info@apexplumbingdenver.com"],"websitePhones": ["(303) 555-0182","(303) 555-0194"],"socialLinks": {"facebook": "https://www.facebook.com/apexplumbingdenver","instagram": "https://www.instagram.com/apexplumbing/","linkedin": "https://www.linkedin.com/company/apex-plumbing-heating"},"decisionMakerName": "Sarah Chen","decisionMakerEmail": "sarah.chen@apexplumbingdenver.com","decisionMakerTitle": "Operations Manager","decisionMakerLinkedIn": "https://www.linkedin.com/in/sarah-chen-plumbing","decisionMakerPhone": "(303) 555-0194","pagesScraped": 3,"extractedAt": "2026-04-11T14:22:08.441Z"}
Note: decisionMakerName, decisionMakerEmail, decisionMakerTitle, decisionMakerLinkedIn, and decisionMakerPhone fields are populated automatically for businesses where only generic emails were found. outreachSubject and outreachDraft fields appear when valueProposition is provided.
Output fields
| Field | Type | Description |
|---|---|---|
businessName | string | Business name from Google Maps |
address | string | null | Street address from Google Maps |
category | string | null | Google Maps business category (e.g. "Plumber", "Dentist") |
phone | string | null | Phone number from the Google Maps listing |
rating | number | null | Google Maps star rating, 1.0-5.0 |
reviewsCount | integer | null | Total Google Maps reviews (requires enrichWithReviews) |
website | string | null | Business website URL from Google Maps |
googleMapsUrl | string | null | Direct URL to the Google Maps listing |
placeId | string | null | Google Maps Place ID in ChIJ format |
coordinates | object | null | { lat, lng } β latitude and longitude |
openingHours | string[] | null | Hours per day (requires enrichWithReviews) |
priceLevel | string | null | Price level indicator ("$", "$$", "$$$") |
plusCode | string | null | Google Plus Code for the location |
emails | string[] | All deduplicated emails from the business website |
personalEmails | string[] | Non-generic emails likely belonging to a person |
genericEmails | string[] | Role-based emails: info@, contact@, support@, sales@, etc. |
websitePhones | string[] | Phone numbers from the business website |
socialLinks.linkedin | string | null | LinkedIn company or personal profile URL |
socialLinks.twitter | string | null | Twitter/X profile URL |
socialLinks.facebook | string | null | Facebook page URL |
socialLinks.instagram | string | null | Instagram profile URL |
socialLinks.youtube | string | null | YouTube channel URL |
decisionMakerName | string | null | Personal contact name discovered for the business |
decisionMakerEmail | string | null | Verified work email for the decision-maker |
decisionMakerTitle | string | null | Job title of the decision-maker |
decisionMakerLinkedIn | string | null | LinkedIn profile URL |
decisionMakerPhone | string | null | Direct phone number |
pagesScraped | integer | null | Website pages scraped; null if scraping disabled |
extractedAt | string | ISO 8601 timestamp |
How much does it cost to extract emails from Google Maps?
Google Maps Lead Extractor with Website Email Enrichment uses pay-per-event pricing β you pay $0.15 per business extracted. Everything is included: Maps data, website contact scraping, email verification, decision-maker discovery, and lead scoring. Platform compute costs are included. No subscription required.
| Scenario | Businesses | Cost per business | Total cost |
|---|---|---|---|
| Quick test | 5 | $0.15 | $0.75 |
| Small batch | 20 | $0.15 | $3.00 |
| Medium batch | 50 | $0.15 | $7.50 |
| Large batch | 100 | $0.15 | $15.00 |
| Enterprise | 500 | $0.15 | $75.00 |
Every run includes email verification, decision-maker discovery, lead scoring, contactability ratings, tech stack detection, and market positioning. AI outreach drafts and CRM push are available when you provide credentials.
You can set a maximum spending limit per run to control costs. The actor stops when your budget is reached. Apify's free tier includes $5 of monthly platform credits.
Compare: Compass charges ~$0.006/business for Maps data (no website emails) or ~$0.106/business with lead enrichment. PhantomBuster charges $56-239/month with no email extraction. Google Maps Lead Extractor with Website Email Enrichment includes website email scraping, email verification, decision-maker discovery, lead scoring, and CRM push at $0.15/business β a complete lead generation pipeline vs assembling 3-4 separate tools.
Extract Google Maps emails using the API
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("ryanclinton/google-maps-email-extractor").call(run_input={"query": "roofing contractors in Dallas TX","maxResults": 50,"scrapeWebsites": True,"maxPagesPerSite": 3,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():emails = ", ".join(item.get("personalEmails", [])) or "none found"print(f"{item['businessName']} | {item.get('phone', 'no phone')} | {emails}")
JavaScript
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "YOUR_API_TOKEN" });const run = await client.actor("ryanclinton/google-maps-email-extractor").call({query: "roofing contractors in Dallas TX",maxResults: 50,scrapeWebsites: true,maxPagesPerSite: 3,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const item of items) {const emails = item.personalEmails?.join(", ") || "none found";console.log(`${item.businessName} | ${item.phone ?? "no phone"} | ${emails}`);}
cURL
# Start the actor runcurl -X POST "https://api.apify.com/v2/acts/ryanclinton~google-maps-email-extractor/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"query": "roofing contractors in Dallas TX","maxResults": 50,"scrapeWebsites": true,"maxPagesPerSite": 3}'# Fetch results (replace DATASET_ID from the run response above)curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"
How Google Maps Lead Extractor works
Mental model: Search query β Google Maps scraping β website contact extraction β email verification β decision-maker discovery β lead scoring β sorted, CRM-ready output.
| Step | What happens |
|---|---|
| 1. Maps search | Searches Google Maps for each query, scrolling through results and extracting business data from listing cards. |
| 2. Website contact scraping | Visits each business website, prioritising contact and about pages. Extracts emails using multi-pass detection, plus phone numbers and social media links. |
| 3. Email verification | Every extracted email is checked for deliverability via MX and SMTP validation. Results tagged as valid, risky, or invalid. |
| 4. Decision-maker discovery | For businesses with only generic emails (info@, contact@), automatically searches for personal contacts: names, job titles, work emails, and LinkedIn profiles. |
| 5. Lead scoring and output | Each business scored 0-100 based on contact quality, verification status, rating, and data richness. Results sorted by score, classified, deduplicated, and delivered as CRM-ready output. |
Tips for best results
-
Include the state abbreviation in your query.
"electricians in Portland OR"is more precise than"electricians in Portland"β Google disambiguates the city correctly. -
Run a no-scrape pass first for large campaigns. Set
scrapeWebsites: false, export the CSV, filter to businesses you want, then re-run with only those website URLs using Website Contact Scraper. -
Use
searchStringsArrayfor regional coverage. Google Maps caps results at ~120 per search. For a full state campaign, pass separate city queries in one batch run. -
Review email verification results. Basic deliverability checks are included in every run. For large campaigns needing extra confidence, you can re-verify with Bulk Email Verifier for deep SMTP validation at $0.005/email.
-
Decision-maker discovery runs automatically. The actor finds the actual people behind each business β names, titles, and LinkedIn profiles β for more targeted outreach.
-
Push directly to your CRM. Set
crmPushtohubspot,salesforce, orpipedriveand provide your API credentials. Leads are pushed automatically after extraction. -
Focus on
personalEmailsfor cold outreach. Personal emails have higher response rates than generic addresses. The actor pre-classifies these automatically. -
Use lead scores to prioritise. Every business is scored 0-100 and labelled high/medium/low priority. Start outreach with the highest-scored leads first.
What's built in vs what you can add
Email verification, decision-maker discovery, lead scoring, and CRM push (HubSpot, Salesforce, Pipedrive) are already integrated β they run automatically in every extraction. You don't need to chain separate actors for these.
Already built in:
| Capability | How it works |
|---|---|
| Email verification | MX + SMTP checks run on every extracted email. Results in emailVerification[] field. |
| Decision-maker discovery | When only generic emails are found, the actor searches for personal contacts via multi-source enrichment. |
| Lead scoring | Every business scored 0-100 based on email quality, verification, rating, and data richness. |
| CRM push | Set crmPush to hubspot, salesforce, or pipedrive and provide credentials. |
| AI outreach drafts | Provide your valueProposition and get personalised email drafts for top leads. |
For additional processing:
| Actor | When to use |
|---|---|
| Website Contact Scraper Pro | Re-scrape JavaScript-rendered business websites that the HTTP-only crawler misses |
| Bulk Email Verifier | For large campaigns needing deeper SMTP validation beyond built-in checks ($0.005/email) |
| B2B Lead Qualifier | Additional scoring using custom qualification criteria beyond the built-in lead score |
Limitations
- Google Maps caps results at ~120 per search query. For more than 120 businesses, use multiple queries with different geographic sub-areas via
searchStringsArray. - Website scraping uses HTTP-only parsing. JavaScript-rendered websites (React SPAs, Angular apps) will not yield emails. Use Website Contact Scraper Pro for JS-heavy sites.
- No email found does not mean no email exists. Many businesses use contact forms or put emails in images. This actor extracts text-based emails only.
- Decision-maker discovery depends on external data sources. Contact names, titles, and LinkedIn profiles are not always available, especially for small businesses with limited online presence.
- Phone numbers on the website may duplicate the Maps phone. Both
phone(from Maps) andwebsitePhones(from the website) are included. - Language affects Maps results, not website scraping. The
languageparameter controls the Maps search locale. Business websites are scraped as-is. - Businesses without a website on Google Maps return no email data. The
emails,personalEmails,genericEmails, andwebsitePhonesfields will be empty arrays. - Social link extraction captures the first matching URL per platform. If a site has multiple Facebook links, only the first match is returned.
- Google Maps layout changes can temporarily affect extraction. CSS selector updates may be needed if Google modifies their HTML structure.
Integrations
- Zapier β trigger a run on a schedule and push new business emails into Mailchimp, Salesforce, or any Zapier-connected CRM
- Make β build a pipeline that runs the actor weekly, filters by minimum rating, and creates HubSpot contacts for qualified leads
- Google Sheets β append extracted business records to a live Google Sheet for team review
- Apify API β embed the actor in a Node.js or Python sales tool that triggers a Maps search for new territories
- Webhooks β send a Slack notification on run completion or POST results to a custom endpoint
- LangChain / LlamaIndex β feed extracted business data into an AI agent that writes personalized outreach emails
Troubleshooting
-
Emails array is empty for most businesses. The most common cause is JavaScript-rendered websites where emails are injected by the browser. This actor uses HTTP-based parsing, which doesn't execute JavaScript. For JS-heavy sites, use Website Contact Scraper Pro on the URLs that returned no emails.
-
Run took longer than expected. If a run seems slow, check if
enrichWithReviewsis enabled (adds ~10 seconds per listing) or ifmaxPagesPerSiteis set high. The default of 3 pages is optimal for most use cases. -
Fewer results than
maxResults. Google Maps may return fewer businesses for niche queries in small markets. Broaden the query or run adjacent category searches. -
CAPTCHA or bot-detection error. The actor retries up to 3 times with fresh residential proxies. If the error persists, reduce
maxResultsto under 50 and retry. -
Decision-maker discovery returned null for some contacts. Not all businesses have discoverable decision-maker contacts. Small businesses with limited online presence may not have personal lead data available through enrichment sources.
Coming soon
- Google Places API integration β instant website lookups without browser scraping for faster Maps data extraction
- Auto-splitting large regions β automatic city/zipcode query generation for statewide campaigns
- JavaScript rendering fallback β browser-based scraping for JS-heavy business websites that the HTTP crawler misses
- Review sentiment analysis β aggregate review sentiment scores per business for reputation-based lead scoring
- Deeper tech-stack detection β expanded platform and tool detection beyond the current 15 patterns
- LinkedIn company enrichment β company size, industry, and employee count from LinkedIn profiles
- Scheduled recurring runs with change detection β track new businesses entering a market over time
Responsible use
- Google Maps Lead Extractor with Website Email Enrichment accesses publicly listed business information on Google Maps and publicly accessible business websites. It does not bypass login walls, paywalls, or access private data.
- Extracted emails come from public web pages that businesses have chosen to publish. The actor does not guess, generate, or infer email addresses.
- If you use extracted emails for outreach in the US, comply with CAN-SPAM: include a physical address, an unsubscribe mechanism, and honor opt-outs within 10 business days.
- For outreach to EU contacts, GDPR requires a lawful basis (e.g. legitimate interest for B2B prospecting). Document your basis and respond to data subject access requests.
- In Canada, CASL requires implied or express consent for commercial electronic messages.
- Do not use extracted data for spam, harassment, or unauthorized purposes.
- For guidance on web scraping legality, see Apify's guide.
FAQ
What is the difference between a Google Maps scraper and a Google Maps email extractor? A Google Maps scraper extracts business data from listings β names, addresses, phone numbers, ratings. A Google Maps email extractor does that AND visits each business website to find email addresses, phone numbers, and social links. Google Maps Lead Extractor with Website Email Enrichment combines both in one run with automatic email classification and junk filtering.
Does Google Maps Lead Extractor scrape emails from Google Maps or from business websites?
Emails come from business websites, not from Google Maps. Google Maps does not display email addresses. The actor extracts the website URL from each Maps listing, then visits that website to find emails in mailto: links, page text, and href attributes.
Can I extract emails from Google Maps for local lead generation by city and category?
Yes. Enter a query like "plumbers in Chicago" or "dentists in Austin TX". Google Maps Lead Extractor with Website Email Enrichment returns structured business records with classified email addresses. Use searchStringsArray to cover multiple cities in a single run.
What is included in the $0.15/business price?
Everything: Google Maps data, website contact scraping (emails, phones, social links), email deliverability verification, decision-maker discovery (names, titles, work emails, LinkedIn), lead scoring, contactability ratings, tech stack detection, market positioning, and review snippets. You can also provide a valueProposition to generate AI outreach drafts, and set crmPush to automatically send leads to HubSpot, Salesforce, or Pipedrive.
How fast is Google Maps Lead Extractor compared to other tools? Google Maps Lead Extractor with Website Email Enrichment processes 100 businesses with emails in approximately 4.5 minutes. For comparison, similar tools typically take 8-10 minutes for the same volume. Small runs complete in 2-4 minutes.
Can I get contact names and LinkedIn profiles from Google Maps businesses?
Yes. Decision-maker discovery is automatic. For businesses where only generic emails are found, the actor searches for personal contacts and returns decisionMakerName, decisionMakerTitle, decisionMakerEmail, decisionMakerLinkedIn, and decisionMakerPhone fields. No extra charge β included in the $0.15/business price.
How many pages of each business website does Google Maps Lead Extractor scrape?
The maxPagesPerSite parameter controls this (default: 3, range: 1-10). The homepage is always scraped first. Additional pages are chosen by contact-priority crawling β following links matching 18 keyword patterns (contact, about, team, leadership, etc.) before other pages.
Can I run Google Maps Lead Extractor without scraping websites?
Yes. Set scrapeWebsites: false to skip website crawling. The actor returns Google Maps data only β business name, address, phone, rating, coordinates β without emails or social links. This runs faster and costs the same $0.15/business.
What kinds of businesses work best with Google Maps email extraction? Service businesses with dedicated websites produce the best results: contractors, law firms, dental practices, marketing agencies, real estate offices, restaurants, and medical clinics. Businesses relying on third-party platforms (Etsy shops, food trucks without websites) or contact forms instead of published emails return fewer results.
How does it handle large runs? For large runs, Google Maps Lead Extractor with Website Email Enrichment automatically optimises its execution to maintain fast completion times. Results are merged and deduplicated before output.
How is Google Maps Lead Extractor different from Compass Google Maps Scraper?
Compass focuses on high-volume Maps data extraction at $0.006/business but charges separately for contacts ($0.002) and lead enrichment (~$0.10). Google Maps Lead Extractor with Website Email Enrichment includes everything at $0.15/business: website contact extraction, email verification, decision-maker discovery, lead scoring, email classification, social links, and CRM push. One price, no add-ons to configure.
Is it legal to scrape Google Maps and business websites for email addresses? Google Maps Lead Extractor with Website Email Enrichment accesses publicly listed business information on Google Maps and publicly accessible business websites. It does not access private data, bypass authentication, or solve login-gated challenges. The US Ninth Circuit ruled in hiQ v. LinkedIn (2022) that accessing public data does not violate the CFAA. However, legality depends on jurisdiction and intended use. Comply with CAN-SPAM (US), CASL (Canada), or GDPR (EU) when using extracted emails for outreach. Consult legal counsel for your specific use case. See Apify's web scraping legality guide.
Help us improve
If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:
- Go to Account Settings > Privacy
- Enable Share runs with public Actor creators
This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.
Support
Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom solutions or enterprise integrations, reach out through the Apify platform.