Google Maps Leads Scraper
Pricing
from $6.00 / 1,000 leads
Google Maps Leads Scraper
Scrape business leads from Google Maps in one run every published email, every phone number, named staff, address, category, rating, reviews, opening hours, coordinates and six social networks. One row per business, no add-ons.
Pricing
from $6.00 / 1,000 leads
Rating
0.0
(0)
Developer
wallace
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Google Maps Leads Scraper — Emails, Phones & Contacts
Extract complete business leads from Google Maps — email addresses, every phone number, staff names, address, category, rating, reviews, opening hours, coordinates and social profiles — without writing a single line of code. Works for any industry, in any city, worldwide.
Search the way you would in Maps yourself: dental clinic, Berlin · marketing agency, Austin · law firm, Manchester.
What does Google Maps Leads Scraper do?
Google Maps Leads Scraper searches Google Maps for businesses matching your industry and location, then visits each company's website to collect its contact details and staff.
It outputs one row per business, containing everything a Maps listing offers plus the email addresses and people published on the company's own site. No second run, no separate enrichment step.
Run it on Apify's infrastructure with automatic proxy rotation, scheduling, API access, and integrations to Google Sheets, Airtable, Make, Zapier, and hundreds of other tools.
Why use Google Maps Leads Scraper?
- Cold email outreach — every address a business publishes, in one column
- Sales prospecting — build territory lists by industry and city, with the staff to contact
- Agency lead generation — find local businesses that have no website, or no booking system
- Cold calling — every phone number a business lists, not just the one on Maps
- Market research — categories, ratings, review counts and opening hours across a whole city
- CRM enrichment — attach emails, phones, socials and coordinates to your company records
- Territory mapping — GPS coordinates and Plus Codes for mapping or route planning
How to use Google Maps Leads Scraper
- Open this Actor and click Try for free
- Enter an industry —
dental clinic,marketing agency,plumber,law firm - Add locations — one or more cities, regions or countries, e.g.
Austin, TexasandLyon, France - Set how many businesses to pull per location — start with 20 to see the results before scaling up
- Optionally filter — keep only businesses with an email address, or only those with named staff
- Click Start and watch results appear in the Output tab
- Download as JSON, CSV, Excel or HTML — or pull them through the API
There is nothing else to configure. Everything the scraper needs to tune itself — how many pages to crawl, how much to run in parallel — it works out from the run.
Input
| Field | Type | Default | Description |
|---|---|---|---|
| Industry / business type | string | dental clinic | What kind of business to find |
| Locations | string list | Berlin, Germany | Cities, regions or countries. One search runs per entry |
| Max businesses per location | integer | 40 | How many Google Maps results to pull per location |
| Only businesses with an email address | boolean | false | Drops businesses that publish no email |
| Only businesses with named contacts | boolean | false | Drops businesses where no staff names were found |
| Proxy | proxy | Apify Residential | Required. Google Maps blocks datacenter and unproxied traffic |
Example input:
{"industry": "marketing agency","locations": ["Austin, Texas"],"maxBusinesses": 20,"requireEmail": false,"requireContacts": false}
Output
One row per business. Results appear in the Output tab and download in JSON, CSV, Excel or HTML.
{"companyName": "Winning Smiles - Buffalo","category": "Dentist","businessStatus": "operational","emails": "info@winningsmilespd.com; office@winningsmilespd.com","emailCount": 2,"phones": "7163513293; +17163322444; 7169954456","contacts": "Cody Wiktorski; Kathleen Rusnak; Edwin Jauch","contactCount": 3,"website": "https://winningsmilespd.com/buffalo","domain": "winningsmilespd.com","hasWebsite": true,"bookingLink": "https://app.nexhealth.com/appt/winning-smiles","address": "205 Linwood Ave, Buffalo, NY 14209, United States","city": "Buffalo","region": "NY","country": "United States","latitude": 42.9079029,"longitude": -78.8687661,"plusCode": "W45J+5F Buffalo, New York, USA","rating": 4.7,"reviewCount": 962,"openingHours": ["Monday, 8 AM to 5 PM","Tuesday, 8 AM to 5 PM","Saturday, Closed"],"socialMedia": {"linkedin": "https://www.linkedin.com/company/winning-smiles","facebook": "https://www.facebook.com/winningsmiles","instagram": null,"twitter": null,"youtube": null,"tiktok": null},"placeId": "0x89d313cf18c80b81:0x4b296e46ec7bcc6b","mapsUrl": "https://www.google.com/maps/place/..."}
Data fields
| Field | Type | Description |
|---|---|---|
companyName | string | Business name |
category | string | Google Maps category, e.g. "Dentist" |
businessStatus | string | operational, temporarily_closed or permanently_closed |
emails | string | Email addresses published on the website, ; separated |
emailCount | number | How many addresses were found |
phones | string | Every phone number found, ; separated |
contacts | string | Names of staff found on the website, ; separated |
contactCount | number | How many people were found |
website | string | Company website |
domain | string | Website domain |
hasWebsite | boolean | false when the listing has no website |
bookingLink | string | Appointment or ordering link, e.g. NexHealth, Solutionreach, OpenTable |
address | string | Full address |
city / region / country | string | Address components |
latitude / longitude | number | GPS coordinates |
plusCode | string | Google Plus Code |
rating | number | Star rating, 1–5 |
reviewCount | number | Number of Google reviews |
openingHours | string[] | Opening hours, one entry per day |
socialMedia | object | linkedin, facebook, instagram, twitter, youtube, tiktok |
placeId | string | Google's place identifier — use it to deduplicate across runs |
mapsUrl | string | Link to the Google Maps listing |
How much does it cost to scrape Google Maps leads?
$6.00 per 1,000 leads. One price covering the Maps listing, the website crawl, emails, phones, staff and social profiles.
Every billed row includes at least one way to contact the business — an email address or a phone number. Listings with neither are not returned.
That price is the whole cost. This Actor is priced per event, so Apify compute and proxy usage are not billed to you on top of it. Apify's free tier includes $5 of platform credits per month, which covers roughly 830 leads.
Comparable Actors quote a lower headline by selling the parts separately — a Maps listing at one price, then contact enrichment, social profiles and lead extraction as extra charges per row. Here the emails, phone numbers, named staff and six social networks are in the $6.00.
To keep costs predictable, set Max businesses per location, search one city at a time, and use Only businesses with an email address when every row needs to be mailable.
Tips
- Keep the residential proxy on — Google Maps blocks datacenter and unproxied traffic, and a run without it returns almost nothing
- Coverage depends on the industry and country — independent practices and professional-services firms publish more contact detail than national franchises, and European sites more than North American ones
- Filter on
hasWebsite: falseto find businesses with a Maps listing but no website — a strong lead for web design and SEO services - Filter on
bookingLinkto find businesses already using booking software, or its absence to find those who aren't - Search city by city for large runs — Google caps a single search at roughly 120 results, so several focused searches return far more than one broad one. For a large city, list its boroughs or neighbourhoods as separate locations rather than raising Max businesses per location
- Give the run 8 GB to go roughly twice as fast — Apify allocates one CPU core per 4 GB, and the scraper sizes its own parallelism to the cores it has. Nothing to configure, but the memory setting is the lever
- Deduplicate across runs on
placeId— Google's own identifier for the listing, and a more reliable key than the name or website - Schedule weekly runs to keep a list current as businesses open, close and change details
FAQ, disclaimers, and support
Where do the email addresses come from? From each company's own website — contact, about and team pages. Google Maps does not publish email addresses, so no tool can take them from there.
Why do some businesses have no email? Some publish no address anywhere and use a contact form instead. Those rows still include phone numbers, staff names, socials and everything else. Use Only businesses with an email address if you need every row to be mailable.
Are the email addresses verified? Not currently — they are returned exactly as published. Email verification is planned as an optional add-on.
Does it work outside the United States? Yes. Company websites are read in over 20 languages, so team and contact pages are found on German, French, Spanish, Italian, Dutch, Polish and Turkish sites as well as English ones.
Some fields are empty — why? The business did not publish that detail. An empty field means the data was not available, not that the scraper failed.
The run returned very few results — what should I do? Check that Apify Proxy is enabled with the residential group. That is by far the most common cause.
Which industries and countries give the best results? Businesses that publish a team page give the most — agencies, law firms, clinics, consultancies and studios. Coverage also varies by country: European sites tend to publish more contact detail than North American ones, where a contact form is more common.
What happens if a run is interrupted? Click Resurrect and it continues from where it stopped, without repeating businesses it has already returned. Starting a new run instead begins from scratch.
Will I get the same business twice? No. Businesses are deduplicated by their Google place ID, so overlapping searches never return a listing twice. Separate branches of a chain are returned as separate rows, since they are separate locations.
Is scraping Google Maps legal? This Actor collects publicly available business information. Business contact details can still be personal data under the GDPR when they identify an individual, so you need a lawful basis for using them — legitimate interest is the usual basis for B2B outreach — and you must honour deletion requests. Please take your own legal advice for your jurisdiction and intended use.
Can you build a custom version? Yes — open a ticket on the Issues tab or get in touch for a version tailored to your industry, region or output format.