Google Maps Contact Leads: Emails, Phones & Websites avatar

Google Maps Contact Leads: Emails, Phones & Websites

Pricing

from $5.00 / 1,000 lead returneds

Go to Apify Store
Google Maps Contact Leads: Emails, Phones & Websites

Google Maps Contact Leads: Emails, Phones & Websites

Turn one or many Google Maps business searches into a deduplicated first-party contact list with public listing details, homepage contacts, social links, and conservative website-opportunity evidence.

Pricing

from $5.00 / 1,000 lead returneds

Rating

5.0

(1)

Developer

Luka

Luka

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

4 days ago

Last modified

Share

Turn one Google Maps search, a cross-market search list, or known Place IDs and Maps URLs into a deduplicated contact-lead dataset. Every delivered business gets the same complete workflow: stable Google identity, listing details, public phone and website, a bounded homepage contact check, social links, and conservative website-opportunity evidence.

The product visual below uses clearly labeled synthetic .test and .example data that follows the public product schema. It demonstrates the real buyer-facing row shape without making a claim about a live business or Cloud run.

Synthetic contact-lead Dataset with public contacts, homepage checks, opportunity evidence, and coverage

Quick start

Run this small search first:

{
"searchQuery": "restaurant",
"locationQuery": "New York, USA",
"maxPlaces": 10
}

Open the run's Dataset to export the leads as CSV, Excel, JSON, or through the Dataset API.

Choose the right workflow

GoalInputs to useResult
Search one marketsearchQuery, locationQuery, maxPlacesOne deduplicated local contact list.
Search several marketsAdd moreSearchQueries and moreLocationsUp to 9 extra searches and 9 extra locations share one result cap and one dedupe pass.
Check known placesChoose direct and add directPlaceTargetsExact Place IDs or full official Maps URLs, without broadening the search.
Refine a map areaAdd one coordinate center or customSearchAreaBounded official Maps searches inside the selected area.

Direct targeting example:

{
"targetingMode": "direct",
"directPlaceTargets": [
"ChIJpxUGhC_LRIYR2g941oH50ow",
"https://www.google.com/maps/place/Example/@30.1,-97.1,15z"
],
"maxPlaces": 2
}

Custom-area example:

{
"searchQuery": "roofing companies",
"locationQuery": "Austin, Texas",
"customSearchArea": {
"type": "Polygon",
"coordinates": [[
[-97.85, 30.20], [-97.65, 30.20], [-97.65, 30.38],
[-97.85, 30.38], [-97.85, 30.20]
]]
},
"searchAreaGridSize": 4,
"maxPlaces": 100
}

The polygon grid is a bounded search aid. It does not claim that Google exposes every business inside arbitrary geometry. The run reports exactly which planned tasks finished and why work stopped.

What you get

Every delivered row includes:

  • Google Place ID or numeric CID, business name, category, address, coordinates, rating, published review count, listing phone, website, and direct Maps URL;
  • public homepage emails, telephone links, social profiles, contact-page URL, and contact-form detection when the linked website exposes them;
  • conservative website classification, contact-flow signals, opportunity score, outreach opening line, evidence, warnings, and do-not-claim safeguards;
  • coverage status, stop reason, task/page counts, duplicate counts, rejected-row counts, and filter counts.

This compact synthetic fixture row follows the same public Dataset schema. Its identity and contacts are intentionally non-live; missing values still remain missing instead of being invented:

{
"rowId": "SYNTHETIC_PLACE_NORTHSTAR_001",
"placeId": "SYNTHETIC_PLACE_NORTHSTAR_001",
"cid": "SYNTHETIC_CID_900000000000000001",
"businessName": "Northstar Plumbing Lab (Synthetic)",
"category": "Plumber",
"address": "100 Fixture Avenue, Demo City",
"phonePublic": "+1 555 010 1001",
"websiteUrl": "https://northstar-plumbing.test/",
"emails": ["hello@northstar-plumbing.test"],
"socialProfiles": ["https://social.example/northstar-plumbing"],
"contactPageUrl": "https://northstar-plumbing.test/contact",
"contactFormDetected": true,
"contactExtractionStatus": "website_homepage_enriched",
"websiteClassification": "weak_generic_site",
"webPresenceCategory": "WEAK_CONVERSION_SITE",
"contactDataConfidence": "high",
"priorityTier": "shortlist",
"actionPriorityScore": 77,
"coverageStatus": "COMPLETE",
"coverageStopReason": "SOURCE_EXHAUSTED"
}

googleReviewCount remains null when the Google response does not publish a total. Empty never means zero. A homepage that cannot be checked becomes unreachable_or_uncertain, not a claimed broken website.

Input guide

