Google Maps Leads Scraper: Verified Business Emails avatar

Google Maps Leads Scraper: Verified Business Emails

Pricing

from $1.14 / 1,000 leads

Go to Apify Store
Google Maps Leads Scraper: Verified Business Emails

Google Maps Leads Scraper: Verified Business Emails

Scrape Google Maps for B2B leads with MX-verified emails, phone, address, hours, rating & category. Pay only per verified-email lead; closed/no-email rows are free. Cross-run dedup. Works in Claude, ChatGPT & any MCP agent.

Pricing

from $1.14 / 1,000 leads

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

πŸ“ Google Maps Leads Scraper: Verified Emails, B2B Leads (No Login)

Overview

Google Maps Leads Scraper turns any Google Maps search ("plumbers in Chicago", "dentists in Mumbai", "coffee shops in Austin TX") into a clean list of B2B leads. Each lead carries business name, category, address, phone, website, rating, review count, opening hours, coordinates, and MX-verified email addresses. No Google account, no login, no API key.

The pricing is the point. You are billed only for leads that carry at least one confirmed, deliverable email. Closed businesses, no-website places, no-email rows and previously seen businesses are always free.

βœ… No login required | βœ… No API key | βœ… Pay only for verified-email leads | βœ… MCP-ready for AI agents

Features

Beyond the 120-results ceiling. Drives Google Maps like a person, so you go past the map's per-area cap. MX-verified emails. Every candidate email's domain is DNS-checked before you are ever billed. Cross-run deduplication. Businesses seen in a previous run are skipped automatically. Full field coverage. Name, category, phone, website, hours, coordinates, rating and reviews. Residential proxy by default. No datacenter-IP blocks, no login, no per-seat license.

How it works

The official Google Places API caps search results and Google Maps itself will only display about 120 places per area. This scraper drives Google Maps the way a person would, searching, scrolling, and opening each place. Each query runs as its own search, so across queries you can pull far more than a single map screen would show.

For each business, the actor visits its website and crawls the /contact, /about and /team pages for email addresses. Every email's domain is checked for live DNS MX records before the lead is charged, so a dead domain or a typo address never costs you anything. Emails are also scored by relevance to the business domain, and the best one is surfaced in email, with the full ranked list in all_emails.

🧾 Input configuration

{
"searchQueries": ["coffee shops in Austin TX"],
"maxLeadsPerQuery": 5,
"language": "en",
"verifyEmails": true,
"skipClosedBusinesses": true,
"deduplicateAcrossRuns": true,
"proxyConfig": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

πŸ“€ Output format

{
"place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"name": "Apex Plumbing Co.",
"category": "Plumber",
"address": "412 W Monroe St, Chicago, IL 60606",
"phone": "+1 312 555 0182",
"website": "https://apexplumbingchicago.com",
"email": "service@apexplumbingchicago.com",
"email_status": "valid",
"all_emails": [
{ "email": "service@apexplumbingchicago.com", "status": "valid", "mx_found": true, "confidence": 1.0 }
],
"rating": 4.7,
"review_count": 312,
"hours": { "Monday": "7 AM to 6 PM", "Saturday": "8 AM to 2 PM", "Sunday": "Closed" },
"coordinates": { "lat": 41.8789, "lng": -87.6359 },
"business_status": "OPERATIONAL",
"query_used": "plumbers in Chicago",
"charged": true,
"enrichment_status": "email_verified",
"scraped_at": "2026-07-10T09:14:22.000Z"
}

Every lead record contains these fields:

FieldDescription
🏒 nameBusiness name
🏷️ categoryBusiness category
πŸ“ addressFull address
πŸ“ž phonePhone number
🌐 websiteBusiness website URL
πŸ“§ emailBest verified email address found
βœ… email_statusvalid / catch_all_likely / role_based / unverified
πŸ“‡ all_emailsAll emails found, each with its verification status
⭐ ratingGoogle Maps star rating
πŸ’¬ review_countNumber of Google Maps reviews
πŸ•’ hoursBusiness hours by day
πŸ—ΊοΈ coordinatesLatitude and longitude
🚦 business_statusOPERATIONAL / CLOSED_PERMANENTLY / etc.
πŸ”Ž query_usedSearch query that returned this business
πŸ’³ chargedWhether this result was billed via PPE
πŸ“Š enrichment_statusfull / email_verified / no_email / closed_skipped / extraction_failed
πŸ†” place_idGoogle Maps place ID (used for cross-run dedup)
πŸ•°οΈ scraped_atISO 8601 timestamp

πŸ’Ό Common use cases

B2B outbound prospecting Build clean, geo-targeted lead lists by niche and city, equipped with verified emails. Load them straight into your sequencer with no manual cleanup.

Local marketing agencies Pull potential clients in a vertical, prioritized by rating and review volume. Deliver client-ready lists you can stand behind.

Lead-gen resale Sell leads with confidence because every email cleared an MX check. Cross-run dedup means you never resell the same record twice.

CRM enrichment Refresh phone, website, and email data for local accounts. Keep contact records current without a subscription database.

πŸš€ Getting started

  1. Add one or more search queries. Each becomes its own search (e.g. ["plumbers in Chicago", "dentists in Mumbai"]).
  2. Set max leads per query (default 5) to cap volume and cost per query.
  3. Leave verify emails on so you are only charged for deliverable leads.
  4. Keep skip permanently closed and deduplicate across runs on to avoid paying for dead or repeat businesses.
  5. Click Start, then download the dataset as JSON, CSV, or Excel, or pull it via API or MCP.

FAQ

How do you go past Google's 120-results ceiling? A plain Google Maps search only exposes about 120 places before the scroll ends. This scraper runs each query as its own search and drives the map like a real user, so across queries you can pull far more than a single map screen would show. Use several distinct, local queries for the widest coverage.

When am I charged? Only when a lead has at least one email that passes DNS MX verification (enrichment_status: email_verified). Permanently closed businesses, businesses with no website, businesses with no extractable email, emails that fail MX, and any place already seen in a previous run are all free. The charge event is lead-verified at $0.01 per verified lead ($10 per 1,000).

Do you actually verify the emails? Yes. Regex-harvested strings are not leads. Each candidate email's domain is queried for DNS MX records; addresses on dead domains or NXDOMAIN are marked invalid and never charged.

Does it need a login or API key? No. It reads only public Google Maps and public business-website data through Apify's residential proxy. No Google account, no cookies, no third-party data API.

Can I use it inside an AI agent? Yes. It is exposed as an MCP tool. See below.

Use in Claude, ChatGPT & any MCP agent

https://mcp.apify.com/?tools=themineworks/maps-leads

Or call it programmatically with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/maps-leads').call({
searchQueries: ['coffee shops in Austin TX'],
maxLeadsPerQuery: 5,
verifyEmails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.filter((i) => !i._type));

πŸ› οΈ Complete your Google Maps pipeline

Google Maps Leads Scraper is the enrichment layer of a full Google Maps suite:

Typical flow: google-maps-search-scraper finds the businesses, maps-leads adds verified emails, google-maps-reviews pulls reviews for the same businesses, then website-contact-finder and email-verifier-validator round out and confirm deliverability before you send.