Google Maps Places Scraper
Pricing
Pay per usage
Google Maps Places Scraper
Scrape public Google Maps place results by keyword and location
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Megan Studios
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
Scrape public Google Maps place search results by keyword and location. This Actor is built for lead research, local business discovery, market mapping, and directory enrichment across supported Google Maps locations.
Enter a business keyword such as cafe, dentist, hotel, restaurant, or hardware store, add one or more locations, and the Actor returns structured place data in an Apify Dataset that can be exported to JSON, CSV, Excel, XML, RSS, or HTML.
What You Get
Each dataset item can include:
| Field | Description |
|---|---|
name | Place or business name |
category | Google Maps category when available |
formatted_address | Address text |
phone_number | Phone number when visible |
website | Website URL when visible |
rating | Google Maps rating |
latitude | Latitude parsed from the Maps URL |
longitude | Longitude parsed from the Maps URL |
image_url | Main place image when available |
google_maps_url | Google Maps place URL |
opening_hours | Opening hours summary and periods when available |
business_status | Basic open/closed status when available |
keyword | Keyword used for the run |
location | Location input used for the query |
search_query | Final Google Maps search query |
reviews | Optional review snippets when enabled |
dedup_hash | Stable hash for deduplication |
Example Input
{"keyword": "cafe","locations": ["New York"],"maxResultsPerLocation": 1,"maxReviewsPerPlace": 0,"language": "en-US","delaySeconds": 1}
Example Output
{"name": "Example Coffee Shop","category": "Coffee shop","formatted_address": "123 Example Street, New York, NY","phone_number": "+1 212...","website": "https://example.com","rating": 4.5,"latitude": 40.7128,"longitude": -74.006,"google_maps_url": "https://www.google.com/maps/place/...","keyword": "cafe","location": "New York","search_query": "cafe in New York","source": "google_maps"}
Actual output depends on what is publicly visible on Google Maps at run time.
Input Options
| Input | Type | Default | Description |
|---|---|---|---|
keyword | string | cafe | Business keyword or search term |
locations | string array | ["New York"] | One or more location names |
maxResultsPerLocation | integer | 1 | Number of place detail pages to process per location |
maxReviewsPerPlace | integer | 0 | Number of reviews to extract per place. Use 0 to skip reviews |
language | string | en-US | Browser locale |
delaySeconds | integer | 1 | Delay between place detail pages |
Current safety limits:
| Limit | Value |
|---|---|
| Max locations per run | 20 |
| Max results per location | 50 |
| Max reviews per place | 10 |
| Max delay seconds | 10 |
How To Use
- Open the Actor in Apify Console.
- Fill in
keywordandlocations. - Start with a small test, for example
maxResultsPerLocation: 2. - Open the Dataset tab after the run finishes.
- Export the results as CSV, Excel, JSON, XML, RSS, or HTML.
Output
The Actor stores:
- Scraped places in the default Apify Dataset.
- Run summary in the default key-value store under the
OUTPUTrecord.
The summary includes:
{"queries": 1,"found": 12,"saved": 2,"failed": 0,"blocked": false,"errors": [],"dataset_items": 2}
Recommended Test Inputs
Use small limits while testing:
{"keyword": "dentist","locations": ["New York"],"maxResultsPerLocation": 2,"maxReviewsPerPlace": 0,"language": "en-US","delaySeconds": 1}
Other useful examples:
| Keyword | Location |
|---|---|
hotel | London |
hardware store | Sydney |
restaurant | Singapore |
car repair | Toronto |
Notes And Limitations
- This Actor uses browser automation with Playwright.
- This Actor does not use the Google Places API.
- This Actor does not log in to Google accounts.
- This Actor does not bypass CAPTCHA, consent blockers, suspicious activity pages, or other Google protection pages.
- If Google shows a CAPTCHA, consent blocker, suspicious activity page, or error page, the run stops and records the blocker status.
- Google Maps layout and selectors can change over time, so extracted fields may vary.
- Availability of phone numbers, websites, images, reviews, and opening hours depends on what is publicly visible on Google Maps.
Tips To Reduce Usage Cost
- Start with
maxResultsPerLocation: 1or2. - Keep
maxReviewsPerPlace: 0unless reviews are required. - Test one location first before running many locations.
- Increase limits gradually after confirming the output.
Use Cases
- Local lead generation
- Market research
- Competitor mapping
- Business directory enrichment
- Location intelligence
- Sales prospecting
Responsible Use
Use this Actor responsibly and only for lawful purposes. Review Google Maps terms and local data protection rules before collecting, storing, or using scraped data.