Google Maps Scraper — Business Emails, Phones & Leads
Pricing
from $6.69 / 1,000 lead records
Google Maps Scraper — Business Emails, Phones & Leads
Collect Google Maps business leads with names, contact details, place data, and public website emails and social links. Run with search queries, residential proxy, and optional email verification. Pricing: $0.0069 per lead-record event on Free.
Pricing
from $6.69 / 1,000 lead records
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
66
Total users
11
Monthly active users
3 days ago
Last modified
Categories
Features
Share
Google Maps Leads Scraper
Runs need Apify's RESIDENTIAL proxy group, which is the default setting, and no key of your own. Google Maps Leads then extracts business place data from Google Maps and enriches business websites with public emails and social links. On the Free plan, the Actor costs $0.0069 per lead-record event.
- Build B2B lead lists with names, addresses, phones, websites, GPS coordinates, ratings, hours, and email fields.
- Extract public business emails and social profiles without a Google API key or external proxy key.
- Scrape restaurants, agencies, contractors, dentists, gyms, and other local businesses for prospecting.
- Compare categories, ratings, price levels, amenities, and ownership signals for local research.
What you get
Each dataset record is a flat business lead with place data, website contact enrichment, email verification details, and provenance fields.
| Field family | Fields | Type | What it contains |
|---|---|---|---|
| Identity | place_id, place_id_raw, name | string | Business identifiers and name |
| Location | address, latitude, longitude, plus_code | string, float, float, string | Address, coordinates, and Open Location Code when available |
| Contact | phone, website | string | Business phone and website |
| Email discovery | emails, primary_email, email_source_page | array, string, string | Found emails, selected email, and source page |
| Email verification | email_status, email_checks | string, array | Result and syntax, MX, role, and disposable checks |
| Email summary | email_count, has_email | integer, boolean | Email count and whether one was harvested |
| Website enrichment | social_links, contact_enriched | object, boolean | Social URLs and enrichment status |
| Business classification | category, categories | string, array | Primary and additional categories |
| Ratings | rating, reviews_count | float, integer | Star rating and review count |
| Price and status | price_range, price_level, work_status | string, integer, string | Price text, numeric level, and listing status |
| Hours | opening_hours | array | Weekly entries such as {day, hours} |
| Listing details | is_claimed, maps_url | boolean, string | Owner-verified flag and Maps URL |
| Content | summary, description, image_url, amenities | string, string, string, array | Listing text, image URL, and attributes |
| Quality | parse_confidence, parse_path, warnings | float, string, array | Confidence, parser path, and warnings |
| Provenance | query, rank, scraped_at | string, integer, string | Query, result position, and UTC scrape timestamp |
With MX verification, email_status can be valid, role, risky, or invalid; records without an email use none. With verification disabled, an unverified email can use found.
Sample output
The following is a shortened view of the second real dataset record. Fields such as phone, email_checks, opening_hours, maps_url, and the parse_* fields are omitted; shown values are unchanged. The business email address is shown as <hidden for privacy>; the real record holds the public address found on the website.
{"place_id": "ChIJTfb1d_uHhYARRpn5d_Fk1SU","name": "The Coffee Movement","address": "1737 Balboa St, San Francisco, CA 94121","latitude": 37.7764721,"longitude": -122.47782249999999,"website": "https://www.thecoffeemovement.com/","emails": ["<hidden for privacy>"],"primary_email": "<hidden for privacy>","email_status": "valid","has_email": true,"email_source_page": "https://www.thecoffeemovement.com/","social_links": {"instagram":"https://www.instagram.com/thecoffeemovementsf/","yelp":"https://www.yelp.com/biz/the-coffee-movement-san-francisco"},"category": "Coffee shop","rating": 4.8,"reviews_count": 647,"query": "coffee shops in San Francisco CA","rank": 2,"scraped_at": "2026-10-31T07:42:12.678995+00:00"}
Pricing
This Actor uses pay-per-event billing. The lead-record event is one business lead with place data and a verified email when one is found on the website. Only records pushed to the dataset are charged; blocked, empty, or fetch-failed queries push no records and are not charged. Website harvesting, social links, and MX checks are included.
| Plan | Price per lead-record event |
|---|---|
| Free | $0.0069 |
| Bronze | $0.006831 |
| Silver | $0.006762 |
| Gold | $0.006693 |
| Platinum | $0.006624 |
| Diamond | $0.006555 |
Worked examples on the Free plan at $0.0069 per lead record: 1,000 x $0.0069 = $6.90, and 10,000 x $0.0069 = $69.00.
Apify includes $5 of monthly platform usage credit on its Free plan. At $0.0069 per event, $5 divided by $0.0069 equals 724 whole lead-record events if applied only to this Actor. Compute, Apify Proxy traffic including residential traffic, and storage are included in the event prices and paid by the Actor developer for this Actor, not separately by the buyer.
How to use
- Enter one or more Google Maps search strings in
queries. - Set
maxResultsto the places wanted from each query; pagination uses 20-result pages. - Keep the default Apify
RESIDENTIALproxy configuration. - Enable
verifyEmailsfor MX, role, and disposable checks and best-email ranking, then start the Actor. Without it,primary_emailis still set to the first email found. - Review
email_status,parse_confidence,parse_path, andwarnings, then repeat the run through Apify Schedules; daily is a suitable starting point.
{"queries": ["coffee shops in San Francisco CA"],"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]},"maxResults": 20,"verifyEmails": true,"language": "en","country": "us"}
Export the dataset as JSON or CSV, or read it through the Apify dataset API.
Input parameters
| Parameter | What it does | Default |
|---|---|---|
queries | Required array of Google Maps search strings; each is processed separately. | No default; required |
proxyConfiguration | Apify proxy settings. Google Maps requires residential proxy; GOOGLE_SERP does not support Maps URLs. | Apify RESIDENTIAL proxy |
maxResults | Maximum places per query; 1–300, with 20 places per page. | 20 |
verifyEmails | MX-verifies harvested emails, runs role and disposable checks, and ranks the best email for primary_email; website enrichment remains enabled. | true |
language | Result language: en, es, fr, de, it, pt, ja, ko, or zh. | en |
country | Result localisation: us, gb, ca, au, de, fr, es, it, jp, br, mx, or in. | us |
disableUsageStats | Disables the usage-statistics record described below. | false |
Limits and edge cases
| Condition | What you see | What to do |
|---|---|---|
| You need more than 300 places for one query | The input schema limits maxResults to 300 per query. | Split locations into neighborhoods or subcategories. |
| An area contains more places than the source returns | Google caps a single area at roughly 120–300 places. | Use narrower queries. |
| A business has no website | The place remains; enrichment is false, email fields are empty, has_email is false, and email_status is none. | Use available place fields. |
| A website has no public email | The place remains without a harvested email. | Filter on has_email or email_status. |
verifyEmails is false | Emails and social links are harvested without MX checks; an email can use primary_email with status found. | Keep verification enabled for MX, role, and disposable signals. |
| CAPTCHA, consent wall, or blocked response | The Actor tries up to three residential-IP attempts; a still-blocked query is skipped with no records. | Keep residential proxy and retry later. |
| No places or fetch error | The query pushes no records and produces no lead-record charge. | Check query, location, proxy, and source availability. |
| Primary Maps response changes | Secondary-parser records have parse_path: "fallback" and lower parse_confidence. | Inspect parse_path, parse_confidence, and warnings. |
| Residential proxy unavailable or setup fails | The run records proxy_init_failed or no_proxy and does not proceed with collection. | Ensure the account can use the RESIDENTIAL group. |
| Proxy authentication fails | The run stores proxy_auth_failed in OUTPUT and aborts. The failing query is not charged; records already delivered from earlier queries stay in the dataset and are charged. | Check the account's Apify proxy access, then rerun. |
FAQ
How much does it cost to scrape Google Maps leads?
The price is per lead-record event and depends on your Apify plan. See the Pricing section above for the full plan table and worked examples.
What happens if a query returns no results or stops working?
An empty query, fetch failure, or blocked query pushes no records and has no lead-record charge. A blocked query receives up to three residential-IP attempts. Check the query, proxy configuration, and warnings or run output.
What does the email verification confirm?
The Actor checks syntax, MX or mail-capable A records, role addresses, and a fixed list of disposable domains. It does not perform a full mailbox SMTP probe. valid means the syntax and mail-domain checks passed and the address was not classified as role or disposable.
Is it legal to use public business data from Google Maps?
The Actor collects public data from Google Maps and public business websites. Whether a collection or outreach use is allowed depends on source terms and applicable law for the use case, so review those requirements before running it. This Actor is not affiliated with, endorsed by, or sponsored by Google LLC.
Related actors
- Google Maps Scraper — related Google Maps place-data collection for local business leads.
- B2B Leads List Builder — related Maps, email, and phone enrichment for B2B lead lists.
- Yelp Business Leads — related business-lead collection with email and contact enrichment from Yelp.
Rate this Actor
If Google Maps Leads saved you time, please rate it on the Apify Store. A rating takes a few seconds and helps other people find a working scraper.
Usage statistics
This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.
A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.
To opt out, set disableUsageStats to true in the input. Nothing is sent then.