Advanced Google Maps Scraper avatar

Advanced Google Maps Scraper

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Advanced Google Maps Scraper

Advanced Google Maps Scraper

Google Maps place details scraper. Give it Place IDs, Google Maps URLs, or a Manager dataset. Get name, category, address, phone, website, rating, review count, opening hours, plus code, and amenities when Google lists them. $5 per 1,000 results, less on Silver and Gold.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

slash scrape

slash scrape

Maintained by Community

Actor stats

4

Bookmarked

211

Total users

0

Monthly active users

14 days ago

Last modified

Share

Google Maps place details scraper by Place ID or URL

This Google Maps scraper collects place details for places you already know. Give it Google Maps Place IDs, Google Maps place URLs, or a dataset of Place IDs from the Advanced Google Maps Scraping Manager. It opens each place page and writes one row per place to your dataset.

Use it to build lead generation lists, local SEO and local business research datasets, or travel and location data from Google Maps.

This actor does not search Google Maps by keyword or location. To find places first, use the Advanced Google Maps Scraping Manager and chain this scraper to it.

What Google Maps data you get

Core fields

  • Name (name). Every row has a name. If the name cannot be read, no row is written for that place.
  • ID (id). The Google Place ID when you supply Place IDs or a dataset of Place IDs. For URL inputs this is a random unique ID, not the Google Place ID. If you need the Google Place ID back, use placeIds instead of urls.
  • Category (category). Google's category, for example "Historical landmark" or "Corporate office".
  • Address (address). The address shown on the place page. For landmarks and parks this can be a short address with no street number, such as "New York, NY 10004".

Category and address came back for every place in our tests on the current build. They can still be missing for a place where Google does not list them.

Extra fields, returned when Google shows them

These fields are included when Google shows them on the place page and left out when it does not.

  • Phone (phone). Phone number.
  • Website (website). Website link.
  • Rating (rating). Average star rating.
  • Review count (reviewCount). Total number of reviews. For review text, use the Advanced Google Maps Reviews Scraper.
  • Opening hours (times["Opening times"]). Weekly hours as seven arrays, one per day. Index 0 is Sunday and 6 is Saturday. Each array holds open and close times as 24-hour numbers. Open 10am to 11:30am and 1pm to 4pm is [1000, 1130, 1300, 1600]. Open 24 hours is [0, 2359]. An empty array means no hours were listed for that day.
  • Plus code (plusCode). Google's short location code, for example MXQ4+M5 New York.
  • Description (description). Google's short description of the place, mostly for landmarks and attractions.
  • Properties and amenities (properties). Groups from the About tab, such as Accessibility, Amenities, or Service options, each with a list of items such as "Wheelchair-accessible entrance".

Not returned

  • Popular times. Google hides popular times from signed-out visitors, and this actor browses signed out, so it does not return them.
  • Menu link. Hidden in the same signed-out view, so it is not returned.
  • Photo count. Not returned. For photo links, use the Advanced Google Maps Photos Scraper.

Example output

A real row from the current build for the Statue of Liberty (Place ID input). Which fields appear depends on what Google shows for each place.

{
"id": "ChIJPTacEpBQwokRKwIlDXelxkA",
"name": "Statue of Liberty",
"rating": 4.7,
"reviewCount": 112766,
"category": "Historical landmark",
"address": "New York, NY 10004",
"phone": "(212) 363-3200",
"website": "https://www.nps.gov/stli/index.htm",
"plusCode": "MXQ4+M5 New York",
"times": {
"Opening times": [
[830, 1830], [830, 1830], [830, 1830], [830, 1830],
[830, 1830], [830, 1830], [830, 1830]
]
},
"description": "Iconic National Monument opened in 1886, offering guided tours & a museum, plus harbor & city views.",
"properties": [
{ "type": "Accessibility", "properties": [
"Has wheelchair accessible entrance",
"Has wheelchair accessible parking lot",
"Has wheelchair accessible restroom",
"Has wheelchair accessible seating"
] }
]
}

Illustrative example (made-up values): a row where Google shows only the basics can be as short as:

{
"id": "f864d2ba-010b-46d6-afac-291f81231b3d",
"name": "Example Building",
"category": "Building",
"address": "69 Example Rd, City, 00000, Country"
}

You can download results as JSON, CSV, Excel, and other formats, or read them through the Apify API.

Input

  • Google Maps Place IDs (placeIds). Place IDs such as ChIJPTacEpBQwokRKwIlDXelxkA. This is the recommended input. It is the most dependable, and it puts the Google Place ID in the id field.
  • Google Maps URLs (urls). https://www.google.com/maps/place/?q=place_id:... URLs and full place URLs copied from the browser address bar (the ones that contain /data=) are tested and work. Shorter URLs that contain only a place name, and maps.app.goo.gl Share-button links, should also work on the current build but have had less testing. If one does not return a row, use the full place URL or the Place ID instead.
  • Dataset ID (datasetId). An Apify dataset whose items have a placeId field, such as the output of the Advanced Google Maps Scraping Manager. Duplicate Place IDs in the dataset are removed before scraping.

You can mix all three in one run. Give each place only once. If you supply the same place as both a URL and a Place ID, it is scraped twice, you get two rows, and you pay for both.

Example input:

{
"placeIds": ["ChIJPTacEpBQwokRKwIlDXelxkA", "ChIJN1t_tDeuEmsRUsoyG83frY4"],
"urls": ["https://www.google.com/maps/place/?q=place_id:ChIJ4zGFAZpYwokRGUGph3Mf37k"]
}

Pricing

This actor is pay per event. You pay for results, not for platform usage.

Apify planPrice per 1,000 results
Free and Bronze$5.00
Silver$4.50
Gold and higher$4.00

One result is one place row in the dataset. Every row costs the same no matter how many fields it has. Each run also has a small Actor start charge of $0.00005 per GB of memory. At the default 2 GB that is 2 events, or $0.0001 per run. If a place page fails and no row is written, there is no result charge for that place.

Use it with the other SlashScrape Google Maps actors

Speed and memory

The default memory is 2 GB. At that setting each place takes roughly 5 to 11 seconds in testing. Places with weekly hours and a full About tab take longer than places with only the basics. Running with less than 2 GB is not recommended. Pages that fail to load are retried before they are skipped, which adds time.

FAQ

Why are popular times missing? Google hides popular times (and menu links) from signed-out visitors. This actor browses signed out, so these fields are not returned.

Why is a field missing for some places? Google does not show every detail for every place. Fields are included only when they are on the page.

Can I use a maps.app.goo.gl share link? It should work on the current build, but it has had less testing than Place IDs and full place URLs. If a short link does not return a row, open it in a browser and copy the full URL, or use the Place ID.

Can I search Google Maps by keyword and location with this actor? No. This actor needs Place IDs, URLs, or a dataset. Use the Advanced Google Maps Scraping Manager to search, then chain this scraper.

Does it return emails? No. It returns what it reads from the Google Maps place page. For social handles from a place's website, use the Social Handle Scraper.

Why is id not a Google Place ID? For URL inputs, id is a random unique ID. Supply placeIds (or a Manager dataset) to get the Google Place ID in id.

Can I export the data? Yes. Download it as JSON, CSV, Excel, or other formats from the dataset, or read it through the Apify API.

Is it legal to scrape Google Maps place details? Check the Google Maps Terms of Service and the laws that apply to you to make sure your use case is allowed.