Google Maps List Scraper: 30+ Fields Per Place avatar

Google Maps List Scraper: 30+ Fields Per Place

Pricing

from $0.50 / 1,000 saved places

Go to Apify Store
Google Maps List Scraper: 30+ Fields Per Place

Google Maps List Scraper: 30+ Fields Per Place

Export places from public Google Maps shared lists. Get names, notes, addresses, coordinates, categories, phones, websites, ratings, review counts, hours, photos, and source-list details.

Pricing

from $0.50 / 1,000 saved places

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

1

Bookmarked

66

Total users

16

Monthly active users

12 days ago

Last modified

Share

🗺️ Export places from a Google Maps shared list

Google Maps Shared List Scraper helps travelers, researchers, and sales teams turn public Google Maps shared lists into structured place data. Add a public list link and get rows with source-list details, addresses, ratings, phone numbers, websites, hours, photos, reviews, and more when Google Maps shows them.

Use cases

📦 Google Maps place and list data

Each saved dataset row represents the first eligible match for one place from a public shared list. The row keeps list position and source-list context with public place details. Google Maps may not expose every field for every place, so unavailable fields can be absent.

🚀 Run the shared-list export

  1. Open the Actor in Apify Console.
  2. Add one or more public links under Shared list URLs.
  3. Set Places per list and, if needed, Total places.
  4. Start the run and open the dataset.

Public list rules

Short maps.app.goo.gl links and full google.com/maps shared-list links are accepted when they lead to a public list. Private or login-protected lists are not supported.

⚙️ Input

Input fields

FieldTypeWhat it does
listUrlsarray of stringRequired public Google Maps shared-list links, one per line. Short links and full shared-list links work.
maxPlacesPerListintegerOptional positive cap for each list. Leave it empty to return all available places until the source is exhausted.
maxResultsintegerOptional positive cap across the run. Leave it empty to return all available places until the source is exhausted.
includeWebsiteEmailsbooleanWhen on, visit discovered business websites and add public contact emails when found. This can make the run take longer.
maxEmailsPerPlaceintegerWhen Website emails is on, keep up to this many public emails from each place website. It accepts 1 to 10 and is ignored when Website emails is off.

Successful input example

This small example is copied from a successful current-beta run.

{
"listUrls": [
"https://maps.app.goo.gl/MMjvFNWpUTjiupHc9"
],
"maxPlacesPerList": 2,
"includeWebsiteEmails": false,
"maxEmailsPerPlace": 3
}

🧾 Output

Output fields

FieldTypeWhat it does
namestringPlace name shown by Google Maps.
notestringPublic note for the place in the shared list.
addressstringFull place address shown by Google Maps.
citystringCity from the public address.
statestringState, province, or region from the public address.
postalCodestringPostal code from the public address.
countryCodestringCountry code from the public address.
latitudenumberPlace latitude from Google Maps.
longitudenumberPlace longitude from Google Maps.
categoriesarray of stringGoogle Maps categories for the place.
ratingnumberGoogle Maps star rating.
reviewCountintegerNumber of Google Maps reviews.
phonestringPublic phone number shown by Google Maps.
websitestringBusiness website URL shown by Google Maps.
websiteDomainstringDomain from the business website URL.
emailsarray of stringPublic emails found on the business website when Website emails is on.
currentStatusstringCurrent Google Maps status, such as open or closed.
businessHoursarray of objectWeekly opening hours.
businessHours[].daystringDay of the week.
businessHours[].hoursarray of stringOpening times for that day.
businessHours[].hours[]stringOne opening time or a closed-day value.
timezonestringPlace timezone.
plusCodestringGoogle Maps plus code.
descriptionstringPublic Google Maps place description.
photosarray of stringPublic Google-hosted photo URLs for the place.
reviewsarray of objectRecent public Google Maps reviews.
reviews[].reviewerNamestringPublic name shown for the reviewer.
reviews[].reviewerProfileUrlstringPublic profile URL for the reviewer.
reviews[].reviewerPhotoUrlstringPublic photo URL for the reviewer.
reviews[].reviewerIdstringPublic identifier for the reviewer.
reviews[].ratingnumberStar rating for the review.
reviews[].textstringText of the review.
reviews[].publishedAtTextstringDate text shown for the review.
reviews[].publishedAtstringReview date when available.
reviews[].languagestringLanguage of the review.
reviews[].reviewUrlstringURL for opening the review.
reviews[].reviewIdstringPublic identifier for the review.
googleMapsUrlstringURL for opening the place in Google Maps.
placeIdstringCompact Google place ID.
placeIdChIJstringGoogle ChIJ place ID.
cidstringGoogle Maps CID.
listIdstringGoogle Maps shared-list ID.
sourceListNamestringPublic name of the shared list that contains the place.
sourceListUrlstringSubmitted or resolved shared-list URL that first found this place.
sourceIndexintegerOne-based place position in the source shared list.
savedByNamestringPublic name of the user who saved the place.
savedAtstringSaved date from Google Maps.

