Google Maps Leads Scraper Pro
Pricing
$4.00 / 1,000 results
Google Maps Leads Scraper Pro
Extract business leads from Google Maps with phone numbers, websites, verified emails and social profiles. Filter by rating and review count, enrich from business websites with MX-checked emails, dedupe across searches, and get a per-search summary. Built for local lead generation and outreach lists
Pricing
$4.00 / 1,000 results
Rating
0.0
(0)
Developer
Goldenbios
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract business leads from Google Maps — name, category, address, phone, website, rating, and review count for any search — with contact enrichment included: email addresses pulled from each business's own website (homepage and contact page), an MX deliverability check on every email domain, and social profile links. Duplicates are removed across the whole run by Place ID, and every search ends with a summary item that accounts honestly for what was found, emitted, skipped, and filtered.
Built for lead generation, local SEO prospecting, agency outreach lists, and market research: type searches like plumber in Austin, Texas, get a clean, deduplicated lead list with working contact channels.
Why this actor?
| Google Maps Leads Scraper Pro | Typical contact-details scrapers | |
|---|---|---|
| Price | Flat per lead (see the Pricing tab) | $5–10 per 1,000 places, tiered by your plan |
| Email extraction | Included — homepage + contact page | Billed as a separate per-lead add-on |
| Email verification | MX check included, verdict per email | Billed per verified email |
| Social profiles | Included — 7 networks | Billed per profile |
| Extra event fees | None — no start fee, no per-email or per-social charges | Actor start fee + per-event charges stack up |
| Deduplication | Run-wide, by Place ID — overlapping searches never emit the same business twice | Often per-search only |
| Run summary | Per-search summary: found / emitted / duplicates / filtered + email, phone, website, social coverage | Usually absent |
What it extracts
From Google Maps (no extra cost)
| Field | Description |
|---|---|
title | Business name |
category | Primary category (Plumber, Dentist, Restaurant, …) |
address | Full address as listed on Maps |
phone | Phone number, E.164 form when Google provides it |
website | Website exactly as listed on the Maps profile |
rating / reviewsCount | Google rating and number of reviews |
latitude / longitude | Coordinates |
placeId / fid | Google Place ID (ChIJ…) and feature ID — your dedup and join keys |
googleMapsUrl | Canonical Maps link for the place |
searchedFrom | The query or place URL that found this lead |
From the business website (enrichment, included)
| Field | Description |
|---|---|
emails[] | Addresses found on the homepage and contact page — plain, mailto: links, and obfuscated forms (name [at] domain [dot] com). Each entry carries its source page and its mxValid verdict |
emailSource | Where the first email was found: website or contact-page |
socials{} | First profile URL per network: Facebook, Instagram, LinkedIn, Twitter/X, YouTube, TikTok, WhatsApp (share buttons are skipped, only real profiles) |
Inputs
| Input | Type | Default | Description |
|---|---|---|---|
searchQueries | string list | — | Searches in "term + location" form, e.g. plumber in Austin, Texas. One Maps search returns about 20 places |
placeUrls | request list | — | Individual Google Maps place URLs to resolve into single leads |
maxPlacesPerSearch | integer | 20 | Cap on leads taken from one search |
language | string | en | Language code for results (en, fr, de, es, ar, …) |
region | string | — | Optional 2-letter country code; country-targets Apify Proxy traffic |
minRating | number | — | Only places at or above this rating (places with no rating are excluded when set) |
minReviewsCount | integer | — | Only places with at least this many reviews |
onlyWithWebsite | boolean | false | Skip places with no website |
onlyWithPhone | boolean | false | Skip places with no phone number |
scrapeWebsiteForEmails | boolean | true | Visit each lead's website and extract emails |
verifyEmailMx | boolean | true | MX-check every extracted email's domain |
extractSocialLinks | boolean | true | Extract social profile links during the website visit |
maxWebsitePagesPerLead | integer | 2 | 1 = homepage only, 2 = homepage + contact page |
includeSummary | boolean | true | Emit one summary item per search |
proxyConfiguration | proxy | Apify Proxy RESIDENTIAL | Google blocks datacenter IPs; residential is the prepared default |
Outputs
Three item types share one dataset, told apart by the type field:
lead— one per business, fields as in the tables above.summary— one per search:foundCount,emittedCount,duplicatesSkipped,filteredOutCount, and coverage counterswithEmailCount,withPhoneCount,withWebsiteCount,withSocialsCount, plusstoppedReason(resultsExhausted,maxPlacesReached,searchFailed).error— one per failed search, with the reason; if every search fails, the run itself is marked failed rather than returning an empty success.
mxValid — read it correctly
true— the domain publishes MX records and accepts mail.false— the domain has no MX records; mail to it will bounce.null— verification was off, or the DNS lookup failed; no verdict is claimed. An MX check proves the domain accepts mail — it cannot prove an individual mailbox exists.
Recipes
Local trades list with emails. Queries: plumber in Austin, Texas, electrician in Austin, Texas, hvac in Austin, Texas. Defaults on. Expect roughly 20 leads per query, deduplicated across all three.
High-quality prospects only. Add minRating: 4, minReviewsCount: 50, onlyWithWebsite: true. The summary's filteredOutCount tells you exactly how much the filters cost you.
Wide city coverage. The Maps backend returns about 20 places per query, so split the city: dentist in Manhattan, dentist in Brooklyn, dentist in Queens… Run-wide dedup makes the overlaps free.
One known business. Paste its Maps URL into placeUrls — full place URLs (with the /place/<name>/ segment) resolve most reliably.
Phones only, no enrichment. Turn off scrapeWebsiteForEmails and extractSocialLinks, set onlyWithPhone: true — fastest, cheapest run shape.
FAQ
How many leads does one query return? About 20 — that is what the Maps search backend returns per query. For more, add more specific queries (neighborhoods, adjacent towns, related terms). Dedup is run-wide, so overlapping queries never double-charge you for the same business.
Why are some emails missing? Emails come only from what a business publishes on its own website. Many businesses publish a contact form instead of an address — those leads simply have an empty emails list; the summary's withEmailCount shows your real coverage per search.
What does the MX check actually prove? That the email's domain accepts mail (MX records exist). mxValid: false is a hard signal the address cannot receive mail. It does not verify individual mailboxes.
Do I pay extra for emails or socials? No. Enrichment is included in the flat per-lead price — no per-email, per-verification, or per-profile event fees, and no actor start fee.
Honest limits
- One search returns ~20 places; there is no cursor to page deeper into a single query. Coverage comes from more queries, not bigger caps.
- Emails and socials exist only when the business publishes them on a reachable website; a dead or script-only site yields none, and the lead still carries its full Maps data.
regiontargets the proxy's exit country; it is not a Maps location parameter. Put the location in the query text (term in City, State).- Google occasionally reshapes its payloads; the parser reads typed slots with fallbacks and emits
nullrather than guessing when a field is absent.