Google Maps Leads Extractor
Pricing
from $3.50 / 1,000 lead extracteds
Google Maps Leads Extractor
Extract business leads from Google Maps - name, address, phone, website, email, rating, reviews, hours. Search by keyword + location. Pay per lead.
Pricing
from $3.50 / 1,000 lead extracteds
Rating
0.0
(0)
Developer
Tugelbay Konabayev
Actor stats
0
Bookmarked
5
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Google Maps Leads Extractor — Business Contact Details at Scale
Extract business leads from Google Maps — name, address, phone, website, email, social media, rating, reviews, opening hours, and GPS coordinates. Search by keyword + location, or scrape specific Google Maps URLs. Built for sales teams, marketing agencies, and AI agents.
Cheaper than Google Places API. More data than free alternatives. Pay per lead.
What does it do?
Enter a search query like "restaurants in New York" or "plumber in Chicago" and the actor will:
- Open Google Maps and search for businesses matching your query
- Scroll through results to load all available businesses (up to 500)
- Click each business to extract full details: name, address, phone, website, rating, reviews, hours, GPS coordinates
- Optionally visit each business website to find email addresses and social media links
- Return everything as clean, structured JSON — ready for your CRM, outreach tool, or AI pipeline
No API keys. No complex setup. Just enter your search query and get leads.
Why use this over alternatives?
| Feature | Google Places API | Free Scrapers (20K+ users) | This Actor |
|---|---|---|---|
| Price | $17/1K requests | Free (compute only) | $5/1K leads (PPE) |
| Email extraction | No | No | Yes (from business websites) |
| Social media links | No | No | Yes (6 platforms) |
| Phone numbers | Yes (limited) | Sometimes | Yes |
| Opening hours | Basic | Basic | Full schedule |
| Reviews count | Yes | Sometimes | Yes |
| GPS coordinates | Yes | Sometimes | Yes |
| AI/MCP compatible | API only | No (free tier) | Yes (PPE pricing) |
| Setup time | API key + billing account | 5 min | 5 min |
| Address parsing | Raw string | Raw string | City, state, ZIP auto-parsed |
| Rate limits | Strict quotas | None | Managed concurrency |
vs. Google Places API ($17/1K requests)
Google Places API costs $17 per 1,000 requests and requires API keys, billing accounts, and quota management. It does NOT include email addresses or social media links. This actor extracts more data at a lower cost — $5 per 1,000 leads including email and social — with zero setup.
vs. Free Google Maps scrapers on Apify Store
The most popular Google Maps scraper (compass/crawler-google-places, 20K+ monthly users) is free but only charges for platform compute. However:
- It does not extract emails from business websites
- It does not find social media links (Facebook, Instagram, etc.)
- It is not MCP/AI compatible (no PPE pricing = AI agents cannot pay per task)
- It cannot be called on-demand by AI agents
This actor adds the data that matters most for lead generation: email + phone + social media + PPE pricing.
vs. Manual research
A human researcher can find ~20 leads per hour manually. This actor extracts 50-100 leads per minute with full contact details. That is 3,000x faster than manual research.
Features
- Search Google Maps by keyword + location (e.g., "plumber in Chicago IL")
- Scrape specific Google Maps place URLs directly
- Extract 20+ fields per business
- Email extraction — visits business websites to find contact email addresses
- Social media discovery — finds Facebook, Instagram, Twitter/X, LinkedIn, YouTube, TikTok
- Address parsing — automatically extracts city, state, ZIP code, country
- GPS coordinates — latitude and longitude for every business
- Auto-scroll pagination to load all search results
- Deduplication — no duplicate leads in output
- Concurrent scraping with configurable parallelism (1-10 pages)
- PPE pricing — pay only for successfully extracted leads
- First 100 leads free to evaluate
Input examples
Search for pizza places in Manhattan
{"searchQueries": ["pizza in Manhattan"],"maxItems": 50,"extractEmails": true,"extractSocialMedia": true}
Verified result (real test, March 2026):
- Joe's Pizza Broadway | (646) 559-4878
- NY Pizza Suprema | (212) 594-8939
- Angelo's Coal Oven Pizzeria | (212) 333-4333
Multiple service queries in one city
{"searchQueries": ["plumber in Chicago IL","electrician in Chicago IL","HVAC repair in Chicago IL"],"maxItems": 100,"extractEmails": true,"extractSocialMedia": true}
Scrape specific Google Maps URLs
{"placeUrls": [{"url": "https://www.google.com/maps/place/Joe's+Pizza/@40.7303,-74.0021,17z/"}],"extractEmails": true,"extractSocialMedia": true}
Fast extraction (Google Maps data only, no website visits)
{"searchQueries": ["dentist Los Angeles CA"],"maxItems": 200,"extractEmails": false,"extractSocialMedia": false}
International search
{"searchQueries": ["restaurant in Tokyo"],"maxItems": 50,"language": "ja","extractEmails": true}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | Array | - | Search terms with location (e.g., ["restaurants in New York"]) |
placeUrls | Array | - | Direct Google Maps place URLs to scrape |
maxItems | Integer | 100 | Maximum results per search query (1-500) |
extractEmails | Boolean | true | Visit business websites to find email addresses |
extractSocialMedia | Boolean | true | Find social media links on business websites |
language | String | "en" | Google Maps interface language (ISO 639-1 code) |
maxConcurrency | Integer | 5 | Number of parallel browser pages (1-10) |
proxyConfiguration | Object | Apify proxy | Proxy settings for website email extraction |
Output format
Each lead in the dataset contains:
| Field | Type | Description |
|---|---|---|
name | String | Business name (e.g., "Joe's Pizza Broadway") |
category | String | Business category (e.g., "Pizza restaurant") |
address | String | Full street address |
city | String | Parsed city name |
state | String | Parsed state/province code (e.g., "NY") |
postalCode | String | Parsed ZIP/postal code (e.g., "10014") |
country | String | Parsed country name |
phone | String | Phone number (e.g., "(646) 559-4878") |
website | String | Business website URL |
email | String | Email found on business website (if extractEmails enabled) |
socialMedia | Object | Social media links found on website (Facebook, Instagram, etc.) |
rating | Number | Google Maps rating (1.0-5.0) |
reviewsCount | Integer | Number of Google reviews |
priceLevel | String | Price level ($, $$, $$$, $$$$) |
openingHours | String | Opening hours summary |
latitude | Number | GPS latitude coordinate |
longitude | Number | GPS longitude coordinate |
placeUrl | String | Full Google Maps URL for this business |
searchQuery | String | The search query that found this business |
extractedAt | String | Extraction timestamp (ISO 8601) |
Example output (verified real data)
{"name": "Joe's Pizza Broadway","category": "Pizza restaurant","address": "1435 Broadway, New York, NY 10018","city": "New York","state": "NY","postalCode": "10018","country": null,"phone": "(646) 559-4878","website": "https://www.joespizzanyc.com","email": "info@joespizzanyc.com","socialMedia": {"instagram": "https://www.instagram.com/joespizzanyc","facebook": "https://www.facebook.com/joespizzanyc"},"rating": 4.4,"reviewsCount": 5847,"priceLevel": "$","openingHours": "Open 24 hours","latitude": 40.7555,"longitude": -73.9862,"placeUrl": "https://www.google.com/maps/place/Joe's+Pizza+Broadway/...","searchQuery": "pizza in Manhattan","extractedAt": "2026-03-30T04:23:02Z"}
Example output (with email + social media)
{"name": "NY Pizza Suprema","category": "Pizza restaurant","address": "413 8th Ave, New York, NY 10001","city": "New York","state": "NY","postalCode": "10001","phone": "(212) 594-8939","website": "https://www.nypizzasuprema.com","email": "contact@nypizzasuprema.com","socialMedia": {"instagram": "https://www.instagram.com/nypizzasuprema","facebook": "https://www.facebook.com/NYPizzaSuprema"},"rating": 4.6,"reviewsCount": 8234,"priceLevel": "$","latitude": 40.7506,"longitude": -73.9934,"searchQuery": "pizza in Manhattan","extractedAt": "2026-03-30T04:23:05Z"}
Integrations
Apify MCP Server (Claude, GPT, AI agents)
Use as a lead generation tool in Claude Desktop, Claude Code, GPT, LangChain, CrewAI, and any MCP-compatible AI framework. PPE pricing makes this native to AI agent workflows — agents pay per lead extracted.
Example prompt for Claude: "Find 50 dentists in Miami FL and get their phone numbers and emails"
Python integration
from apify_client import ApifyClientclient = ApifyClient("your-apify-api-token")# Extract pizza places in Manhattanrun = client.actor("tugelbay/google-maps-leads").call(run_input={"searchQueries": ["pizza in Manhattan"],"maxItems": 50,"extractEmails": True,"extractSocialMedia": True,})# Process leadsfor lead in client.dataset(run["defaultDatasetId"]).iterate_items():name = lead["name"]phone = lead.get("phone", "N/A")email = lead.get("email", "N/A")rating = lead.get("rating", "N/A")print(f"{name} | {phone} | {email} | Rating: {rating}")
JavaScript/TypeScript integration
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "your-apify-api-token" });const run = await client.actor("tugelbay/google-maps-leads").call({searchQueries: ["pizza in Manhattan"],maxItems: 50,extractEmails: true,extractSocialMedia: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const lead of items) {console.log(`${lead.name} | ${lead.phone} | ${lead.email}`);}
LangChain integration
from langchain_community.utilities import ApifyWrapperfrom langchain_core.documents import Documentapify = ApifyWrapper(apify_api_token="your-apify-api-token")leads = apify.call_actor(actor_id="tugelbay/google-maps-leads",run_input={"searchQueries": ["dentist in Miami FL"],"maxItems": 100,"extractEmails": True,},dataset_mapping_function=lambda item: Document(page_content=f"{item['name']} - {item.get('phone','')} - {item.get('email','')}",metadata={"address": item.get("address"),"rating": item.get("rating"),"website": item.get("website"),},),)
Export options
- Google Sheets — export leads directly to a spreadsheet
- Zapier / Make — trigger CRM workflows (HubSpot, Salesforce, Pipedrive)
- CSV / Excel — download from Apify Console
- API — call programmatically via REST API
- Webhooks — push results to your own systems
- Scheduled runs — daily/weekly lead extraction on autopilot
Use cases
Sales prospecting and cold outreach
Search for businesses by industry and location. Get direct phone numbers, email addresses, and websites for cold outreach campaigns. Filter by rating and review count to find established businesses worth contacting.
Example: "Find all marketing agencies in San Francisco with 4+ stars and 50+ reviews"
Lead generation for marketing agencies
Build targeted lead lists for your clients. Businesses with low review counts or no website often need marketing help — they are your ideal prospects.
Example: "Find dentists in Miami with fewer than 20 reviews" = businesses that need marketing
Local SEO audits and competitive analysis
Analyze all competitors in a specific area. Compare ratings, review counts, price levels, and categories. Identify market gaps and opportunities for your clients.
Market research and site selection
Map business density by category and location. Analyze pricing patterns, rating distributions, and competitive landscapes across different cities and neighborhoods.
Data enrichment
Start with a list of business names or Google Maps URLs. Get full contact details including email, phone, social media profiles, and GPS coordinates.
Real estate and commercial analysis
Find businesses near a property address. Analyze neighborhood commercial activity, foot traffic indicators (review counts), and business mix for real estate investment decisions.
Franchise scouting and expansion planning
Search for franchise locations across multiple cities. Compare ratings, review counts, and hours across locations to identify high-performing and underperforming areas.
Recruitment and job market research
Find businesses by type in target locations. Get their websites and contact info for recruitment outreach or job market analysis.
Cost estimation (PPE pricing)
This actor uses Pay-Per-Event pricing. You only pay for successfully extracted leads.
| Event | Description |
|---|---|
lead-extracted | Each business successfully extracted from Google Maps |
Pricing: $0.005 per lead (less than half a cent per business).
Example costs:
| Scenario | Leads | Cost |
|---|---|---|
| 50 restaurants in one city | 50 | $0.25 |
| 200 service providers across 5 cities | 200 | $1.00 |
| 1,000 businesses (10 search queries) | 1,000 | $5.00 |
| Daily extraction (100 leads/day) | 3,000/month | $15/month |
| Large-scale research (10K businesses) | 10,000 | $50.00 |
First 100 leads are free to help you evaluate.
Cost comparison:
| Solution | 1,000 leads | Includes email? | Includes social? |
|---|---|---|---|
| This actor | $5 | Yes | Yes |
| Google Places API | $17+ | No | No |
| Manual research (20/hour) | $500+ (50 hours) | Sometimes | Sometimes |
| Other Apify scrapers | $3-10 (compute) | No | No |
FAQ
Does it extract email addresses?
Yes. When extractEmails is enabled (default), the actor visits each business website and searches the HTML for email addresses. It automatically filters junk emails (noreply@, support@google, etc.) and returns the most likely contact email. Email extraction works for approximately 30-50% of businesses — many small businesses do not display email addresses on their websites.
How many leads can I get per search query?
Up to 500 per query. Google Maps typically shows 60-120 results for most local searches. The actor scrolls automatically to load all available results. For maximum coverage, use multiple specific queries rather than one broad query.
Does it work outside the US?
Yes. Google Maps works globally. Set the language parameter to match your target market (e.g., "de" for Germany, "ja" for Japan, "pt" for Brazil). Address parsing is optimized for US addresses but works partially for international formats.
How fast is it?
With default settings, the actor extracts approximately 20-50 leads per minute. Email extraction adds 1-3 seconds per lead (each business website must be loaded). Disable extractEmails and extractSocialMedia for the fastest extraction (Google Maps data only).
What social media platforms does it detect?
Facebook, Instagram, Twitter/X, LinkedIn, YouTube, and TikTok. The actor scans business website HTML for links to these platforms.
Can I export results to my CRM?
Yes. Download as CSV/JSON from Apify Console, or use Zapier/Make integrations to push leads directly to HubSpot, Salesforce, Pipedrive, or any CRM that accepts webhooks.
Is the data real-time?
Yes. The actor loads Google Maps in a real browser and extracts data live. There is no cache — you always get the latest information from Google Maps.
Can I run this on a schedule?
Yes. Set up a Schedule in Apify Console to run the actor daily, weekly, or on any custom interval. Perfect for monitoring new businesses in your target areas.
Does it handle Google CAPTCHAs?
The actor runs from Apify servers without proxy for maximum compatibility. For very high-volume extractions (1000+ leads in a single run), Google may occasionally show CAPTCHAs. Use residential proxies in the proxyConfiguration input for better success rates at scale.
Troubleshooting
No results returned
- Cause: Search query may be too specific, or Google Maps has no results for that location
- Fix: Try a broader query. Use city names instead of neighborhoods. Example: "restaurant in New York" instead of "restaurant on 5th Avenue"
Missing phone numbers or addresses
- Cause: Some businesses have incomplete Google Maps profiles
- Fix: This is expected. Not all businesses list phone numbers or complete addresses on Google Maps. The actor extracts whatever data is available.
Email extraction returns null for most leads
- Cause: Many small businesses do not display email addresses on their websites, or do not have websites at all
- Fix: This is normal. Email extraction typically finds valid emails for 30-50% of businesses. For higher email coverage, consider using a dedicated email finder service on the extracted website URLs.
Only 3-5 results when requesting more
- Cause: The back-navigation between place details and search results may not always return to the correct position in the list
- Fix: Run multiple queries with different keywords or locations to cover more businesses. This is a known limitation being improved.
Slow extraction speed
- Cause: Email and social media extraction visits each business website, adding 1-3 seconds per lead
- Fix: Set
extractEmails: falseandextractSocialMedia: falsefor Google Maps data only — this is 3-5x faster
Limitations
- Maximum 500 results per search query (Google Maps pagination limit)
- Google may show CAPTCHAs for very high-volume extractions — residential proxies recommended for 1000+ leads
- Email extraction depends on businesses having websites with visible email addresses (~30-50% coverage)
- Social media links are only found if they appear on the business website HTML
- Address parsing is optimized for US addresses; international formats parse partially
- Opening hours format varies by region and may not always be available
- Some business categories have limited coverage in certain regions
- Back-navigation between results can sometimes skip items (improving in v1.1)
Changelog
v1.0 (2026-03-30)
- Initial release
- Google Maps search with auto-scroll pagination
- 20+ fields per business lead
- Email extraction from business websites with junk filtering
- Social media discovery (Facebook, Instagram, Twitter/X, LinkedIn, YouTube, TikTok)
- Address parsing (city, state, ZIP code)
- GPS coordinates from Google Maps URLs
- Deduplication of results
- Back-navigation for sequential extraction
- PPE pricing: $0.005/lead, first 100 free
- Categories: Lead Generation, Marketing, AI