Google Maps Email & Leads Extractor - Fast & Cheap
Pricing
from $1.50 / 1,000 lead scrapeds
Google Maps Email & Leads Extractor - Fast & Cheap
Business leads from Google Maps in one step: for any search such as "dentists in Madrid" you get each business with phone, address, rating and website, plus the emails and social profiles found on its website. No browser, no API key. $0.0015 per lead with contacts included.
Pricing
from $1.50 / 1,000 lead scrapeds
Rating
0.0
(0)
Developer
Antonio del Olmo Tena
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
Turn any Google Maps search into a list of business leads with emails, in one step. Type searches such as dentists in Madrid or plumbers in Austin, TX and the Actor returns one row per business with its Google Maps data (name, category, address, phone, website, rating, reviews, opening hours, coordinates) plus the emails, extra phones and social profiles (Instagram, Facebook, LinkedIn, X, YouTube, TikTok, WhatsApp) found on its own website. Ready to export to CSV or Excel and load into your CRM or outreach tool.
No browser, no proxies on your side, no API keys: the Actor reads Google Maps through the same endpoint the web app uses, then visits each business website (home, contact and about pages) to collect contacts. You pay $0.0015 per business returned, contacts included.
What you get
One Dataset row per business:
email(first one found) andemails(all), checked against the domain's mail servers when Validate email domains is on.phoneandphoneInternationalfrom Google Maps,sitePhonesfound on the website.facebook,instagram,linkedin,twitter,youtube,tiktok,whatsapp: profile links, one column each.name,category,categories,website,domain,address,street,neighborhood,city,postalCode,countryCode,latitude,longitude,rating,reviewsCount,openingHours,timezone,placeId,url.status: what the contact search found.found(emails, phones or socials),none(website read, nothing found),no-website,social-only(the website on Maps is a social profile, kept in its column),skipped(booking or link-in-bio pages) orerror(the website could not be read;errorsays why).isNew:truewhen the business was not in the previous run of that query.
How to use it
- Open the Input tab.
- In Search queries type one per line, exactly as in Google Maps:
dentists in Madrid,marketing agency London,coworking near Lisbon. - Optionally set Location (added to queries that do not mention one), Language and Country.
- Set Max businesses per query (default 20, up to about 120). Turn on Skip businesses without website if you only want businesses you can reach by email.
- Click Start. Read the rows in Output or export them as CSV, Excel or JSON.
- To catch new businesses in your market, schedule the Actor (weekly or monthly). New ones come with
isNew: true.
Input
{"queries": ["dentists in Madrid", "physiotherapists in Madrid"],"country": "es","maxPlaces": 50,"maxPagesPerSite": 3,"validateEmails": true,"skipWithoutWebsite": true}
| Field | Description |
|---|---|
queries | Google Maps searches, one per line. Up to 50 per run. |
location | Optional. Appended to queries that do not mention it. |
language, country | Google's edition, default en and us. |
maxPlaces | Businesses per query, 1 to 120. Default 20. |
maxPagesPerSite | Website pages read per business, 1 to 10. Default 3. |
validateEmails | Drop emails whose domain cannot receive mail. Default on. |
skipWithoutWebsite | Return only businesses with a website. Default off. |
Output example
{"query": "dentists in Madrid","name": "Dental Clinic Navarro","email": "clinica@dentalnavarro.com","emails": ["clinica@dentalnavarro.com"],"phone": "+34 915 00 00 00","phoneInternational": "+34915000000","sitePhones": ["+34915000000"],"website": "https://dentalnavarro.com/","domain": "dentalnavarro.com","facebook": "https://www.facebook.com/dentalnavarro","instagram": "https://www.instagram.com/dentalnavarro","linkedin": null,"twitter": "https://twitter.com/dentalnavarro","youtube": null,"tiktok": null,"whatsapp": "https://wa.me/34600000000","status": "found","pagesCrawled": 3,"error": null,"category": "Dentist","address": "C. de Alcalá, 100, Salamanca, 28009 Madrid, Spain","city": "Madrid","postalCode": "28009","countryCode": "ES","rating": 4.9,"reviewsCount": 812,"placeId": "ChIJ...","url": "https://www.google.com/maps/place/?q=place_id:ChIJ...","isNew": false,"timestamp": "2026-10-05T09:00:00.000Z"}
Pricing
Pay per event, no subscription:
- Lead scraped: $0.0015 per business row, with the website contact search included. 1,000 leads cost $1.50.
- New lead: $0.003 per business flagged as new in a scheduled run.
Queries that cannot be read or return nothing are free. Compare with Google Maps scrapers that charge about $1.50 per 1,000 places plus extra for contact details, or $2.10 per 1,000 with contacts.
In our tests, 18 of 20 dentists in Madrid and 10 of 20 plumbers in Austin came with at least one email, and almost all with social profiles.
Use it as an API
curl -X POST "https://api.apify.com/v2/acts/aolmo~google-maps-leads/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"queries": ["plumbers in Austin, TX"], "maxPlaces": 40, "skipWithoutWebsite": true}'
You can also call it from AI agents through the Apify MCP server. For Google Maps data without the website visit, use the cheaper aolmo/google-maps-places.
FAQ
Why do some businesses have no email? Many small businesses only publish a phone or a contact form, or protect their website against automated visits. Those rows keep all the Google Maps data and whatever social profiles were found.
Does it bypass website protections? No. Websites behind anti-bot walls are reported with status: error and their Google Maps data is still returned.
How long does a run take? About 30 to 80 seconds per 20 businesses, depending on how fast their websites respond.
Is this GDPR compliant? The Actor only collects contact details that businesses publish themselves. How you use them (for example, sending marketing emails) is your responsibility under the laws that apply to you.
Where is the data stored between runs? In a Key-Value Store of your account named micro-saas-state-google-maps-leads, one key per query. Delete it to start fresh.