Google Maps Scraper - Leads, Phones, Websites
Pricing
Pay per event
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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
| Capability | This Actor |
|---|---|
| Pricing | $2.50 per 1,000 returned places, plus start fee |
| Contacts | Phone, website and available hours in the same row |
| Collection limit | Configurable 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
| Field | Description |
|---|---|
| searchQueries | Search 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. |
| location | Optional; appended as "in |
| maxPlacesPerQuery | 1-400, default 100. |
| minRating | Skip lower-rated places (not charged). |
| skipPlacesWithoutWebsite / skipPlacesWithoutPhone | Keep only contactable leads (not charged). |
| language | en, 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.
rankis 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
| Problem | Solution |
|---|---|
Search in failed | Google temporarily rate-limited the request; rerun it. |
| Fewer places than requested | Inspect OUTPUT.queryStatus: source exhausted, filters, scan limit or upstream failure; broaden or split the search as appropriate. |
| Run stopped early | Max 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.