Example place row

This is one complete public row from a successful current-beta run. Fields that Google Maps did not expose for this place are absent.

{
"name": "Mori Mori Tei",
"note": "Best Hamburg ever",
"address": "Mori Mori Tei, 115 Oiwake, Karuizawa, Kitasaku District, Nagano 389-0115, Japan",
"city": "Karuizawa",
"state": "Kitasaku District, Nagano",
"postalCode": "389-0115",
"countryCode": "JP",
"latitude": 36.3359222,
"longitude": 138.535553,
"categories": [
"Steak house"
],
"rating": 4.1,
"reviewCount": 199,
"phone": "+81 267-44-1822",
"currentStatus": "Closed · Opens 11:20 AM",
"businessHours": [
{
"day": "Sunday",
"hours": [
"11:20 AM-2 PM",
"5 PM-8:30 PM"
]
},
{
"day": "Monday",
"hours": [
"11:20 AM-2 PM",
"5 PM-8:30 PM"
]
},
{
"day": "Tuesday",
"hours": [
"11:20 AM-2 PM",
"5 PM-8:30 PM"
]
},
{
"day": "Wednesday",
"hours": [
"Closed"
]
},
{
"day": "Thursday",
"hours": [
"11:20 AM-2 PM",
"5 PM-8:30 PM"
]
},
{
"day": "Friday",
"hours": [
"11:20 AM-2 PM",
"5 PM-8:30 PM"
]
},
{
"day": "Saturday",
"hours": [
"11:20 AM-2 PM",
"5 PM-8:30 PM"
]
}
],
"timezone": "Asia/Tokyo",
"plusCode": "8Q8W8GPP+96",
"photos": [
"https://lh3.googleusercontent.com/gps-cs-s/AHRPTWnaTlvd2YX05Rj7wDAmMKZaoYFwCjpDjggumXk0Ujv-6WoG0s30S1X-mHkiwEBQWamvSdf8hLmxSCuJGA4LGhzD-KLB4atQKbcKTx6qj8YQRVE738De-xO0WRhvogyFR1QGCQHL=w1200-h800"
],
"reviews": [
{
"reviewerName": "mze",
"reviewerProfileUrl": "https://www.google.com/maps/contrib/109214206960883025671?hl=en-US",
"reviewerPhotoUrl": "https://lh3.googleusercontent.com/a-/ALV-UjVMwEu6CadJfzuvbnF27gTP0dWsvCbvW-x1vFaxoZ5G_ANKc8CI=s120-c-rp-mo-ba12-br100",
"reviewerId": "109214206960883025671",
"rating": 5,
"text": "A restaurant you don’t wanna miss!\n\nThe hamburger steak is really nice and good value!\n\nThere are parking spaces available and if you drive pass by, this is a restaurant that highly recommended!",
"publishedAtText": "6 months ago",
"publishedAt": "2026-01-24T11:17:45.423Z",
"language": "en",
"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT25SbldqWmFRMkZRUTFwbVFUZ3pTREF4TWw5T1RXYxAB!2m1!1s0x0:0x8e1763e7b77fcc05!3m1!1s2@1:CAIQACodChtycF9oOnRnWjZaQ2FQQ1pmQTgzSDAxMl9OTWc%7C%7C?hl=en-US",
"reviewId": "Ci9DQUlRQUNvZENodHljRjlvT25SbldqWmFRMkZRUTFwbVFUZ3pTREF4TWw5T1RXYxAB"
},
{
"reviewerName": "M F&P",
"reviewerProfileUrl": "https://www.google.com/maps/contrib/108732012646252563219?hl=en-US",
"reviewerPhotoUrl": "https://lh3.googleusercontent.com/a/ACg8ocLDB0LuVFQzMWFIc--1hIJDwQivnzlWqQQId8ga95QaceXGrA=s120-c-rp-mo-ba12-br100",
"reviewerId": "108732012646252563219",
"rating": 5,
"text": "Old style \"Japanese Steak House\" with an eclectic interior - but serving delicious wagyu beef steaks (and other menu items).\nThe meal was delicious and service was attentive.\nThe only down points are the expense, cash only (no credit card payment) and the interior; but can't fault the food",
"publishedAtText": "7 years ago",
"publishedAt": "2018-10-18T09:05:08.993Z",
"language": "en",
"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSUR3Z0pHSElREAE!2m1!1s0x0:0x8e1763e7b77fcc05!3m1!1s2@1:CIHM0ogKEICAgIDwgJGHIQ%7C%7C?hl=en-US",
"reviewId": "ChZDSUhNMG9nS0VJQ0FnSUR3Z0pHSElREAE"
},
{
"reviewerName": "Chris Price (Hotel Wellies)",
"reviewerProfileUrl": "https://www.google.com/maps/contrib/113722620272124659446?hl=en-US",
"reviewerPhotoUrl": "https://lh3.googleusercontent.com/a/ACg8ocJLbYciXLJFdJmXJljU-nBxlo4AJMxekiAzOS4Dw0tCpSMrRA=s120-c-rp-mo-ba12-br100",
"reviewerId": "113722620272124659446",
"rating": 5,
"text": "Excellent food and atmosphere with an eclectic interior. I think they said the building is 400 years old and they moved it here, thick black beams mixed with art deco and Impressionist style art. The staff and owner were so friendly. I had the local beef burger set for Y2,300 - worth it.",
"publishedAtText": "4 years ago",
"publishedAt": "2022-06-21T21:52:19.661Z",
"language": "en",
"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChdDSUhNMG9nS0VJQ0FnSUNPNS1lci13RRAB!2m1!1s0x0:0x8e1763e7b77fcc05!3m1!1s2@1:CIHM0ogKEICAgICO5-er-wE%7C%7C?hl=en-US",
"reviewId": "ChdDSUhNMG9nS0VJQ0FnSUNPNS1lci13RRAB"
},
{
"reviewerName": "Vincent N",
"reviewerProfileUrl": "https://www.google.com/maps/contrib/110109953591287010276?hl=en-US",
"reviewerPhotoUrl": "https://lh3.googleusercontent.com/a/ACg8ocJ3wb-YDSBzQ7EEMwqKT3stlFcEgxbv-q-NUx8SioMGC2Yc_A=s120-c-rp-mo-ba12-br100",
"reviewerId": "110109953591287010276",
"rating": 5,
"text": "One of the best hamburg I have eaten so far. The meat is good but the sauce was a delice. Really the sauce made the big difference compare to some other hamburg place. Also the price was good compare to the size.\nEven if the place is huge, the owner was there and really friendly.\nWill go back to enjoy this hamburg again.",
"publishedAtText": "5 years ago",
"publishedAt": "2021-05-25T02:46:09.716Z",
"language": "en",
"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSUNxaUptQ1lnEAE!2m1!1s0x0:0x8e1763e7b77fcc05!3m1!1s2@1:CIHM0ogKEICAgICqiJmCYg%7C%7C?hl=en-US",
"reviewId": "ChZDSUhNMG9nS0VJQ0FnSUNxaUptQ1lnEAE"
},
{
"reviewerName": "Wai Ping Chow",
"reviewerProfileUrl": "https://www.google.com/maps/contrib/109429042425617424319?hl=en-US",
"reviewerPhotoUrl": "https://lh3.googleusercontent.com/a/ACg8ocKDhWSBRxp019K8drKFuECCULgK5bvHJg9jcCVYQ2IdZ35l8g=s120-c-rp-mo-ba12-br100",
"reviewerId": "109429042425617424319",
"rating": 5,
"text": "The steak is tender. The price is also reasonable.",
"publishedAtText": "2 years ago",
"publishedAt": "2023-10-21T13:58:52.310Z",
"language": "en",
"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSUQ1NHFpYk1REAE!2m1!1s0x0:0x8e1763e7b77fcc05!3m1!1s2@1:CIHM0ogKEICAgID54qibMQ%7C%7C?hl=en-US",
"reviewId": "ChZDSUhNMG9nS0VJQ0FnSUQ1NHFpYk1REAE"
},
{
"reviewerName": "Yuka Yamanaka",
"reviewerProfileUrl": "https://www.google.com/maps/contrib/115822842053824997353?hl=en-US",
"reviewerPhotoUrl": "https://lh3.googleusercontent.com/a-/ALV-UjUxBetRK9YpUC2qD4IcZJrRipgrODsXxwsuAquwaOoDcBtj_onF=s120-c-rp-mo-br100",
"reviewerId": "115822842053824997353",
"rating": 5,
"text": "They don't let kids under three inside.\nWorse is the way that they say it. The lady was rude and the place was empty.",
"publishedAtText": "7 months ago",
"publishedAt": "2026-01-10T03:15:19.706Z",
"language": "en",
"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT21VMlUyTmtkbE5VUkdOVmFIWXlRbVZWYTNWa05sRRAB!2m1!1s0x0:0x8e1763e7b77fcc05!3m1!1s2@1:CAIQACodChtycF9oOmU2U2NkdlNURGNVaHYyQmVVa3VkNlE%7C%7C?hl=en-US",
"reviewId": "Ci9DQUlRQUNvZENodHljRjlvT21VMlUyTmtkbE5VUkdOVmFIWXlRbVZWYTNWa05sRRAB"
},
{
"reviewerName": "Raymond Campbell",
"reviewerProfileUrl": "https://www.google.com/maps/contrib/104499463063769420772?hl=en-US",
"reviewerPhotoUrl": "https://lh3.googleusercontent.com/a-/ALV-UjXDCeiMZaXKLVOZLbJAA50uRlBpnGYPIhuw4fpxHF0tJXUBjk8LSw=s120-c-rp-mo-ba12-br100",
"reviewerId": "104499463063769420772",
"rating": 5,
"text": "Good food (hamburger steak) in a traditional Japanese house",
"publishedAtText": "2 years ago",
"publishedAt": "2024-06-16T22:03:10.328Z",
"language": "en",
"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChdDSUhNMG9nS0VJQ0FnSUNMZ3NHYXJBRRAB!2m1!1s0x0:0x8e1763e7b77fcc05!3m1!1s2@1:CIHM0ogKEICAgICLgsGarAE%7C%7C?hl=en-US",
"reviewId": "ChdDSUhNMG9nS0VJQ0FnSUNMZ3NHYXJBRRAB"
},
{
"reviewerName": "Koki M",
"reviewerProfileUrl": "https://www.google.com/maps/contrib/104403872262536009348?hl=en-US",
"reviewerPhotoUrl": "https://lh3.googleusercontent.com/a/ACg8ocK3nKgxNyiw8gFh1aNZ0ytyCVx4rNJWmU7YJxZhsvClRm-NUpw=s120-c-rp-mo-ba12-br100",
"reviewerId": "104403872262536009348",
"rating": 5,
"text": "A wonderful restaurant. Perfect as a family.",
"publishedAtText": "5 years ago",
"publishedAt": "2020-11-02T22:48:59.780Z",
"language": "en",
"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSUNpem8tVU9BEAE!2m1!1s0x0:0x8e1763e7b77fcc05!3m1!1s2@1:CIHM0ogKEICAgICizo-UOA%7C%7C?hl=en-US",
"reviewId": "ChZDSUhNMG9nS0VJQ0FnSUNpem8tVU9BEAE"
}
],
"googleMapsUrl": "https://www.google.com/maps?cid=-8207981948992238587",
"placeId": "/g/1td1pzb1",
"placeIdChIJ": "ChIJibDT6OfNHWARBcx_t-djF44",
"cid": "-8207981948992238587",
"listId": "PiSwyqmbpwpP_Nr5sAang4x5QxbKwA",
"sourceListName": "Tokyo",
"sourceListUrl": "https://maps.app.goo.gl/MMjvFNWpUTjiupHc9",
"sourceIndex": 7,
"savedByName": "Shahed Khan",
"savedAt": "2025-02-25T04:34:50.351Z"
}

