Google Maps Scraper - Leads, Phones, Websites avatar

Google Maps Scraper - Leads, Phones, Websites

Pricing

Pay per event

Go to Apify Store
Google Maps Scraper - Leads, Phones, Websites

Google Maps Scraper - Leads, Phones, Websites

Extract businesses from Google Maps by keyword and location: name, category, address, phone, website, rating, review count, opening hours, coordinates, place ID. Filter by rating, website, phone. No API key. $2.50 per 1,000 places.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Andres Garcia-Baquero Leon

Andres Garcia-Baquero Leon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Turn any Google Maps search into a lead list: business name, category, full address, phone (local and E.164), website, rating, review count, opening hours, coordinates, place ID and Maps URL. Type what you would search in Google Maps ("dentists in Chicago"), set a limit and export to CSV, Excel, JSON or your CRM. No Google API key, no browser, fast and cheap.

Price: $2.50 per 1,000 places ($0.0025 per place). Places removed by your filters (min rating, website, phone) are not charged.

Why use it

CapabilityThis Actor
Pricing$2.50 per 1,000 returned places, plus start fee
ContactsPhone, website and available hours in the same row
Collection limitConfigurable 1-400; availability depends on Google

Output example

{
"name": "Beyond Wow Plumbing & Drains",
"category": "Plumber",
"categories": ["Plumber", "Drainage service", "Gas installation service"],
"address": "3432 Greystone Dr, Austin, TX 78731, United States",
"street": "3432 Greystone Dr",
"neighborhood": "Northwest Hills",
"city": "Austin, TX, United States",
"phone": "+1 512-601-6173",
"phoneE164": "+15126016173",
"website": "https://beyondwow.com/",
"rating": 4.9,
"reviewsCount": 2592,
"latitude": 30.3578911,
"longitude": -97.7482485,
"timezone": "America/Chicago",
"openingHours": {"Monday": "7 am–6 pm", "Saturday": "Closed"},
"placeId": "ChIJpxUGhC_LRIYR2g941oH50ow",
"cid": "10147447246463438810",
"googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJpxUGhC_LRIYR2g941oH50ow",
"searchQuery": "plumbers in Austin TX",
"rank": 1
}

Input

FieldDescription
searchQueriesSearch terms like "dentists in Chicago". Omitting searchQueries (e.g. {}) runs a demo. Explicit empty, blank or invalid targets fail with an OUTPUT diagnostic; they never become demo data.
locationOptional; appended as "in
maxPlacesPerQuery1-400, default 100.
minRatingSkip lower-rated places (not charged).
skipPlacesWithoutWebsite / skipPlacesWithoutPhoneKeep only contactable leads (not charged).
languageen, es, de...

Use cases

  • Lead generation for agencies and B2B sales: local businesses with phone and website by niche and city.
  • Market research: count and rate competitors in an area.
  • Local SEO: see who ranks for "plumber in Austin" and their ratings. rank is the position in this returned source sequence, not a universal personalized Maps/SEO rank.
  • Data enrichment: place IDs and coordinates for mapping and CRM matching.

Tips for more results

This Actor inspects at most 400 source positions per query as an operational safety limit, not a guaranteed Google source limit or result count. For a whole city, split it: "dentists in Chicago 60601", "dentists in Lincoln Park Chicago", etc. Duplicates across searches in one run are removed automatically and not charged.

Pricing

Pay per event: $0.0025 per place plus the tiny standard Apify actor-start fee. Set a max cost per run and the Actor stops before another result would exceed it. The start event may apply even when no results are returned.

FAQ

Do I need a Google API key? No. Do you extract emails? Not in this version; the website field lets you enrich emails with any contact-scraper. Do you extract reviews text? No, only rating and review count. Why is reviewsCount sometimes empty? Google omits the count in some regional result formats. reviewsCountAvailable reports whether the count was provided, including a valid zero.

Are opening hours a complete week? Not always. openingHoursCoverage is full_week, partial or unavailable; openingHoursDays counts non-null days. Missing days are unknown, not closed.

Are queries matched exactly? Google may correct or approximate your query. Each row includes searchMatchType: google_interpreted; no exact-name or keyword-match guarantee is made. The original query is retained in searchQuery.

How are partial runs reported? OUTPUT contains queryStatus per query with status and stopReason: source_exhausted, result_limit, scan_limit, charge_limit or upstream_failure. complete means this returned result sequence ended, not that every business in the area was found. A scan limit or upstream failure is reported as partial; all upstream requests failing with no delivered places causes FAILED.

How does deduplication work? Place IDs (or feature IDs) are deduplicated before billing. Only delivered identities are globally excluded from later queries; unreturned page tails remain eligible.

Troubleshooting

ProblemSolution
Search in failedGoogle temporarily rate-limited the request; rerun it.
Fewer places than requestedInspect OUTPUT.queryStatus: source exhausted, filters, scan limit or upstream failure; broaden or split the search as appropriate.
Run stopped earlyMax cost per run reached.

Only publicly listed business data is collected. You are responsible for compliance with Google's terms and privacy laws (GDPR, CAN-SPAM) when contacting leads.