Google Maps Email Extractor & Lead Finder avatar

Google Maps Email Extractor & Lead Finder

Pricing

from $3.90 / 1,000 lead extracteds

Go to Apify Store
Google Maps Email Extractor & Lead Finder

Google Maps Email Extractor & Lead Finder

Google Maps lead generation scraper for local business leads. Search by keyword and location, then extract names, websites, phone numbers, available emails, ratings, reviews, and enriched contact signals.

Pricing

from $3.90 / 1,000 lead extracteds

Rating

0.0

(0)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

1

Bookmarked

180

Total users

10

Monthly active users

7 days ago

Last modified

Share

What does Google Maps Lead Finder do?

Google Maps Lead Finder is a Google Maps lead generation scraper for finding local business leads by keyword and location. It returns emails, phone numbers, websites, ratings, reviews, and lead scores from Google Maps business listings, then enriches each business by visiting its website to extract public contact emails and social media links — giving you ready-to-use B2B lead lists from any market worldwide.

Why use Google Maps Lead Finder?

  • Complete contact data — extracts phone, website, email, and social links in one run
  • Built-in lead scoring — transparent 0–100 score ranks leads by outreach potential
  • Website enrichment — automatically visits business homepages and contact pages to find emails and social profiles
  • Lead quality filters — filter by minimum rating or review count and require a website, phone, or email for CRM-ready lists
  • Multi-location expansion — combine keywords × locations for city-by-city market scans
  • Smart deduplication — eliminates duplicate businesses across overlapping searches
  • Works worldwide — supports 14 languages and 19 country targets for global prospecting

Who is it for?

  • Sales teams prospecting local businesses for outreach campaigns
  • Marketing agencies building targeted client lists for their verticals
  • Real estate agents finding local service providers and referral partners
  • Researchers studying local business landscapes and market density
  • Recruiters sourcing company contacts and hiring leads in specific cities
  • Entrepreneurs doing competitive analysis and scouting new markets

What data can you extract?

FieldExample
nameRescue Plumbing
categoryPlumber
address3523 N Spaulding Ave, Chicago, IL 60618
cityChicago
phone+1 773-799-8848
websitehttps://www.rescueplumbing.com
emailinfo@rescueplumbing.com
rating4.9
reviewsCount1284
leadScore45
enrichment.socialLinks{ "facebook": "...", "instagram": "..." }
googleMapsUrlFull Google Maps link
scrapedAt2026-02-28T12:00:00.000Z

Plus: placeId, fid, cid, categories, postalCode, countryCode, location (lat/lng), plusCode, businessStatus, priceLevel, mainPhotoUrl, searchQuery, searchLocation, dedupeKey, leadScoreBreakdown, and full enrichment object.

How much does it cost to scrape Google Maps leads?

Google Maps Lead Finder uses pay-per-event pricing — you only pay for what you get.

EventWhat triggers itFREEBRONZESILVERGOLDPLATINUMDIAMOND
startEach actor run$0.0500$0.0475$0.0425$0.0375$0.0300$0.0250
leadEach unique lead returned$0.0060$0.0054$0.0048$0.0039$0.0030$0.0024
email-verifiedEach email verification attempt when verifyEmails is enabled$0.0020$0.0018$0.0016$0.0013$0.0010$0.0008

Real-world cost examples

Examples below assume one run, no opt-in email verification charges, and exclude Apify platform compute costs.

ScenarioLeadsCost (FREE)Cost (GOLD)Cost (PLATINUM)Cost (DIAMOND)
Quick test5$0.08$0.06$0.05$0.04
Small campaign50$0.35$0.23$0.18$0.15
City-wide scan200$1.25$0.82$0.63$0.51
Multi-city project1,000$6.05$3.94$3.03$2.43

Platform compute costs (memory + time) are billed separately by Apify at standard rates.

How to scrape Google Maps leads

  1. Click "Start" on the actor page or use the API.
  2. Enter search queries — business keywords like plumber, dentist pediatric, or yoga studio.
  3. Add locations (optional) — cities or regions like Chicago, IL or Berlin, Germany. Each query is combined with each location.
  4. Set max leads — limit results to control cost and run time.
  5. Run and export — download results as JSON, CSV, or Excel, or connect via API.

Example input

{
"searchQueries": ["plumber"],
"locations": ["Chicago, IL"],
"maxLeads": 5,
"minRating": 4.0,
"minReviews": 100,
"requireWebsite": true,
"requirePhone": true,
"language": "en",
"countryCode": "US",
"includeWebsiteEnrichment": true
}

Input parameters

