Google Maps Email & Contact Details Scraper
Pricing
Pay per event
Google Maps Email & Contact Details Scraper
Scrape Google Maps places and enrich each with contact details from the business website: email addresses, phone numbers, and social media profiles (Facebook, Instagram, LinkedIn, X, YouTube, TikTok). Lead generation ready.
Pricing
Pay per event
Rating
0.0
(0)
Developer
SR
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Google Maps Email Scraper: Contact Details from Every Place
Hosted google maps email scraper that pulls Google Maps places and then crawls each business website for real contact details. One run gives you the full Maps listing (name, address, phone, category, rating, coordinates, opening hours) plus the emails, phone numbers, and social profiles that Google Maps itself never shows. No browser, no plugin, no monthly seat. Pay per place.
If you have been looking for a way to get google maps contact details at scale, a Maps scraper that also finds emails, or a hosted replacement for a scraping tool that keeps breaking, this Actor is the maintained, billable alternative. It recreates the popular "Google Maps with Contact Details" workflow and undercuts it on price.
What you get
- Full Google Maps place metadata for every result: name, place ID, FID, KGMID, address broken into street / city / postal code / state / country, latitude and longitude, category and secondary categories, rating, reviews count, price range, phone number, website, current open status, and opening hours.
- Emails from the business website, the Actor visits each place's website and its contact page, then extracts every email address it finds into an
emailsarray. - All seven social profiles bundled, Facebook, Instagram, LinkedIn, X (Twitter), YouTube, TikTok, and Pinterest, pulled from the same website crawl, in one flat row. No per-profile surcharge.
- Phone numbers found on the website, separate from the Maps phone, in
phones_on_website. - The contact page URL that was crawled, so you can verify the source.
- One clean row per place in the dataset, ready to export to CSV, Excel, JSON, or push straight into your CRM.
Why scrape Google Maps contact details
Google Maps is the largest local business directory on earth, and for lead generation it is the obvious starting point. The problem: Maps gives you a name, a phone, and a website link, but almost never an email address. The one field a cold outreach campaign actually needs is the one field Maps withholds. So teams end up copying business names into a spreadsheet, then manually opening each website, hunting for a contact page, and pasting the email. That does not scale past a few dozen leads.
The emails are not hidden, though. They sit on the business's own website, on the homepage footer or the contact page, right next to the Instagram and Facebook icons. This Actor closes that gap automatically. It scrapes the Maps result set for you, and for each place it follows the website link, fetches the homepage and the contact page, and pulls out the email, the phone, and every social link it can see. What used to be two tools and a lot of copy-paste becomes one run.
Because the Maps side uses the internal Maps AJAX endpoint rather than a headless browser, it stays fast and cheap even at 400 results per query. The contact crawl runs as a lightweight fetch of two pages per site, so enrichment is measured in cents, not dollars.
Input
| Field | Type | Default | Description |
|---|---|---|---|
queries | array | required | One or more Maps search queries, exactly as you would type them into Google Maps. E.g. "restaurants Amsterdam", "dentists in Austin TX", "plumbers near Manchester". |
max_results_per_query | integer | 100 | How many places to return per query, 1 to 400. |
hl | string | en | Interface language code (e.g. en, nl, de). |
gl | string | us | Country of search, two-letter ISO code (e.g. us, nl, gb). |
use_cookies | boolean | true | Attach a fresh Google session to reduce rate-limiting on the Maps endpoint. |
use_proxy | boolean | true | Route requests through a proxy pool. Recommended for larger runs. |
scrape_contacts | boolean | true | Crawl each place's website for emails, phones, and social profiles. Set to false for a Maps-only run at the lower per-place rate. |
Output
One row per place. With scrape_contacts on, each row carries the Maps metadata plus the enrichment fields.
{"search_position": 3,"name": "De Kas Restaurant","fid": "0x47c609c4a1b2c3d4:0x1234567890abcdef","place_id": "ChIJ...","kgmid": "/g/11abc23def","address": "Kamerlingh Onneslaan 3, 1097 DE Amsterdam","neighborhood": "Watergraafsmeer","street": "Kamerlingh Onneslaan 3","city": "Amsterdam","postal_code": "1097 DE","state": "North Holland","country_code": "NL","lat": 52.3543,"lng": 4.9316,"category": "Restaurant","categories": ["Restaurant", "Fine dining restaurant"],"rating": 4.6,"reviews_count": 2841,"price_range": "$$$","phone": "+31 20 462 4562","website": "https://restaurantdekas.com","website_domain": "restaurantdekas.com","current_status": "Open","opening_hours": {"Monday": "12:00-15:30, 18:00-22:00", "Tuesday": "..."},"additional_info": {"Service options": ["Dine-in", "Reservations"]},"search_query": "restaurants Amsterdam","emails": ["info@restaurantdekas.com", "events@restaurantdekas.com"],"phones_on_website": ["+31 20 462 4562"],"contact_page_url": "https://restaurantdekas.com/contact","facebook": "https://facebook.com/restaurantdekas","instagram": "https://instagram.com/restaurantdekas","linkedin": "https://linkedin.com/company/de-kas","twitter": "https://twitter.com/restaurantdekas","youtube": null,"tiktok": null,"pinterest": null,"website_crawled": true}
Social fields that were not found are returned as null, so every row has the same shape and imports cleanly into a spreadsheet or database.
Use cases
B2B lead generation. Search a category and a city, get back a list of businesses with verified emails and decision-maker social profiles. Feed the emails array straight into your outreach tool. Because the seven socials come bundled, you can also enrich the same lead on LinkedIn or Instagram without a second run or a second bill.
Sales prospecting at scale. Territory reps can pull "SaaS companies Berlin" or "medical clinics Chicago", filter by rating and reviews count to prioritize established businesses, and route the phone plus email into a sequencing platform. The website_domain field makes deduplication against your existing CRM trivial.
Local SEO and marketing agencies. Build a prospect list of businesses in a vertical that have a website but a thin social presence, then pitch them on the gaps. The current_status, categories, and opening_hours fields help you segment, and the social columns show at a glance who is missing a TikTok or a LinkedIn page.
Market research and directory building. Map the competitive landscape of a category across multiple cities in one run by passing several queries. Coordinates, categories, price range, and reviews count give you a structured dataset for analysis, and the contact fields turn a research export into an actionable outreach list.
How it compares
| This Actor | lukaskrivka/google-maps-with-contact-details | compass/crawler-google-places | |
|---|---|---|---|
| Price per 1,000 places + contacts | ~$6.00 | ~$7.50 | ~$6.00 |
| Cost per social profile | $0 (all 7 bundled) | $0.10 each | $0.10 each |
| Social networks covered | 7 (FB, IG, LinkedIn, X, YouTube, TikTok, Pinterest) | Add-on, per profile | Add-on, per profile |
| Emails from website | Yes | Yes | Yes |
| Phones from website | Yes | Yes | Yes |
| Actor-start fee | $0.002 flat | Higher fixed run fee | Higher fixed run fee |
| Billing model | Pay per event | Pay per event | Pay per event |
The headline difference is the social profiles. The other three tools charge $0.10 for every single social link on the free tier, so a lead with a Facebook, Instagram, LinkedIn, and TikTok costs an extra $0.40 on top of the base rate. This Actor folds all seven networks into the base contact enrichment event at no extra per-profile cost. Add the 20% lower headline price and the negligible actor-start fee, and a fully enriched list of 1,000 places lands well below the competition.
Pricing
Pay per event, no subscription.
- $0.004 per place returned with Maps metadata.
- $0.002 per contact-enriched place (charged only when
scrape_contactsis on and the website is crawled). - $0.002 per-run actor-start fee.
A fully enriched run of 1,000 places costs about $6.00 all in. A Maps-only run (contacts off) is roughly $4.00 per 1,000. You are billed for what you actually pull, so a run that returns 40 places costs pennies.
Limits and gotchas
- Emails are only returned if they actually appear on the business website. No website, no email. The
emailsarray comes back empty for those places. - Not every Maps place has a website. Places without one get full Maps metadata but
website_crawled: falseand empty contact fields, and they are not charged the enrichment event. - The contact crawl fetches the homepage and one likely contact page per site. It does not spider the whole domain, so an email buried five clicks deep may be missed.
- Social links are read from the website's own markup. A business that does not link its socials from its site will show
nulleven if the profile exists elsewhere. - Free-tier Apify accounts are capped at 10 results per run. Upgrade to a paid Apify plan to remove the cap and run the full
max_results_per_query. max_results_per_querytops out at 400 per query. To go wider, split into multiple queries (for example by neighborhood or by city).- Very generic queries can return places outside your intended area. Add the location into the query text (
"cafes in Shoreditch London") and setglandhlto match the target market for the cleanest results.
FAQ
How do I get email addresses from Google Maps?
Google Maps does not publish email addresses in its listings, so you cannot read them off Maps directly. This Actor solves it in two steps: it scrapes the Maps results for each of your queries, then for every place with a website it visits the homepage and contact page and extracts the emails found there. The addresses land in the emails array on each row. Keep scrape_contacts set to true to enable this.
Can I extract social media profiles from Google Maps businesses?
Yes. For each place that has a website, the Actor pulls Facebook, Instagram, LinkedIn, X (Twitter), YouTube, TikTok, and Pinterest links from the site into their own columns. All seven are included in the base contact enrichment charge, unlike competing Maps scrapers that bill $0.10 per profile. Profiles that are not linked from the website come back as null.
How many places can I scrape per search?
Up to 400 per query, controlled by max_results_per_query. You can pass many queries in one run, so scraping 400 places across each of 10 cities in a single run is 4,000 places total. Free-tier Apify accounts are limited to 10 results per run regardless of this setting.
Do I need a proxy or Google login cookies?
Both are on by default and recommended. use_proxy spreads requests across a proxy pool to avoid rate-limiting, and use_cookies attaches a fresh Google session to the internal Maps endpoint for more reliable results. For small test runs you can turn them off, but keep them on for anything at scale.
What is the difference between the phone and phones_on_website fields?
phone is the number Google Maps lists for the business. phones_on_website is every phone number found during the website crawl. They often match, but the website sometimes exposes a direct line, a mobile, or a department number that the Maps listing does not, which is useful when the main line goes to a switchboard.
Why are some contact fields empty?
Two reasons. Either the place has no website (so there is nothing to crawl, and website_crawled is false), or the website was crawled but did not contain that particular detail. The Actor only reports what is actually published on the site. It does not guess or fabricate contact data.
Related Actors
- Free Google Maps Scraper - Scrape Google Maps places: name, rating, phone, website, hours.
- Google Lens - Reverse image search: find where an image appears online plus matching products.
- Google AI Overview - Scrape Google AI Overview answers and the sources they cite.