Google Maps Lead Scraper: Email, Phone number, Fast & Lean avatar

Google Maps Lead Scraper: Email, Phone number, Fast & Lean

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Google Maps Lead Scraper: Email, Phone number, Fast & Lean

Google Maps Lead Scraper: Email, Phone number, Fast & Lean

Fast Google Maps lead scraper. Searches Google Maps for businesses matching your queries, fetches full contact details (website, phone, email, socials), and streams leads to the dataset. Uses Apify residential proxy on the platform and direct connection locally.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

CodeNodeTools

CodeNodeTools

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

4

Monthly active users

10 days ago

Last modified

Share

A fast, lightweight Google Maps lead scraper that turns any search query — "plumbers in Chicago", "dentists in Berlin", "coffee shops in Amsterdam" — into a clean list of business leads with email, phone number, website, rating, and social links. No browser, no database, no reviews scraping. Just HTTP requests, streamed straight to your dataset as they're found.

If you've been searching for lead generation tools — a Google Maps extractor that's actually fast, or a straightforward answer to how to get leads from Google Maps without paying for a bloated browser-automation tool — this Actor is built for exactly that job.

What is this Google Maps Lead Scraper?

This Actor is a Google Maps lead extractor: give it one or more search queries, and it searches Google Maps, opens each result's business listing, and pulls out everything you'd normally have to copy-paste by hand — name, address, phone number, website, star rating, business status, and (when available) a contact email and social links.

It's built for local lead generation, sales prospecting, and market research — not for scraping reviews or building a directory site. That focus is what keeps it fast: no browser rendering, no unnecessary pages, no reviews pagination. Just the request-based endpoints Google Maps itself uses, called directly.

How to get leads from Google Maps in 3 steps

  1. Add your search queries. Type in what you're looking for and where — e.g. "roofing contractors in Austin", "hair salons in Manchester". Add as many queries as you want; each one is scraped independently with its own results budget.
  2. Set your filters (optional). Cap results per keyword, filter by star rating range, business status (operational / temporarily closed / permanently closed), and choose whether to drop leads with no way to contact them.
  3. Run the Actor. Leads stream into your Apify dataset in real time as they're scraped — export to CSV, JSON, Excel, or Google Sheets, or pull them via the API into your CRM.

What data can this Google Maps lead extractor collect?

For every business, you get:

  • Contact info: phone number, email (extracted from the business's own website when Google Maps doesn't already list one), and social media links
  • Identity: business name, category/type, Google Maps place ID
  • Location: full address, latitude/longitude
  • Trust signals: star rating, review count, business status (open, temporarily closed, permanently closed)
  • Web presence: website URL

This makes it a genuinely useful Google Maps leads finder for agencies, freelancers, and sales teams who need a targeted list of local businesses to reach out to — not just a scrape of everything Google Maps happens to know.

Why use this Google Map lead generator

  • Fast — no browser, no page rendering. Pure HTTP requests to Google Maps' own search and place-detail endpoints, run with several workers in parallel.
  • 📮 Built for outreach — email extraction and a "drop leads with no contact info" filter mean your dataset is ready for a cold email or calling campaign, not full of dead-end listings.
  • 🎯 Precise filtering — star rating range, business status, and per-keyword result caps, so you only pay for and store leads that actually match your criteria.
  • 🌱 Genuinely lean on bandwidth — this matters more than it sounds. A typical browser-based Google Maps scraper pulls down megabytes of JavaScript, images, and fonts per page. This Actor doesn't load a browser at all, and on top of that:
    • Business websites (fetched only to find a contact email) are streamed and cut off the instant an email is found, or after a small byte cap — not downloaded in full.
    • Known social/aggregator domains (Facebook, Instagram, LinkedIn, etc.) are skipped entirely when they show up as a "website," since they're JS-heavy pages that never contain a plain contact email anyway.
    • Non-HTML responses (PDFs, images) are detected from the response headers and abandoned before a single byte of the body is downloaded.
    • If the same website shows up across multiple locations — common for franchises and chains — it's only ever fetched once for the whole run.
    • Duplicate businesses across your different search queries are de-duplicated by their Google Maps place ID before any detail page is fetched, not after.
  • 🔁 Streaming, not batch — leads are pushed to your dataset continuously as they're scraped, so you can start working a list before a long run even finishes.