FieldWhat it changesWork and price effect
targetingModeBroad search or exact direct-place targeting.Direct mode uses one official place page per supplied target.
searchQueryPrimary business type or search phrase.One side of the search-location cross product.
locationQueryCity, region, county, postal code, country, or service area.One side of the search-location cross product.
maxPlacesTotal unique output cap, 1-1,000; default 10.More leads can require more source pages, homepage checks, runtime, memory, and paid rows.
maxPlacesPerSearchPer query-location cap, 1-100.Prevents one search from consuming the whole bulk run.
moreSearchQueriesUp to 9 extra business types.Adds tasks; all results still share one dedupe and total cap.
moreLocationsUp to 9 extra text locations.Multiplies search pairs within the 20-task guard.
directPlaceTargetsUp to 1,000 Place IDs or full official Maps URLs.The complete listing, contact, and homepage workflow per unique target.
searchLatitude / searchLongitudeOne map center; supply both.Refines the official Maps viewport.
searchZoomZoom 3-21 when a coordinate center is present.A tighter or wider viewport; default 13.
customSearchAreaGeoJSON Polygon using [longitude, latitude] pairs.Builds bounded official Maps centers inside the area.
searchAreaGridSize1-9 centers inside the polygon; default 4.More centers use more of the 20-task guard.
languageListing language such as en, de, or pt-BR.Changes source text and can change the matching set.
countryCodeTwo-letter Google region such as US, DE, or ME.Keeps regional results and repeat runs comparable.
websitePresenceAny, only with website, or only without website.Removed rows are not delivered or charged.
minimumRatingMinimum published Google rating from 0-5.Unrated rows are removed when this is above zero.
categoryKeywordsRequires at least one Google category word.Applied before delivery.
nameMustIncludeCase-insensitive name filter.Applied before delivery.
skipClosedPlacesRemoves only listings explicitly marked closed.Missing status is never guessed to mean open.

Homepage contact and opportunity analysis is always included. There is no hidden cheaper basic-place mode.

Pricing

The owner-approved launch pay-per-event schedule uses two clear events. You pay only for accepted official source batches and complete contact-lead rows actually delivered:

EventFREEBRONZESILVERGOLDCounted when
Verified source batch$0.00250$0.00250$0.00250$0.00250Up to 10 official listing pages are accepted as trustworthy source work.
Delivered contact lead$0.001745$0.001740$0.001735$0.001730One unique complete contact-lead row is accepted into the Dataset.
complete price = ceil(accepted source pages / 10) x source-batch rate
+ delivered unique contact leads x row rate

FREE examples:

WorkloadComplete price
Confirmed empty, 1 accepted page$0.00250
1 contact lead, 1 page$0.004245
Safe default: 10 contact leads, 1 page$0.019950
20 contact leads, 1 page$0.037400
100 contact leads, 5 pages$0.177000
100 leads across 20 accepted pages$0.179500
1,000 direct targets across 1,000 accepted pages$1.995000

Blocked, failed, unrecognized, retried, and merely planned pages are not counted in source batches. Duplicate, invalid, filtered, suppressed, and rejected rows are not contact-lead events.

Coverage and reliability

StatusMeaning
COMPLETEEvery planned search reached proven source exhaustion, or every supplied direct target completed its one exact official place-page task.
EMPTY_CONFIRMEDA recognized Google response proved zero matching listings.
FILTEREDThe source worked, but buyer filters removed some or all listings.
CAPPEDA result, per-search, page, byte, request, runtime, or spending guard stopped more work.
PARTIALTrustworthy results were found, but at least one planned task did not finish.
BLOCKEDGoogle returned an access challenge; this is never reported as an empty market.
FAILEDThe source could not be read reliably before trustworthy completion.

Production data comes only from official public Google Maps pages. The Actor does not use a competitor Actor or third-party lead database. Access challenges are reported as BLOCKED, never converted into empty markets or charged leads.

Rows are prepared before charging and delivery. A successful run confirms the source-batch count, atomically delivers complete contact-lead rows, records the delivery result, writes the final run output, and then clears the active receipt. An ambiguous repeat fails closed rather than risking a duplicate paid delivery.

This is a current-list product: every run reads current listings independently. It does not label a current NPI-style or business listing as a historical change.

API and automation

Use the same input from the Console, Apify API, webhooks, Make, Zapier, n8n, or your own script. The Dataset API URL is returned in OUTPUT, together with the coverage status, stop reason, delivered count, and stable run identity.

For repeat lead collection, save one small input per market and run it on the cadence that suits your workflow. Store the stable placeId or cid in your CRM to update an existing business instead of creating a duplicate. A repeated run is a fresh current-list read; your automation decides whether a row is new or changed for your own CRM.

FAQ and support

Why did I receive fewer rows than maxPlaces?

maxPlaces is a cap, not a promise that the source contains that many matching businesses. Check coverageStatus, coverageStopReason, and the filter, duplicate, rejected, page, and task counters.

Why is an email missing?

The Google listing and sampled homepage did not publish one. The Actor does not guess addresses or use a third-party lead database.

Can I send a known list instead of searching?

Yes. Choose direct targeting and provide Place IDs or full official Maps URLs.

Are review histories, images, or popular-times histories included?

No. Those are separately selected and separately priced workflows in the locked market comparison, not core contact-lead output. Rating and review-count fields are returned only when the Google listing response publishes them.