LeadProof — Google Maps Email Scraper avatar

LeadProof — Google Maps Email Scraper

Pricing

from $25.00 / 1,000 verified contacts

Go to Apify Store
LeadProof — Google Maps Email Scraper

LeadProof — Google Maps Email Scraper

Turn a Google Maps search into verified business emails. Crawl, extract, and verify deliverability — pay only per verified-valid contact.

Pricing

from $25.00 / 1,000 verified contacts

Rating

0.0

(0)

Developer

Danny Pfledderer

Danny Pfledderer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

2 days ago

Last modified

Share

LeadProof — Google Maps Email Scraper with Verified Deliverability

Paste a Google Maps search (e.g. "dentists in Miami") or a list of business websites, and get back verified-deliverable contact emails. Maps scraping, site crawling, and email verification run as one pipeline — no separate Maps scraper to wire up first.

You pay only when we confirm the email is actually deliverable.


The pricing promise

One charge per verified-deliverable contact (verified_contact pay-per-event). No charge for:

  • pages crawled or businesses processed
  • duplicate emails (we deduplicate per business automatically)
  • emails the verifier couldn't confirm as deliverable (risky, invalid, unknown)
  • vendor / placeholder / SaaS-tooling addresses (filtered before they reach your dataset)
  • off-domain emails we couldn't confirm actually belong to the business

In plain English: if we don't confirm it's a real, deliverable email at this business, you don't pay for it.


In our testing

In one 69-business sample from Fort Lauderdale, FL (restaurants, spas, salons, dental, local services), compared to a leading existing contact-info actor on the Apify Store:

  • ~2× businesses with a found email
  • 3× verified named human contacts (22 vs. 8)
  • ~19% lower cost per verified contact
  • 0 duplicate emails per business (vs. ~0.9 duplicates/business in the comparison)

Both tools were run on the identical business list and scored the same way; results vary by region and vertical. These numbers describe where LeadProof performs well today on the SMB segment we target — not a guarantee for every input.


Where it's strongest

LeadProof is built for the local-SMB long tail — the segment where Google Maps has dense, useful listings and where contact emails actually live on the public website:

  • Restaurants, cafes, bars
  • Salons, spas, barbershops
  • Dental, chiropractic, massage, wellness
  • Gyms, studios, fitness
  • Local trades (HVAC, plumbing, electricians, landscaping)
  • Independent retail and services

We crawl the actual business site (homepage, /contact, /about, /team) and decode common obfuscation patterns (Cloudflare email-protection, "info [at] example") — which is where most SMB B2B contact emails actually live.

Where it's a weaker fit

Large professional firms — enterprise law, big-4 accounting, top-tier consultancy, big medical groups — often gate contacts behind submission forms and don't publish email addresses publicly. LeadProof, like any email scraper, is not the right tool for that segment. We tell you upfront so you can pick the right tool for your use case instead of being disappointed.


How it works

  1. Input a Google Maps search ("dentists in Miami") or a list of websites you already have.
  2. Maps search runs against compass/crawler-google-places to turn queries into real businesses with names, categories, and websites.
  3. Crawl + extract. For each business site we visit the homepage and likely contact pages, decode obfuscated addresses, and filter out SaaS/vendor/placeholder emails so they never reach your dataset.
  4. Verify. Each remaining email runs the gauntlet — syntax → role → disposable → MX → catch-all probe → MillionVerifier API call (with retries on transient failures). Only emails confirmed deliverable trigger a charge.

Input

FieldTypeDefaultDescription
searchTermsstring[]Google Maps queries, e.g. ["dentists in Miami"]. Include city/region for accurate geolocation.
startUrlsstring[]Business website URLs to enrich directly. Use this when you already have a list.
maxResultsinteger100Total businesses to process this run. Also caps the Maps source so you don't over-pay for places you won't use.
verifierApiKeystring (secret)Optional. Bring your own MillionVerifier key — see below.
maxVerificationsinteger1000Cost-guard cap on verification API calls per run. Ignored when you bring your own key.

At least one of searchTerms or startUrls is required. Both can be supplied — Maps results are layered on top of startUrls.


Output

Every business produces at least one dataset row, so failures never silently vanish. All rows share the same schema:

{
"business_name": "Mark Hamburger Law",
"website": "https://markhamburgerlaw.com",
"domain": "markhamburgerlaw.com",
"category": "Attorney",
"status": "ok",
"error_detail": null,
"email": "mark@markhamburgerlaw.com",
"source_page": "https://markhamburgerlaw.com/contact",
"found_via": "mailto",
"bucket": "valid",
"confidence": 95,
"reason": "api_deliverable",
"match": "same_domain",
"role": false,
"disposable": false,
"mx_found": true,
"catch_all": false,
"charged": true
}

status — what happened to this business:

  • ok — contact row; an email was extracted and verification ran
  • no_website — business had no website to crawl (common from Maps results)
  • unreachable — DNS / SSL / connection failure
  • http_error — site responded but with HTTP ≥ 400 (code in error_detail)
  • no_emails_found — site crawled fine but yielded no usable emails
  • verification_skipped_cap — email was found but maxVerifications was reached; re-run with a higher cap or your own key

bucket — the verification verdict for contact rows:

  • valid — confirmed deliverable → charged
  • risky — catch-all domain, or off-domain valid lead — not charged
  • invalid — confirmed not deliverable — not charged
  • unknown — verifier inconclusive or transient outage — not charged

match — relationship of the email's domain to the business's website:

  • same_domain — strongest signal (email at the business's own domain)
  • free_provider — strong signal (gmail / yahoo / outlook etc., common for SMBs)
  • off_domain — different domain; verified-valid off-domain leads are demoted to risky and not charged (wrong-owner protection)

To pull just the billable, verified contacts: WHERE status = 'ok' AND bucket = 'valid'.


Bring your own MillionVerifier key (optional)

By default, leave verifierApiKey empty: LeadProof uses our verification key and the verification cost is already factored into the per-verified-contact price. No second account, no setup.

For power users who'd rather use their own MillionVerifier credits:

  • Paste your key into verifierApiKey. It's stored as a secret — masked in the Console, never logged, never echoed into the dataset.
  • The maxVerifications cap is automatically disabled when you supply your own key — you're paying for the credits.

Tips

  • Include the city, region, or neighborhood in Maps search terms for accurate geolocation ("dentists in Miami Beach", not just "dentists").
  • Mix searchTerms and startUrls when you have both a Maps query and a hand-picked list — they're combined.
  • Re-run with a higher maxVerifications if you see verification_skipped_cap rows — those leads were crawled but not verified yet.
  • Failures get an explanation row in the dataset (status and error_detail), so you always know what happened — never a silent drop. The difference between "the actor returned 47 contacts" and "the actor returned 47 contacts and explained the other 23 attempts."