Google Maps Business Leads Scraper (Email, Phone...)
Pricing
from $1.69 / 1,000 place scrapeds
Google Maps Business Leads Scraper (Email, Phone...)
Scrape business listings from Google Maps and enrich with emails, phones, and social profiles from each company website. Lead generation in one click.
Pricing
from $1.69 / 1,000 place scrapeds
Rating
4.8
(5)
Developer
LurkAPI
Maintained by CommunityActor stats
23
Bookmarked
2.1K
Total users
181
Monthly active users
9.5 hours
Issues response
5 days ago
Last modified
Categories
Share
Find local businesses on Google Maps and get their contact details, all in one click. Phone numbers, emails, social profiles, opening hours, and more, ready for sales outreach.
π― What it does
Give it a search keyword and a location, and it will:
- Search Google Maps for matching businesses (restaurants, plumbers, dentists, anything you can search for).
- Pull every public detail Google shows about each business: name, address, phone, website, rating, reviews, hours, popular times, price range, photos, and more.
- Visit each company website to find emails, secondary phone numbers, and links to Facebook, Instagram, LinkedIn, Twitter / X, TikTok, YouTube, and Pinterest.
- Return everything as a clean dataset you can export to CSV, Excel, JSON, or push straight into your CRM.
π How to use it
Step 1: Configure input
- Search terms: One keyword per line. Example:
coffee shop,dentist,plumber. - Location: City, region, or country. Example:
New York, NY,London, UK,United States. - Max places per search term: Cap how many unique results come back per keyword. For requests above Google's single-query ceiling, the actor automatically expands saturated searches across relevant subregions until it reaches your cap or exhausts useful coverage.
Optional:
- Google Maps URLs: Paste search or place URLs directly to scrape them.
- Filters: Minimum rating, minimum review count, only places with a website. Filtered places are not charged.
- Output Fields: Toggle each field to trim row size. Disabling fields you do not need can dramatically reduce CSV size for large runs.
Step 2: Run it
Click Start and wait. Results stream into the Output tab as each search term completes, so you do not have to wait for the whole run.
Step 3: Get your results
Open the Output tab. Each row is one business. The status field shows whether the lookup succeeded; everything else is the data.
Key fields:
| Field | What it is |
|---|---|
status | Always present. Success on a clean row, or a human-readable error message. |
placeId | Google's permanent identifier for this business. Use this to dedupe across runs. |
title, category, address, city, state, country | Identity and location. |
phone, website, email | Primary contact details. |
phones, emails | All phones and emails found via the website crawl. |
facebook, instagram, linkedin, twitter, tiktok, youtube, pinterest | Social profile links. |
rating, reviewCount, priceRange | Quality and pricing signals. |
openingHours, popularTimes, currentStatus | When the business is open and how busy it gets. |
hotelStars, hotelPrice, hotelCheckInDate, hotelCheckOutDate | Hotel-only. Star rating (1β5), nightly display price, and Google's suggested check-in / check-out. null for non-hotels. |
googleMapsUrl | Direct link back to the listing on Google Maps. |
π€ Use it from AI clients (MCP)
Call this actor from Claude Code, Claude Desktop, Codex, Cursor, and any other client that speaks the Model Context Protocol. Once configured, prompt in plain English β "Find 20 dentists in Los Angeles with emails and phone numbers" β and your assistant runs the scraper and returns results.
Every example below needs an APIFY_TOKEN. Grab one from console.apify.com/settings/integrations.
Claude Code
claude mcp add apify -- npx -y @apify/actors-mcp-server \--actors LurkAPI/google-maps-business-leads-scraper
Then export the token in the same shell: export APIFY_TOKEN=your-token.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{"mcpServers": {"apify": {"command": "npx","args": ["-y", "@apify/actors-mcp-server","--actors", "LurkAPI/google-maps-business-leads-scraper"],"env": { "APIFY_TOKEN": "your-token" }}}}
Codex CLI
Edit ~/.codex/config.toml:
[mcp_servers.apify]command = "npx"args = ["-y", "@apify/actors-mcp-server","--actors", "LurkAPI/google-maps-business-leads-scraper"]env = { APIFY_TOKEN = "your-token" }
Cursor
Edit ~/.cursor/mcp.json:
{"mcpServers": {"apify": {"command": "npx","args": ["-y", "@apify/actors-mcp-server","--actors", "LurkAPI/google-maps-business-leads-scraper"],"env": { "APIFY_TOKEN": "your-token" }}}}
Anything else that speaks MCP β same npx @apify/actors-mcp-server --actors LurkAPI/google-maps-business-leads-scraper command, wrapped in whatever config shape your client expects.
π° Pricing
Pay-per-result. The base scrape is $1.89 per 1,000 places returned. Optional add-ons charge only when they return a decisive positive result; misses cost nothing.
Base
| Item | Price |
|---|---|
| Place scraped | $1.89 / 1,000 |
Add-ons (pay only on a successful match)
| Add-on | Charges when | Price |
|---|---|---|
| Detect Google Ads activity | A live Google Ads advertiser is matched | $1.00 / 1,000 |
| Detect Meta (Facebook / Instagram) Ads activity | A live Meta advertiser is matched | $1.00 / 1,000 |
| LinkedIn company enrichment | A LinkedIn company page is enriched | $1.00 / 1,000 |
| Company registry enrichment | An official registry record is matched | $2.00 / 1,000 |
| Find the legal entity behind the listing | A legal entity is decisively resolved | $2.00 / 1,000 |
| Validate primary email + classify provider | An email is validated (MX + provider) | $0.50 / 1,000 |
π‘ Good to know
- Not every business has a website, and not every website lists an email. Coverage depends on the business owner's web presence.
- Phone numbers from Google Maps are clean E.164 format (
+13239923635). Phones discovered on websites are best-effort and may include uncertain matches. - Email validation is optional. Enable Validate primary email to check the domain, detect disposable addresses, and identify the email provider.
- Google Maps exposes about 120 results per individual query. When you request more, the actor automatically searches relevant neighborhoods or cities in bounded waves, deduplicates places, and stops at your requested cap. Very sparse keywords can still return fewer results when Google has no additional matches.
- Data is stored in your Apify dataset. Retention depends on your Apify plan.
β FAQ
Why did some places not get an email?
Either the business has no website, the website does not list a public email, or the website blocked the crawl. This is the normal floor of any Google Maps email scraper. For better coverage, layer a dedicated email finder over the websites we return.
Can I scrape more than 120 places per keyword?
Yes. Request more than 120 and the actor automatically expands a saturated search across relevant neighborhoods or cities, deduplicating results as it goes. Coverage still depends on what Google Maps exposes for your keyword and region.
How long are the results stored?
They are stored in your Apify dataset. How long they are kept depends on your Apify plan.
Is this legal?
Public data on Google Maps is generally considered fair game for collection. You are responsible for following Google's Terms of Service, GDPR, CCPA, and any other applicable laws in your jurisdiction. Do not contact people on this list in ways that violate anti-spam laws (CAN-SPAM, CASL, etc.).
π Other tools you might like
- Google Maps Reviews Scraper β pull the full review stream from any place: text, rating, date, author, photos, filterable by rating / date / keyword.
- Google Maps Photos & Videos Scraper β every photo and video for a place, categorized as Menu, Food & drink, Vibe, By owner, Latest, Videos, and Street View.
- Google Ads Scraper β see which ads any advertiser is running on Google.
- Google Shopping Ads Scraper β pull all sponsored Shopping listings for any keyword.
βοΈ Disclaimer
This tool is for personal, research, and educational use. You are responsible for complying with Google's Terms of Service and applicable laws in your jurisdiction. The developer is not liable for misuse. Data availability depends on Google Maps at run time.
Keywords: google maps scraper, business leads, lead generation, email finder, phone finder, contact extractor