You can export dataset rows in the formats offered by Apify or read them through the dataset API.

💳 Pricing

Saved-place charges

Pay-per-event pricing charges one event for each place saved to the dataset. Your total depends on the number of places saved and the current event price shown by Apify.

🔌 Integrations

Workflow options

Use the Apify API, schedules, webhooks, or available Apify integrations to send saved rows to your workflow. This video shows how to connect an Actor with other tools:

❓ FAQ

Yes. Add a public maps.app.goo.gl shared-list link or a full Google Maps shared-list link.

Can I run the Actor through the Apify API?

Yes. Start the Actor with the same public input and read the default dataset after the run.

Can I scrape a private Google Maps list?

No. The list must open without a Google login.

Do I need a Google Maps API key?

No. Add the public shared-list URL to the Actor input.

Why are some place fields empty?

Google Maps may not show every field for every place. The Actor keeps the public fields available for that place.

What happens when a place appears more than once?

The first eligible match is saved. A later match for the same place is ignored, so the saved row keeps only the first list context.

📝 Changelog

0.2: More reliable large-list exports

  • Complete large public Google Maps lists more reliably, while keeping collected places available when a temporary source issue affects a list.
  • Include the public shared-list name with each exported place.

v0.1

  • Scrape complete shared lists with no preset place ceiling, or use any positive per-list and total place limits.

v0.0

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré