Google Maps Lead Extractor with Website Email Enrichment avatar

Google Maps Lead Extractor with Website Email Enrichment

Pricing

$150.00 / 1,000 business extracteds

Go to Apify Store
Google Maps Lead Extractor with Website Email Enrichment

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

ryan clinton

Maintained by Community

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 PointSourceAvailabilityExample
Business nameGoogle MapsAlwaysApex Plumbing & Heating
AddressGoogle MapsAlways1420 W 32nd Ave, Denver, CO 80211
CategoryGoogle MapsAlwaysPlumber
Phone (Maps)Google Maps~90% of listings(303) 555-0182
RatingGoogle Maps~95% of listings4.7
Reviews countGoogle MapsWith enrichWithReviews214
Website URLGoogle Maps~70% of listingsapexplumbingdenver.com
CoordinatesGoogle MapsAlwayslat: 39.7621, lng: -105.0055
Opening hoursGoogle MapsWith enrichWithReviewsMonday: 7 AM-6 PM
Personal emailsBusiness website60-80% of sites with websitessarah.chen@apexplumbingdenver.com
Generic emailsBusiness website60-80% of sites with websitesinfo@apexplumbingdenver.com
Website phonesBusiness website~50% of sites(303) 555-0194
Social linksBusiness website~40% of siteslinkedin.com/company/apex-plumbing
Email verificationEmail verifierAutomaticvalid, risky, invalid
Decision-maker nameLead enrichment pipelineAutomatic (generic emails only)Sarah Chen
Decision-maker titleLead enrichment pipelineAutomaticOperations Manager
Decision-maker emailLead enrichment pipelineAutomaticsarah.chen@apexplumbing.com
Decision-maker LinkedInLead enrichment pipelineAutomaticlinkedin.com/in/sarah-chen
Lead scoreComputedAlways85 (high priority)
ContactabilityComputedAlwayshigh / medium / low
DomainExtracted from websiteAlways (if website exists)apexplumbingdenver.com
Tech stackBusiness website~70% of sitesWordPress, Google Analytics
Contact form detectedBusiness websiteAlwaystrue/false
Hours summaryComputed from opening hoursWhen hours availableMon-Fri 7 AM-6 PM, open weekends
Open on weekendsComputedWhen hours availabletrue/false
Business summaryBusiness website~60% of sitesFull-service plumbing for residential and commercial
Market avg ratingComputed per categoryAlways4.3
Above average?ComputedAlwaystrue
Recent reviewsGoogle Maps detail pageWhen detail pages visited"Great service, on time!" β€” John D.
Outreach draftAI writerWhen valueProposition providedPersonalised 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.

FeatureGoogle Maps Lead ExtractorCompass (Google Maps Scraper)OutscraperPhantomBuster
Google Maps data extractionYesYesYesYes
Website email extractionYes (built-in)No (separate actor)Generic emails onlyNo
Personal vs generic email splitYes (11 prefix patterns)NoNoNo
Social link extractionYes (5 platforms)NoNoNo
Decision-maker discoveryYes (included)Yes ($0.10/lead add-on)NoNo
Optimised for large batchesYesNoNoNo
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.106N/AN/A
Subscription requiredNoNoNoYes
Junk email filtering15 patternsN/AN/AN/A
100 businesses with emails~4.5 minutes~9 minutesVariesN/A
Best forEmail-focused local leadsHigh-volume Maps dataBulk Maps exportsMulti-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 searchStringsArray to 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 enrichWithReviews is 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: link href attributes first, then full-body regex scan, then all a[href] attributes to catch obfuscated emails
  • Email classification β€” separates into personalEmails and genericEmails using 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.

  1. Enter your search query β€” Type a business type and location into the query field, for example "landscaping companies in Nashville TN" or "accountants near Brooklyn NY". For multiple searches, use searchStringsArray with up to 50 queries.
  2. 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 enrichWithReviews for review counts and opening hours.
  3. 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.
  4. 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: 5 to 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: true is 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

MetricTypical value
Businesses per run1-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 rate60-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

QueryBusinesses foundWith websitesEmails foundPersonal emails
"Dentists in Austin TX"3026189
"Roofers in Dallas TX"50382511
"Marketing agencies in Miami FL"2018137
"HVAC contractors in Denver CO"40312210

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

ParameterTypeRequiredDefaultDescription
querystringNo*β€”Google Maps search query combining a business type and location, e.g. "plumbers in Chicago"
searchStringsArrayarrayNo*β€”Array of up to 50 Google Maps search queries for batch processing
maxResultsintegerNo20Maximum businesses to extract per query (1-120)
languagestringNo"en"Language code for Google Maps results, e.g. "en", "es", "de"
enrichWithReviewsbooleanNofalseVisit each listing's detail page for review counts, opening hours, and plus codes. Adds ~10 seconds per listing.
scrapeWebsitesbooleanNotrueVisit each business website to extract emails, phones, and social links
crmPushstringNo"none"Push leads to CRM after extraction. Options: "none", "hubspot", "salesforce", "pipedrive". Requires API credentials.
valuePropositionstringNoβ€”Your product/service description. When provided, generates personalised AI outreach email drafts for high-priority leads.
maxPagesPerSiteintegerNo3Pages 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 searchStringsArray for regional coverage β€” Google Maps caps results at ~120 per query. For statewide campaigns, pass separate city queries in a single run.
  • Lower maxPagesPerSite for 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: false to 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

