Google Maps Contact Enrichment — Business Lead Finder
Pricing
from $6.67 / 1,000 results
Google Maps Contact Enrichment — Business Lead Finder
Find businesses on Google Maps, then pull an email address and social media links straight off their website. Turns a Maps search into a ready-to-use B2B contact list.
Pricing
from $6.67 / 1,000 results
Rating
0.0
(0)
Developer
Farhan Febrian Nauval
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 days ago
Last modified
Categories
Share
Google Maps Contact Enrichment
Find businesses on Google Maps and get back their email address and social media links — pulled straight from their own website. Turns a Maps search into a ready-to-use B2B contact list.
Why use this actor
- Search or direct lookup — search by business type + location (e.g. "dentist" in "New York, NY"), or pass exact Google Maps links / place IDs if you already have them.
- No account or login required — nothing to configure, nothing to authenticate.
- Finds the website for you — most Maps listings don't show their website field directly; this actor pulls it from the place's full detail page automatically.
- Real contact data, not guesses — email addresses (including simple "name [at] domain [dot] com" style hiding) and social profile links (Facebook, Instagram, LinkedIn, X/Twitter, TikTok, YouTube), read from the actual homepage and a linked contact/about page.
- Honest results — if a business's website doesn't publish any contact info, you get a clear
"no_contact_found"status back, not a fabricated guess. - Stable JSON output, ready for CRM import or a cold-outreach pipeline.
How it works
- You give the actor a business type + location (search mode) or a list of exact Google Maps links / place IDs (direct mode).
- In search mode, the actor looks up matching places on Google Maps, then fetches each place's full profile to get its website (most search results don't carry a website field on their own).
- For every website found, the actor fetches the homepage — and a contact/about page if the homepage links to one — and scans the page for email addresses and social profile links.
- Every place becomes one row in your dataset, whether or not contact info was found, so you always know exactly what was checked and what came back empty.
You don't need to manage any browser, proxy, or scraping infrastructure — just give it a query and get a dataset back.
Known limitations (read this before relying on the numbers)
- Not every business site publishes an email or social link on its homepage/contact page — some hide it behind a contact form only, some only show a phone number. This is a limitation of the target sites, not the actor.
- JavaScript-only contact widgets are not rendered — this actor reads the page's HTML, it does not run a browser. If a site injects its email or social icons purely via client-side JavaScript with no fallback in the page source, it won't be picked up.
- Some sites actively block automated requests (
site_unreachablestatus) — a handful of business websites return 403s or time out for any non-browser request, regardless of scraper. - Real observed hit rate: across 56 real business websites tested (dentists in New York, plumbers in Austin, coffee shops in Seattle), 71% returned at least one email or social link (41% an email, 66% a social link). Your results will vary by industry — service businesses with active social media (plumbers, coffee shops) tend to score higher than smaller practices with bare-bones sites.
Input
Search mode (default)
{"mode": "search","query": "dentist","location": "New York, NY","maxItems": 20,"maxConcurrency": 5,"language": "en","country": "us"}
Direct mode
{"mode": "direct","placeUrls": ["https://www.google.com/maps/place/Empire+State+Building/@40.7484,-73.9857,17z"],"maxItems": 20}
| Field | Type | Description |
|---|---|---|
mode | string | "search" (default) — find businesses by keyword + location. "direct" — pass exact Maps URLs or item_ids and skip search. |
query | string | Business type/keyword to search for. Only used in search mode. |
location | string | City/area text (e.g. "New York, NY"), or exact "lat,lng" coordinates. Only used in search mode. |
placeUrls | array | Full Google Maps place URLs, or item_ids (0x...:0x...). Only used in direct mode. |
maxItems | integer | Max number of places to look up and enrich in this run. Default: 20. |
maxConcurrency | integer | How many places to process in parallel. Default: 5. |
language | string | Language for the Google Maps result text. Default: en. |
country | string | Geographic bias for Google Maps results. Default: us. |
Output
Real sample from a search run (query: "plumber", location: "Austin, TX"):
{"_input": "plumber | Austin, TX","_scrapedAt": "2026-08-06T09:53:56Z","placeName": "Beyond Wow Plumbing & Drains","placeAddress": "3432 Greystone Dr, Austin, TX 78731","category": "Plumber","phone": "(512) 601-6173","mapsUrl": "https://www.google.com/maps/place/Beyond+Wow+Plumbing+%26+Drains/@30.3578911,-97.7482485,14z/data=...","website": "https://beyondwow.com/?utm_campaign=gmb&utm_medium=gbp-austin&utm_source=google","contactEmails": ["info@beyondwow.com"],"socialLinks": {"facebook": "https://www.facebook.com/beyondwowplumbing","instagram": "https://www.instagram.com/beyondwowplumbing","tiktok": "https://www.tiktok.com/@beyondwowplumbing","youtube": "https://www.youtube.com/@beyondwowplumbing","linkedin": "https://www.linkedin.com/company/beyondwowplumbing"},"pagesChecked": ["https://beyondwow.com/?utm_campaign=gmb&utm_medium=gbp-austin&utm_source=google","https://beyondwow.com/contact/"],"enrichmentStatus": "found"}
Real example where the website was reachable but published no contact info at all (an honest "nothing found" result, not an error):
{"_input": "plumber | Austin, TX","placeName": "Rooter-Man Plumbing Austin TX","placeAddress": "15503 Patrica St, Austin, TX 78728","category": "Plumber","phone": "(512) 720-7092","website": "http://rooterman.com/austin/","contactEmails": [],"socialLinks": {},"pagesChecked": ["https://rootermanofaustin.com/"],"enrichmentStatus": "no_contact_found"}
| Field | Type | Description |
|---|---|---|
placeName | string | Business name from Google Maps. |
placeAddress | string | Business address from Google Maps. |
category | string | Business category/type (e.g. "Plumber", "Dentist"). |
phone | string | Phone number, from Google Maps (not the website). |
mapsUrl | string | Link back to the Google Maps listing. |
website | string | null | The business's website, as listed on Google Maps. null if Maps has no website on file. |
contactEmails | array | Email addresses found on the website. Empty if none found. |
socialLinks | object | Social profile links found, keyed by platform (facebook, instagram, linkedin, twitter, tiktok, youtube). Empty if none found. |
pagesChecked | array | Which page(s) were actually fetched (homepage, and a contact/about page if one was found and followed). |
enrichmentStatus | string | "found" (email or social found), "no_contact_found" (website checked, nothing published), "no_website" (Maps has no website on file), "site_unreachable" (website blocked the request, errored, or timed out), "no_places_found" / "maps_search_failed" / "maps_lookup_failed" (search/lookup problems, see _error). |
_input | string | The query + location (search mode) or the URL/item_id (direct mode) that produced this row. |
_scrapedAt | string | UTC timestamp of when this row was collected. |
Tips
- If you already run Google Maps Search Places, feed its
item_idvalues straight intodirectmode here to skip the search step. - Raise
maxConcurrencyfor faster runs on well-behaved sites; lower it if you're seeing a lot ofsite_unreachableresults (some anti-bot-protected sites rate-limit aggressively). enrichmentStatus: "no_website"means the fix is on the Google Maps listing itself, not this actor — the business hasn't added a website to their profile.
Pair with other actors
- Use Google Maps Search Places first if you want the full raw list of places before deciding which ones to enrich.
- Use Google Maps Place Detail if you only need the Maps profile (hours, popular times, ratings) without the website enrichment step.