ParameterTypeDefaultDescription
searchQueriesstring[]requiredBusiness keywords to search on Google Maps (e.g., "plumber", "dentist Berlin"). Each query becomes a separate Maps search.
locationsstring[][]Optional city or region names. When set, each query is combined with each location for comprehensive coverage.
maxLeadsinteger100Maximum number of unique leads to return. Lower values reduce cost and run time.
languagestringenLanguage for Google Maps results. Controls the language of returned business names and addresses.
countryCodestringUSCountry targeting for Google search. Helps return results relevant to the selected country.
minRatingnumber—Only include businesses with at least this Google rating (1.0–5.0). Leave empty to include all.
minReviewsinteger—Only include businesses with at least this many reviews; unknown review counts are excluded.
requireWebsitebooleanfalseOnly include businesses that have a website URL listed on Google Maps.
requirePhonebooleanfalseOnly include businesses with a non-empty phone number.
requireEmailbooleanfalseOnly include businesses where an email was found. Automatically enables website enrichment.
includeWebsiteEnrichmentbooleantrueVisit each business website to extract emails and social media links. Disable to speed up runs when you only need basic listing data.
enrichmentTimeoutSecsinteger15Timeout in seconds when fetching business websites. Increase for slow-loading sites, decrease for faster runs.
verifyEmailsbooleanfalseOpt-in email verification. When enabled, adds an emailVerification field with confidence score, MX status, provider detection, and disposable/role/free-provider flags. Charged at $0.002 per verified email (email-verified event).
verificationLevelstringmxHow deeply to verify each email. format — syntax only. mx — also checks DNS MX records (recommended). smtp — also attempts SMTP handshake (slowest; catch-all/Gmail/M365 results may be inconclusive).
dedupeStrategystringplaceIdAndAddressHow to identify duplicate businesses. placeId uses Google's ID only; placeIdAndAddress also compares addresses for stricter matching.
proxyConfigurationobjectplatform defaultApify proxy settings. Defaults to Apify datacenter proxies; switch to residential only if you see blocks for your specific queries.
debugModebooleanfalseEnable verbose logging for troubleshooting. Shows detailed parser diagnostics in the run log.

Run summary

Every run stores RUN_SUMMARY in the default key-value store. It reports task, discovery, processing, filtering, deduplication, output, and enrichment counters; the effective enrichment setting; and a stopReason of completed, maxLeadsReached, lowYield, or partialTimeout. Summary records are never added to the lead dataset and never trigger a lead charge.

Output example

{
"placeId": "ChIJ0a3bMi0tDogRYzgJSKhi8pQ",
"fid": "0x880e2d2d32db1ad1:0x94f262a4094933063",
"cid": "10743905823605944419",
"name": "Rescue Plumbing",
"category": "Plumber",
"categories": ["Plumber"],
"address": "3523 N Spaulding Ave, Chicago, IL 60618",
"city": "Chicago",
"postalCode": "60618",
"countryCode": "US",
"location": { "lat": 41.9463, "lng": -87.7113 },
"phone": "+1 773-799-8848",
"website": "https://www.rescueplumbing.com",
"rating": 4.9,
"reviewsCount": 1284,
"businessStatus": null,
"googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJ0a3bMi0tDogRYzgJSKhi8pQ",
"searchQuery": "plumber",
"searchLocation": "Chicago, IL",
"dedupeKey": "ChIJ0a3bMi0tDogRYzgJSKhi8pQ|3523 n spaulding ave, chicago, il 60618",
"leadScore": 45,
"leadScoreBreakdown": {
"ratingPotential": 5,
"lowReviewOpportunity": 0,
"hasWebsite": 0,
"hasEmail": 20,
"hasPhone": 10
},
"enrichment": {
"homepageFetched": true,
"emails": ["info@rescueplumbing.com"],
"socialLinks": {
"facebook": "https://www.facebook.com/rescueplumbing",
"instagram": "https://www.instagram.com/rescueplumbing"
},
"contactPageHint": "https://www.rescueplumbing.com/contact"
},
"scrapedAt": "2026-02-28T12:00:00.000Z"
}

Email verification (opt-in)

Set verifyEmails: true to add inline email verification to each lead. This is opt-in and charged at $0.002 per verified email via the email-verified event.

When enabled, the output includes an emailVerification object for each lead that has an email:

{
"emailVerification": {
"email": "info@rescueplumbing.com",
"isValidFormat": true,
"hasMxRecords": true,
"isVerified": false,
"confidenceScore": 35,
"isDisposable": false,
"isFreeProvider": false,
"isRoleAccount": true,
"provider": "google_workspace"
}
}

Confidence score guide

ScoreMeaning
0–20Invalid or very low quality (bad syntax, disposable)
30–44Valid format, no MX records
45MX records found — domain accepts mail
60SMTP accepted but catch-all detected — cannot confirm individual mailbox
95SMTP confirmed — mailbox exists (non-catch-all)

Note on SMTP level: Gmail and Microsoft 365 often return inconclusive results for catch-all detection. confidenceScore: 60 honestly reflects this ambiguity. Use mx (the default) for fast, reliable domain-level validation.

Tips for best results

  • Use specific queries — "dentist pediatric" works better than just "dentist" for targeted leads.
  • Add locations for city-level targeting — combine queries with city names for cleaner geographic results.
  • Start small — test with 5–10 leads before scaling to hundreds. It's cheaper and faster to iterate.
  • Keep enrichment enabled — website enrichment finds emails and social links that Google Maps doesn't show.
  • Increase enrichment timeout for slow regions — some international sites load slowly; try 25–30 seconds.
  • Use placeIdAndAddress dedup (default) — catches duplicate listings that share a Place ID but have different addresses.
  • Check lead scores — higher scores mean more outreach potential (missing website = opportunity, has email = actionable).
  • Export to CSV for CRM import or use the API for automated pipelines.