FieldTypeDescription
businessNamestringBusiness name from Google Maps
addressstring | nullStreet address from Google Maps
categorystring | nullGoogle Maps business category (e.g. "Plumber", "Dentist")
phonestring | nullPhone number from the Google Maps listing
ratingnumber | nullGoogle Maps star rating, 1.0-5.0
reviewsCountinteger | nullTotal Google Maps reviews (requires enrichWithReviews)
websitestring | nullBusiness website URL from Google Maps
googleMapsUrlstring | nullDirect URL to the Google Maps listing
placeIdstring | nullGoogle Maps Place ID in ChIJ format
coordinatesobject | null{ lat, lng } β€” latitude and longitude
openingHoursstring[] | nullHours per day (requires enrichWithReviews)
priceLevelstring | nullPrice level indicator ("$", "$$", "$$$")
plusCodestring | nullGoogle Plus Code for the location
emailsstring[]All deduplicated emails from the business website
personalEmailsstring[]Non-generic emails likely belonging to a person
genericEmailsstring[]Role-based emails: info@, contact@, support@, sales@, etc.
websitePhonesstring[]Phone numbers from the business website
socialLinks.linkedinstring | nullLinkedIn company or personal profile URL
socialLinks.twitterstring | nullTwitter/X profile URL
socialLinks.facebookstring | nullFacebook page URL
socialLinks.instagramstring | nullInstagram profile URL
socialLinks.youtubestring | nullYouTube channel URL
decisionMakerNamestring | nullPersonal contact name discovered for the business
decisionMakerEmailstring | nullVerified work email for the decision-maker
decisionMakerTitlestring | nullJob title of the decision-maker
decisionMakerLinkedInstring | nullLinkedIn profile URL
decisionMakerPhonestring | nullDirect phone number
pagesScrapedinteger | nullWebsite pages scraped; null if scraping disabled
extractedAtstringISO 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.

ScenarioBusinessesCost per businessTotal cost
Quick test5$0.15$0.75
Small batch20$0.15$3.00
Medium batch50$0.15$7.50
Large batch100$0.15$15.00
Enterprise500$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 ApifyClient
client = 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 run
curl -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.

StepWhat happens
1. Maps searchSearches Google Maps for each query, scrolling through results and extracting business data from listing cards.
2. Website contact scrapingVisits each business website, prioritising contact and about pages. Extracts emails using multi-pass detection, plus phone numbers and social media links.
3. Email verificationEvery extracted email is checked for deliverability via MX and SMTP validation. Results tagged as valid, risky, or invalid.
4. Decision-maker discoveryFor businesses with only generic emails (info@, contact@), automatically searches for personal contacts: names, job titles, work emails, and LinkedIn profiles.
5. Lead scoring and outputEach 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

  1. Include the state abbreviation in your query. "electricians in Portland OR" is more precise than "electricians in Portland" β€” Google disambiguates the city correctly.

  2. 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.

  3. Use searchStringsArray for regional coverage. Google Maps caps results at ~120 per search. For a full state campaign, pass separate city queries in one batch run.

  4. 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.

  5. Decision-maker discovery runs automatically. The actor finds the actual people behind each business β€” names, titles, and LinkedIn profiles β€” for more targeted outreach.

  6. Push directly to your CRM. Set crmPush to hubspot, salesforce, or pipedrive and provide your API credentials. Leads are pushed automatically after extraction.

  7. Focus on personalEmails for cold outreach. Personal emails have higher response rates than generic addresses. The actor pre-classifies these automatically.

  8. 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:

CapabilityHow it works
Email verificationMX + SMTP checks run on every extracted email. Results in emailVerification[] field.
Decision-maker discoveryWhen only generic emails are found, the actor searches for personal contacts via multi-source enrichment.
Lead scoringEvery business scored 0-100 based on email quality, verification, rating, and data richness.
CRM pushSet crmPush to hubspot, salesforce, or pipedrive and provide credentials.
AI outreach draftsProvide your valueProposition and get personalised email drafts for top leads.

For additional processing:

ActorWhen to use
Website Contact Scraper ProRe-scrape JavaScript-rendered business websites that the HTTP-only crawler misses
Bulk Email VerifierFor large campaigns needing deeper SMTP validation beyond built-in checks ($0.005/email)
B2B Lead QualifierAdditional 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) and websitePhones (from the website) are included.
  • Language affects Maps results, not website scraping. The language parameter 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, and websitePhones fields 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 enrichWithReviews is enabled (adds ~10 seconds per listing) or if maxPagesPerSite is 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 maxResults to 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:

  1. Go to Account Settings > Privacy
  2. 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.