Google Maps Leads Scraper - Emails, Phones, Sites avatar

Google Maps Leads Scraper - Emails, Phones, Sites

Pricing

$2.00 / 1,000 scraped places

Go to Apify Store
Google Maps Leads Scraper - Emails, Phones, Sites

Google Maps Leads Scraper - Emails, Phones, Sites

Scrape Google Maps business leads with emails, phones, websites, addresses, ratings & reviews. Deep website crawl finds hidden emails, socials & named contacts. Search by prompt, keyword, or Place ID. No API key.

Pricing

$2.00 / 1,000 scraped places

Rating

0.0

(0)

Developer

Hasnain Nisar

Hasnain Nisar

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Extract business leads from Google Maps at scale — names, addresses, phone numbers, websites, ratings, reviews, and (with deep scan) emails, social-media links, and named contacts harvested straight from each business's website. This Google Maps scraper turns a plain-English prompt like "find 50 dentists in Dubai with email and rating above 4" — or an explicit list of search terms, place URLs, or Place IDs — into a clean, export-ready dataset of local-business leads. The #1 use case: build targeted B2B prospect lists with verified contact details for cold outreach, no Google Places API key required.

What does the Google Maps Leads Scraper Actor do?

The Google Maps Leads Scraper is a tool that searches Google Maps for any business category in any location and returns structured business listings enriched with contact information. It automates the full Maps workflow — running each search, scrolling the results panel, opening every listing's detail pane, and extracting the business metadata — then optionally crawls each listing's website to find the emails and phone numbers Google itself never shows. Built on Playwright + headless Chromium with Apify Proxy support and a built-in natural-language prompt parser, it streams every record to your dataset as it's produced, so partial runs stay useful.

  • Scrape business leads from Google Maps by keyword + location ("plumbers in Brooklyn")
  • Extract emails from Google Maps listings via deep website crawling (homepage + contact pages)
  • Find phone numbers, websites, and addresses for every local business in bulk
  • Harvest social-media links — Instagram, Facebook, LinkedIn, X/Twitter, TikTok, YouTube, WhatsApp
  • Pull named contacts like CEO, Founder, Director, and Owner from business websites
  • Search with a natural-language prompt ("find 100 coffee shops in NYC with email") — AI parses it for you
  • Scrape by Place ID or Google Maps URL for pinpoint, exact-place extraction
  • Filter leads by rating, review count, has-email, has-phone, has-WhatsApp, or no-website
  • Verify discovered emails with a built-in MX-record check (emailValid flag)
  • Extract Google Maps reviews and photos per place alongside the lead data

What data can I extract from Google Maps?

Each record in the dataset can include the following fields:

FieldDescription
nameBusiness name
categoryGoogle Maps business category (e.g. "Coffee shop")
addressFull street address
phonePrimary phone number
websiteBusiness website URL
emailBest email (promoted from deep scan when available)
ratingAggregate star rating (0–5)
reviewsCountTotal number of reviews
hoursOpen/closed status string
plusCodePlus-code-style location identifier
latitude / longitudeGeographic coordinates
googleMapsUrlDirect link to the Maps listing
searchTermThe query that produced this record
deepScanEmailsAll emails found on the website (comma-separated)
deepScanPhonesAll phone numbers found on the website
deepScanSocialsSocial-media links (Instagram, Facebook, LinkedIn, X, TikTok, YouTube, WhatsApp)
deepScanIndividualsNamed contacts (CEO, Founder, Director, Owner)
emailValidMX-validity flag when email verification is enabled
reviewsArray of individual reviews when reviewsLimit > 0
imagesArray of photo URLs when imagesLimit > 0

deepScan* fields are empty strings unless deep scan is enabled. Any field absent on a listing returns an empty string or null — the actor never invents data.

How to scrape leads from Google Maps (step-by-step)

  1. Open the actor and click the Run tab in the Apify console.
  2. Either type a natural-language prompt (e.g. "50 dentists in Dubai with email rating above 4") or fill in Search terms + Location explicitly.
  3. Set Max results per search term to your target lead count.
  4. Toggle Deep scan on to harvest emails, phones, socials, and named contacts from each website.
  5. (Optional) Add filters — minimum rating, has-email, has-phone, no-website — to keep only qualified leads.
  6. Click Start and watch records stream into the dataset in real time.
  7. Export the results to CSV, Excel, JSON, or Google Sheets, or pull them via the Apify API.

Input