As far as lead generation tools: Google Maps extractor options go, most either drag in a full browser (slow, expensive) or scrape everything indiscriminately (noisy, unfiltered). This one aims to just get you a clean, contactable list, quickly.

Input

FieldTypeDefaultDescription
queriesstring[]— (required)Google Maps search queries, e.g. ["restaurants in Paris", "dentists in Berlin"].
maxResultsPerKeywordint50Max places to scrape per query. Leave empty for unlimited.
extractEmailsbooltrueVisit business websites to find a contact email when Google Maps doesn't already list one.
minRatingfloatDrop places rated below this (1–5).
maxRatingfloatDrop places rated above this (1–5).
businessStatusstring[]all threeKeep only OPERATIONAL, CLOSED_TEMPORARILY, and/or CLOSED_PERMANENTLY listings.
dropIfNoContactbooltrueDrop leads with no email, phone, or social link — nothing worth adding to an outreach list.
workersint4Concurrent HTTP workers (1–32).
lang / glstringen / usGoogle Maps language and country/region code.
minDelayfloat2.0Minimum seconds between requests per worker.
keepExtraFieldsboolfalseKeep heavier fields (photos, menu, about) in the output.

Output example

Each dataset item is one lead:

{
"query": "restaurants in Paris",
"place_id": "0x47e66e1f06e2b75f:0x61d70c42f18c2b3b",
"name": "Le Bouillon Chartier",
"rating": 4.3,
"review_count": 12450,
"phone": "+33 1 47 03 36 79",
"email": "contact@bouillonchartier.com",
"website": "https://www.bouillonchartier.com",
"social_links": [{ "platform": "facebook", "url": "https://..." }],
"address": "7 Rue du Faubourg Montmartre, 75009 Paris",
"business_status": "OPERATIONAL",
"primary_type": "French restaurant",
"coordinates": { "lat": 48.8718, "lng": 2.3432 },
"categories": ["French restaurant", "Restaurant"]
}

The dataset ships with two ready-made views: All leads, and Leads with email or phone for a quick filtered export.

Pricing

Check the Pricing tab on this Actor's page for the exact rate. In general, cost scales with how much you actually scrape — more queries, a higher maxResultsPerKeyword, and extractEmails turned on will all use more Apify platform compute. Keeping keepExtraFields off and using rating/status filters to narrow your results are the easiest ways to keep a run cheap, since you're only paying to process leads you actually want.

Proxy behavior

  • On the Apify platform: automatically uses Apify's residential proxy, so your requests come from real residential IPs.
  • Running locally: no proxy is used — a direct connection — so you can develop and test without spending residential proxy traffic.

FAQ

Is this legal? This Actor only reads publicly visible Google Maps listing data. You're responsible for how you use the resulting leads — always follow applicable data-protection laws (e.g. GDPR, CAN-SPAM) when contacting people, and Google's own Terms of Service regarding automated access.

Does it get emails for every lead? No — only when a business's own website has a visible contact email (in a mailto: link or plain text on the page). Email extraction is best-effort, not guaranteed, since not every business publishes one.

Can I search multiple cities or categories at once? Yes — add as many queries as you want to the queries list. Each one gets its own maxResultsPerKeyword budget and results stream in as they're found, so you don't need to run the Actor once per query.

How is this different from a browser-based Google Maps scraper? No browser means no rendering overhead, no screenshots, no wasted bandwidth on JavaScript/CSS/fonts/images your data doesn't need — just the underlying requests. That generally makes it faster and cheaper to run for the same number of leads.

Why did I get fewer leads than my maxResultsPerKeyword? Your filters (minRating, maxRating, businessStatus, dropIfNoContact) are applied per place as it's scraped. If a query simply doesn't have enough matching businesses on Google Maps, you'll get fewer than the cap — that's Google Maps' own result count, not a limitation of the Actor.