Google Maps Leads Extractor avatar

Google Maps Leads Extractor

Pricing

from $3.50 / 1,000 lead extracteds

Go to Apify Store
Google Maps Leads Extractor

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

Tugelbay Konabayev

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

2

Monthly active users

2 days ago

Last modified

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:

  1. Open Google Maps and search for businesses matching your query
  2. Scroll through results to load all available businesses (up to 500)
  3. Click each business to extract full details: name, address, phone, website, rating, reviews, hours, GPS coordinates
  4. Optionally visit each business website to find email addresses and social media links
  5. 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?

FeatureGoogle Places APIFree Scrapers (20K+ users)This Actor
Price$17/1K requestsFree (compute only)$5/1K leads (PPE)
Email extractionNoNoYes (from business websites)
Social media linksNoNoYes (6 platforms)
Phone numbersYes (limited)SometimesYes
Opening hoursBasicBasicFull schedule
Reviews countYesSometimesYes
GPS coordinatesYesSometimesYes
AI/MCP compatibleAPI onlyNo (free tier)Yes (PPE pricing)
Setup timeAPI key + billing account5 min5 min
Address parsingRaw stringRaw stringCity, state, ZIP auto-parsed
Rate limitsStrict quotasNoneManaged 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
}
{
"searchQueries": ["restaurant in Tokyo"],
"maxItems": 50,
"language": "ja",
"extractEmails": true
}

Input parameters

ParameterTypeDefaultDescription
searchQueriesArray-Search terms with location (e.g., ["restaurants in New York"])
placeUrlsArray-Direct Google Maps place URLs to scrape
maxItemsInteger100Maximum results per search query (1-500)
extractEmailsBooleantrueVisit business websites to find email addresses
extractSocialMediaBooleantrueFind social media links on business websites
languageString"en"Google Maps interface language (ISO 639-1 code)
maxConcurrencyInteger5Number of parallel browser pages (1-10)
proxyConfigurationObjectApify proxyProxy settings for website email extraction

Output format

Each lead in the dataset contains:

FieldTypeDescription
nameStringBusiness name (e.g., "Joe's Pizza Broadway")
categoryStringBusiness category (e.g., "Pizza restaurant")
addressStringFull street address
cityStringParsed city name
stateStringParsed state/province code (e.g., "NY")
postalCodeStringParsed ZIP/postal code (e.g., "10014")
countryStringParsed country name
phoneStringPhone number (e.g., "(646) 559-4878")
websiteStringBusiness website URL
emailStringEmail found on business website (if extractEmails enabled)
socialMediaObjectSocial media links found on website (Facebook, Instagram, etc.)
ratingNumberGoogle Maps rating (1.0-5.0)
reviewsCountIntegerNumber of Google reviews
priceLevelStringPrice level ($, $$, $$$, $$$$)
openingHoursStringOpening hours summary
latitudeNumberGPS latitude coordinate
longitudeNumberGPS longitude coordinate
placeUrlStringFull Google Maps URL for this business
searchQueryStringThe search query that found this business
extractedAtStringExtraction 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 ApifyClient
client = ApifyClient("your-apify-api-token")
# Extract pizza places in Manhattan
run = client.actor("tugelbay/google-maps-leads").call(
run_input={
"searchQueries": ["pizza in Manhattan"],
"maxItems": 50,
"extractEmails": True,
"extractSocialMedia": True,
}
)
# Process leads
for 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 ApifyWrapper
from langchain_core.documents import Document
apify = 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.

EventDescription
lead-extractedEach business successfully extracted from Google Maps

Pricing: $0.005 per lead (less than half a cent per business).

Example costs:

ScenarioLeadsCost
50 restaurants in one city50$0.25
200 service providers across 5 cities200$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:

Solution1,000 leadsIncludes email?Includes social?
This actor$5YesYes
Google Places API$17+NoNo
Manual research (20/hour)$500+ (50 hours)SometimesSometimes
Other Apify scrapers$3-10 (compute)NoNo

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: false and extractSocialMedia: false for 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