Integrations

Connect Google Maps Lead Finder with your existing tools and workflows:

  • Google Sheets — Automatically append new leads to a shared spreadsheet for your sales team
  • Zapier — Send new leads to HubSpot, Salesforce, or Mailchimp when a run completes
  • Make (formerly Integromat) — Build multi-step workflows: scrape leads, enrich emails, then push to your CRM
  • Slack — Get notified when new leads are ready for review
  • Webhooks — Send results directly to your own API endpoint for custom processing

See all integrations for the full list.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/google-maps-lead-finder').call({
searchQueries: ['plumber'],
locations: ['Chicago, IL'],
maxLeads: 50,
includeWebsiteEnrichment: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('automation-lab/google-maps-lead-finder').call(run_input={
'searchQueries': ['plumber'],
'locations': ['Chicago, IL'],
'maxLeads': 50,
'includeWebsiteEnrichment': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use with cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~google-maps-lead-finder/runs?token=YOUR_API_TOKEN&waitForFinish=120" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": ["plumber"],
"locations": ["Chicago, IL"],
"maxLeads": 50,
"includeWebsiteEnrichment": true
}'

Use with AI agents via MCP

Google Maps Lead Finder is available as a tool for AI assistants that support the Model Context Protocol (MCP).

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/google-maps-lead-finder"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/google-maps-lead-finder"
}
}
}

Example prompts

Once connected, try asking your AI assistant:

  • "Find all dentists in Austin, TX with their phone numbers and websites"
  • "Get all restaurants within 5 miles of Times Square with ratings above 4 stars"
  • "Search Google Maps for plumbers in London and enrich with email addresses"

Learn more in the Apify MCP documentation.

Data handling, retention, and AI

The Actor processes public Google Maps business-listing data and public business contact details from websites selected by those listings. It sends Maps requests through the user's Apify proxy configuration when available; direct website enrichment does not use an external paid data service. Results, RUN_SUMMARY, and operational logs are stored only in the run's Apify dataset, key-value store, and log, following the user's Apify retention settings. Delete the run and its storages through Apify Console or API when no longer needed. The Actor does not use an AI model and does not send input or scraped data to an AI provider.

Legality

This tool analyzes publicly accessible web content. Automated analysis of public web resources is standard practice in SEO and web development. Always respect robots.txt directives and rate limits when analyzing third-party websites. For personal data processing, ensure compliance with applicable privacy regulations.

FAQ

How many leads can I extract per run? Set maxLeads to control how many unique businesses you get. Actual output is bounded by the 30-minute run timeout, market density, upstream availability, and enabled filters; typical runs extract 5–500 leads.

Does it extract email addresses? Yes. When includeWebsiteEnrichment is enabled (default), the actor visits each business homepage and up to three ranked same-site contact/about/team pages, then returns a deduplicated set of emails and social profiles. Setting requireEmail: true automatically enables this required enrichment even if includeWebsiteEnrichment was sent as false.

What is the lead score? A 0–100 score based on the business profile. Businesses with lower ratings, fewer reviews, a website but no email, and a phone number score higher — they're better outreach targets.

Can I search multiple cities in one run? Yes. Add multiple entries to the locations field. Each search query is combined with each location automatically.

Does it work outside the US? Yes. The actor supports 14 languages and 19 country targets. Set the language and countryCode fields to match your target market.

How fast is it? A typical run extracting 20 leads with enrichment takes 2–4 minutes. Speed depends on the number of leads, whether enrichment is enabled, and website response times.

Can I use it with my CRM? Yes. Export data as CSV for direct import, or use the Apify API to send leads to any CRM, Google Sheets, or automation platform.

What's the difference between the two dedupe strategies? placeId deduplicates by Google's unique Place ID only. placeIdAndAddress (default) also compares normalized addresses, catching edge cases where the same business has different Place IDs.

Why am I getting fewer leads than expected? Google Maps results depend on your keyword specificity and location. Try broader terms (e.g., "restaurant" instead of "italian restaurant") or larger regions. Rating, review-count, website, phone, and email filters can legitimately produce fewer rows than maxLeads; inspect RUN_SUMMARY to see filtering and stop diagnostics.

Why are some emails missing even with enrichment enabled? Not all business websites publish email addresses. Some use contact forms instead. This actor checks the Google Maps listing and public website pages it can fetch; it does not fill out forms or guarantee a contact email for every business. For deeper follow-up, pass returned website URLs to Website Contact Finder, then verify discovered addresses with Email Verifier, Finder & Deliverability Checker.

The run is slow -- how can I speed it up? Disable includeWebsiteEnrichment if you only need Google Maps listing data. Reduce enrichmentTimeoutSecs to skip slow-loading sites faster. Lower maxLeads to finish sooner.

Can I run this on a schedule? Yes. Use Apify Schedules to run the actor automatically on a daily, weekly, or custom cadence. Combine with a Google Sheets integration to append new leads to a shared spreadsheet.