Google Maps Business Scraper avatar

Google Maps Business Scraper

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Google Maps Business Scraper

Google Maps Business Scraper

Extract business leads from Google Maps by keyword + location. Returns name, address, phone, website, category, rating, review count, and best-effort email — ready for CRM import, cold outreach, or market research. Pay only for the results you receive.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Don Johnson

Don Johnson

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Share

Google Maps Business Lead Extractor

Pull bulk local business leads from Google Maps by keyword + location. Returns name, address, phone, website, email, opening hours, photos count, rating, review count, plus an AI-style lead score and quality signals for every listing.

Built for sales teams, lead-gen agencies, local marketers, and SMB consultants who need territory-based prospect lists without paying per-seat for legacy data tools.

Why this actor

  • Real business contacts — extracts emails from each business's homepage in addition to phone numbers from Google Maps.
  • Lead scoring built in — every record ships with a 0–100 lead score and qualitative signals (high-rating, email-contactable, weak-digital-presence, etc.) so you can filter immediately.
  • Deduplicated — listings are deduplicated by Google's internal place id, so overlapping searches don't double-charge.
  • Geo targeting — anchor the map at a specific lat/lng with radiusKm to scope results to a territory.
  • Predictable pricing — pay only per result delivered.

Input

FieldTypeRequiredDefaultDescription
keywordstringyesBusiness type, e.g. "plumber", "law firm", "coffee shop"
locationstringyesCity / region / ZIP, e.g. "Austin, TX", "94110"
maxResultsintegerno25Max business listings to return (1–500)
radiusKmintegernoOptional radius (km); needs centerLat + centerLng to take effect
centerLatnumbernoOptional viewport center latitude (used with radiusKm)
centerLngnumbernoOptional viewport center longitude (used with radiusKm)
scrapeEmailbooleannotrueIf true, visit each business website and extract an email address

Example input

{
"keyword": "plumber",
"location": "Austin, TX",
"maxResults": 50
}

Output

Each item in the dataset:

{
"placeId": "0x865b39e11ea35387:0xf58d36a1244154f1",
"name": "Reliant Plumbing",
"category": "Plumber",
"address": "3841 Ranch Rd 620 S, Austin, TX 78738",
"phone": "(512) 222-6029",
"website": "https://reliantplumbing.com/",
"email": "office@reliantplumbing.com",
"rating": 4.7,
"reviewsCount": 2897,
"photosCount": 124,
"openingHours": {
"Monday": "Open 24 hours",
"Tuesday": "Open 24 hours",
"Wednesday": "Open 24 hours",
"Thursday": "Open 24 hours",
"Friday": "Open 24 hours",
"Saturday": "Open 24 hours",
"Sunday": "Open 24 hours"
},
"lat": 30.3152328,
"lng": -97.9479641,
"plusCode": "8GG6+H5 Austin, TX",
"googleMapsUrl": "https://www.google.com/maps/place/Reliant+Plumbing/...",
"searchKeyword": "plumber",
"searchLocation": "Austin, TX",
"categoryTags": ["Plumber", "home-services"],
"qualitySignals": [
"high-rating",
"established-volume",
"has-website",
"email-contactable",
"phone-contactable",
"photo-rich",
"full-hours-listed"
],
"leadScore": 85,
"scrapedAt": "2026-05-15T22:58:51.521Z"
}

All data is also exported as CSV / Excel / RSS from the Apify dataset UI — no extra config needed.

Lead score and quality signals

Each record carries a leadScore between 0 and 100, computed from:

  • Rating tiers (high-rating at ≥ 4.5, low-rating below 3.5)
  • Review volume (established-volume, moderate-volume, emerging)
  • Contact channels (has-website, email-contactable, phone-contactable)
  • Listing completeness (photo-rich, full-hours-listed)
  • Negative signals (weak-digital-presence, social-only-presence)

Filter the dataset on leadScore and qualitySignals to triage prospect lists before exporting.

Pricing

Pay-per-result. The Apify Store listing controls the per-record price; you're only charged for records actually delivered to the dataset.

VolumeApproximate cost
25~$0.25
100~$1.00
500~$5.00

How it works

  1. Builds the Google Maps search URL for ${keyword} in ${location}, or anchors the map at centerLat,centerLng with a zoom level approximating radiusKm.
  2. Scrolls the result feed in headless Chromium (Playwright) until maxResults unique place URLs are collected (dedup by place id).
  3. Opens each place page, extracts structured fields (name, address, phone, website, hours, photos, lat/lng, rating, review count).
  4. If scrapeEmail is enabled, opens each business website and pulls the first valid mailto: / text email, filtering image-filename false positives and known placeholders.
  5. Enriches each record with categoryTags, qualitySignals, and a 0–100 leadScore.
  6. Pushes one row per business to the default Apify dataset.

Runs on apify/actor-node-playwright-chrome:20.

Use cases

  • Sales reps building territory call lists with phone + email per business
  • Lead-gen agencies filling client CRMs with verified local businesses
  • SMB consultants scoping market opportunities in a new city or category
  • Franchise / expansion teams mapping competition by ZIP or radius
  • Local SEO auditors snapshotting Google Maps presence for a category

Notes

  • Best-effort email scraping. Emails are only extracted when present on the business homepage; some businesses use contact forms only.
  • For very large geographic areas, prefer running multiple smaller radiusKm searches anchored at different centerLat,centerLng points and dedupe across runs (already deduped within a single run).
  • Respect Google's terms of service. This actor performs the same fetches a manual user would perform.