Google Maps Places Scraper avatar

Google Maps Places Scraper

Pricing

Pay per usage

Go to Apify Store
Google Maps Places Scraper

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

Megan Studios

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

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:

FieldDescription
namePlace or business name
categoryGoogle Maps category when available
formatted_addressAddress text
phone_numberPhone number when visible
websiteWebsite URL when visible
ratingGoogle Maps rating
latitudeLatitude parsed from the Maps URL
longitudeLongitude parsed from the Maps URL
image_urlMain place image when available
google_maps_urlGoogle Maps place URL
opening_hoursOpening hours summary and periods when available
business_statusBasic open/closed status when available
keywordKeyword used for the run
locationLocation input used for the query
search_queryFinal Google Maps search query
reviewsOptional review snippets when enabled
dedup_hashStable 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

InputTypeDefaultDescription
keywordstringcafeBusiness keyword or search term
locationsstring array["New York"]One or more location names
maxResultsPerLocationinteger1Number of place detail pages to process per location
maxReviewsPerPlaceinteger0Number of reviews to extract per place. Use 0 to skip reviews
languagestringen-USBrowser locale
delaySecondsinteger1Delay between place detail pages

Current safety limits:

LimitValue
Max locations per run20
Max results per location50
Max reviews per place10
Max delay seconds10

How To Use

  1. Open the Actor in Apify Console.
  2. Fill in keyword and locations.
  3. Start with a small test, for example maxResultsPerLocation: 2.
  4. Open the Dataset tab after the run finishes.
  5. 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 OUTPUT record.

The summary includes:

{
"queries": 1,
"found": 12,
"saved": 2,
"failed": 0,
"blocked": false,
"errors": [],
"dataset_items": 2
}

Use small limits while testing:

{
"keyword": "dentist",
"locations": ["New York"],
"maxResultsPerLocation": 2,
"maxReviewsPerPlace": 0,
"language": "en-US",
"delaySeconds": 1
}

Other useful examples:

KeywordLocation
hotelLondon
hardware storeSydney
restaurantSingapore
car repairToronto

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: 1 or 2.
  • Keep maxReviewsPerPlace: 0 unless 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.