Google Maps Lead Extractor with email — One-Page HTML Scraper avatar

Google Maps Lead Extractor with email — One-Page HTML Scraper

Under maintenance

Pricing

from $0.01 / 1,000 actor starts

Go to Apify Store
Google Maps Lead Extractor with email — One-Page HTML Scraper

Google Maps Lead Extractor with email — One-Page HTML Scraper

Under maintenance

Extract B2B leads including emails from Google Maps via Places API (bring your own API key) or single-page HTML. No credentials in source code.

Pricing

from $0.01 / 1,000 actor starts

Rating

0.0

(0)

Developer

Christian G. Ulloa

Christian G. Ulloa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Google Maps Lead with Email Extractor

Extract structured B2B leads with email addresses from Google Maps using the official Places API (New), or from a single static HTML page (JSON-LD, embedded Maps JSON, custom CSS selectors). Results are pushed to an Apify dataset.

Unlike most Google Maps Actors published on Apify, this Actor also scrapes email addresses from each business website — most competing Maps scrapers only return phone and website and leave email outreach to you.

Credentials are never stored in code. You provide your own Google Cloud API key in the Actor input (secret field).


What does this Actor do?

Two extraction modes:

ModeBest forCredentials needed
Google Places API (default)Bulk search — "plumbers in Austin TX"Google Places API key
Single page HTMLJSON-LD business sites, static directoriesNone (optional proxy)

The Places API mode returns name, phone, website, address, category, and Google Maps URL. With email scraping enabled, it also fetches each business homepage and extracts the best contact email — a step most competing Maps Actors leave to you manually.

Apify platform advantages: secret input fields, scheduled runs, API access, proxy rotation, monitoring, CRM integrations.


Google Cloud setup

You must create your own API key. This Actor does not ship with Google credentials.

Quick steps

  1. Create a Google Cloud project
  2. Enable billing
  3. Enable Places API (New)
  4. Create an API key under APIs & Services → Credentials
  5. Restrict the key to Places API (New) only
  6. Paste the key into the Actor input → Google Places API key (masked secret)

Full walkthrough with troubleshooting: ./GOOGLE_CLOUD_SETUP.md


How to use this Actor

  1. Open the Actor in Apify Console.
  2. Set Extraction mode to Google Places API.
  3. Paste your Google Places API key (never commit this to git).
  4. Enter a Search query (e.g. coffee shops in Austin TX).
  5. Set Max results and run.
  6. Download leads from the Dataset tab.

Local development

cd Apify/my-actor
pip install -r requirements.txt
# Edit storage/key_value_stores/default/INPUT.json — add googlePlacesApiKey
python -m my_actor

Or: apify run


Input

FieldRequiredDescription
extractionModeYesgooglePlacesApi or singlePageHtml
googlePlacesApiKeyPlaces modeSecret — your GCP API key
searchQueryPlaces modee.g. "dentists in Chicago"
scrapeEmailsFromWebsitesNoFetch homepage email per listing
startUrlHTML modeSingle page URL to parse
maxResultsNo (default 50)Cap on leads (max 2500)
proxyConfigurationNoApify Proxy (HTML mode)
customSelectorsNoCSS overrides (HTML mode)

Example input (Places API)

{
"extractionMode": "googlePlacesApi",
"googlePlacesApiKey": "YOUR_API_KEY_HERE",
"searchQuery": "plumbers in Austin TX",
"maxResults": 50,
"scrapeEmailsFromWebsites": true
}

Example input (HTML mode)

{
"extractionMode": "singlePageHtml",
"startUrl": "https://example.com/directory",
"maxResults": 20,
"customSelectors": {
"item": "article.listing",
"name": ".business-name"
}
}

Output

{
"name": "Joe's Plumbing",
"category": "Plumber",
"address": "123 Main St, Austin, TX 78701, USA",
"phone": "+1 512-555-0100",
"website": "https://joesplumbing.example",
"email": "info@joesplumbing.example",
"rating": null,
"reviewCount": null,
"googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:places/ChIJ...",
"sourceUrl": "plumbers in Austin TX"
}

Export as JSON, CSV, or Excel from the Apify Console.


Single-page HTML mode — JavaScript limitation

Google Maps search pages (/maps/search/...) load listings via JavaScript. HTML mode cannot execute JS and usually returns zero leads for search URLs. Use Places API mode for Maps bulk search, or HTML mode for place detail URLs / JSON-LD sites.


Pricing / cost estimation

This Actor uses Pay per event + usage on the Apify Store. Full setup: ./STORE_PRICING.md.

ChargeSuggested priceNotes
Actor start~$0.00005 / runPlatform event apify-actor-start
Lead extracted~$0.002 / leadCustom event lead-extracted
Apify computevariesRuntime + memory
Google Places APIyour GCP billBYO API key

Set max total charge per run in Apify Console to cap spend.


FAQ

Where do I get an API key? See ./GOOGLE_CLOUD_SETUP.md.

Is my API key safe? Apify marks googlePlacesApiKey as a secret in the input UI. Do not paste keys into public GitHub issues or README files.

Can I use the local CLI instead? Yes — localScraper/extract.py with export PLACES_API_KEY=....


License and responsibility

Comply with Google Maps Platform Terms and applicable privacy/telemarketing laws.