FieldTypeDefaultDescription
promptstring""Natural-language description; parsed into query, location, count, filters, and deep scan for slots you leave blank.
searchTermsstring[]["coffee shops"]One or more queries; each searched independently. Ignored when prompt/placeUrls/placeIds are set.
placeCategoriesstring[][]Multiplies with each search term (e.g. "luxury" × ["hotels","restaurants"]).
placeUrlsstring[][]Direct Google Maps URLs to scrape.
placeIdsstring[][]Google Place IDs, converted to Maps URLs automatically.
locationstring"New York"Free-text city/region/country combined as "
country / city / state / county / postalCodestring""Structured geolocation, used only when location is empty.
maxResultsinteger50Target/cap per search term (1–500).
languageenum"en"Two-letter Google hl language code (14 options).
deepScanbooleantrueVisit each website to harvest emails, phones, socials, named contacts.
extractEmailsbooleanfalseLightweight HTTP-only email lookup (used only when deep scan is off).
extractWebsiteFallbackbooleantrueTry /contact when the homepage has no email (quick-lookup only).
verifyEmailsbooleanfalseAdd an emailValid MX-check flag to each email.
reviewsLimitinteger0Reviews to extract per place (0–1000).
reviewsSortenum"newest"newest / mostRelevant / highestRating / lowestRating.
reviewsSincestring""Drop reviews older than this YYYY-MM-DD date.
reviewsKeywordsstring""Keep only reviews containing these comma-separated terms.
includeReviewerDatabooleantrueAttach reviewer name, profile URL, review count.
imagesLimitinteger0Extra photos to extract per place (0–200).
includeImageAuthorsbooleanfalseAdd the uploader name to each image.
noWebsite / hasWebsite / hasPhone / hasEmail / hasWhatsappbooleanfalsePost-scrape contact filters.
skipClosedPlacesbooleanfalseDrop permanently/temporarily closed places.
exactNameMatchbooleanfalseKeep only places whose name contains a search term.
minRating / maxRatingnumbernullRating range filter (0–5).
minReviewsintegernullMinimum review-count filter.
headlessbooleantrueRun browser headless (local debugging only).
proxyobject{ useApifyProxy: true }Apify Proxy config; RESIDENTIAL group recommended.
{
"prompt": "find 100 plumbers in Brooklyn with email rating above 4",
"deepScan": true,
"verifyEmails": true,
"maxResults": 100
}

Output example

{
"name": "Joe's Coffee",
"category": "Coffee shop",
"address": "123 W 56th St, New York, NY 10019",
"phone": "+1 212-555-0142",
"website": "https://joescoffee.example",
"email": "hello@joescoffee.example",
"rating": 4.6,
"reviewsCount": 812,
"hours": "Open ⋅ Closes 8 PM",
"plusCode": "Q263+CV New York, NY",
"latitude": 40.762435,
"longitude": -73.978942,
"googleMapsUrl": "https://www.google.com/maps/place/Joe's+Coffee/data=...",
"searchTerm": "coffee shops",
"deepScanEmails": "hello@joescoffee.example, orders@joescoffee.example",
"deepScanPhones": "+12125550142, +12125550143",
"deepScanSocials": "https://instagram.com/joescoffee, https://facebook.com/joescoffee",
"deepScanIndividuals": "John Doe, Jane Smith"
}

Use cases

  • B2B lead generation — build targeted prospect lists of local businesses with emails and phones for cold outreach.
  • Local agency prospecting — find restaurants, dentists, or plumbers in a metro area, filtered to those with (or without) a website.
  • Sales territory building — compile every business in a category and city with geocoordinates for route planning.
  • Lead enrichment — harvest emails, social profiles, and named decision-makers from business websites to enrich an existing list.
  • Market research — map the density, ratings, and review counts of competitors in any region.
  • Recruitment & partnerships — identify and contact owners and founders across an industry vertical.

Pricing

This actor runs on Apify's usage-based pricing — you pay for the platform compute units and proxy traffic your run consumes, which scales with the number of listings, whether deep scan is on, and how many reviews/images you pull. There's no per-result fee charged by the actor itself. RESIDENTIAL proxy is recommended for reliable Google Maps access. See the actor's Pricing tab for current details.

Why use this Google Maps scraper instead of the Google Places API?

The official Google Places API charges per call, caps fields behind tiered pricing, and never exposes the email addresses or social links that small-business websites publish. This actor needs no API key, scrapes the contact details Google hides, and lets you drive it with a single natural-language prompt or a bulk list of terms, URLs, or Place IDs — then export everything to CSV or Sheets. The trade-off is that it depends on Google Maps' public HTML and proxy quality rather than a paid API contract.

FAQ

This actor collects publicly available business data from Google Maps. Public data scraping is generally permissible, but you are responsible for complying with Google's Terms of Service and applicable laws such as GDPR and CCPA — especially when using the contact data for outreach.

Do I need an API key or Google account?

No Google account, Google Places API key, or any other API key is required. Natural-language prompt parsing is built in and works out of the box.

How much does it cost to scrape Google Maps leads?

Cost depends on your usage — number of listings, deep-scan crawling, reviews, and proxy traffic — billed via Apify's usage-based pricing. There is no fixed per-result charge from the actor.

How many results can I get and how fast?

Google itself stops listing results around the 120 mark per search; split a broad search into narrower neighborhood queries to go beyond that. Deep scan adds roughly 3–8 seconds per listing that has a website, with an early exit once an email and phone are found.

Can I export to CSV, Excel, JSON, or Google Sheets?

Yes. Every record streams to an Apify dataset that you can export to CSV, Excel, JSON, or Google Sheets, or fetch through the Apify API and Python/JavaScript client SDKs.

Will I get blocked, and does it use proxies?

Google rate-limits scrapers from a single IP after a few hundred requests. The actor integrates Apify Proxy — the RESIDENTIAL group is the recommended default to avoid blocks.

How complete are the scraped emails?

Roughly 30–60% of small-business websites expose an email publicly; the rest hide behind contact forms. The actor never fabricates an email — deepScanEmails is simply empty when none is found.

Support

Found a bug or need a tweak? Open an issue on the actor's Issues tab. Custom scraping and lead-generation solutions are available on request.