Pricing
from $0.06 / 1,000 scraped places
Google Maps Shared List Scraper
πΊοΈ Export public Google Maps shared lists into structured place datasets with names, addresses, coordinates, notes, and list context.
Pricing
from $0.06 / 1,000 scraped places
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Export public Google Maps shared lists into clean place datasets for lead generation, travel research, venue sourcing, and market mapping.
What does Google Maps Shared List Scraper do?
Google Maps Shared List Scraper turns a public Google Maps saved-list link into structured rows.
It accepts links such as:
https://maps.app.goo.gl/MMjvFNWpUTjiupHc9https://www.google.com/maps/placelists/list/...
For every saved place that is visible in the public list payload, the actor exports the place name, address, coordinates, Google Maps link, list title, list owner, user note, and scrape timestamp.
Who is it for?
This scraper is useful for several practical workflows:
- π§βπΌ Lead-generation teams exporting curated prospect lists from Google Maps.
- ποΈ Local-market researchers turning neighborhood lists into CSV or JSON.
- π½οΈ Restaurant and hospitality analysts collecting saved venue shortlists.
- βοΈ Travel planners converting itineraries into structured data.
- π§ Sales teams sharing Google Maps lists internally and then enriching them in a CRM.
- π§ͺ Data analysts who need repeatable exports from public Maps collections.
Why use this actor?
Google Maps shared lists are easy to create but hard to analyze at scale. Copying place names by hand is slow and loses important context such as coordinates and notes.
This actor gives you:
- β Public-list URL input
- β One row per saved place
- β List context on every row
- β Coordinates when exposed by Google Maps
- β Notes written by the list owner
- β Dataset exports to CSV, JSON, Excel, XML, RSS, and HTML through Apify
- β API access for scheduled or automated workflows
What data can it extract?
| Field | Description |
|---|---|
listUrl | Original URL you submitted |
resolvedListUrl | Final Google Maps URL after redirects |
listId | Public shared-list identifier |
listTitle | List title when visible |
listOwner | Public list owner name when visible |
listDescription | List description when visible |
listPlaceCount | Total places reported by Google Maps |
placeName | Saved place name |
placeUrl | Google Maps search URL for the place |
placeId | Google feature ID or fallback ID |
googleFeatureId | Google feature identifier when present |
address | Place address from the shared-list payload |
latitude | Latitude |
longitude | Longitude |
category | Reserved for detail enrichment; null when not exposed |
rating | Reserved for detail enrichment; null when not exposed |
reviewCount | Reserved for detail enrichment; null when not exposed |
phone | Reserved for detail enrichment; null when not exposed |
website | Reserved for detail enrichment; null when not exposed |
emails | Reserved for website enrichment; empty by default |
openingHours | Reserved for detail enrichment; empty by default |
imageUrl | Reserved for detail enrichment; null when not exposed |
note | Note/comment saved in the shared list |
sourceListContext | Owner, title, and position within the list |
scrapedAt | ISO timestamp for the scrape |
How much does it cost to export Google Maps shared lists?
This actor uses pay-per-event pricing.
- A small start event is charged once per run.
- A result event is charged only for successfully extracted place records.
- Failed URLs and skipped lists are not charged as place results.
Formula-derived tier pricing is set from measured cloud run costs and rounded up to the platform-supported minimum. The BRONZE result price is $0.10 per 1,000 exported places before Apify account-tier discounts.
Input
The main input is listUrls.
{"listUrls":[{"url":"https://maps.app.goo.gl/MMjvFNWpUTjiupHc9"}],"maxPlacesPerList":20,"includeDetails":false,"includeWebsiteEmails":false,"language":"en","countryCode":"us"}
Input fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
listUrls | array | Yes | sample URL | Public Google Maps shared-list URLs |
maxPlacesPerList | integer | No | 20 | Maximum places to export from each list |
includeDetails | boolean | No | false | Reserved for future detail enrichment |
includeWebsiteEmails | boolean | No | false | Reserved for future email enrichment |
maxEmailsPerPlace | integer | No | 3 | Reserved for future email enrichment |
language | string | No | en | Google Maps language code |
countryCode | string | No | us | Google Maps region code |
Output example
{"listUrl":"https://maps.app.goo.gl/MMjvFNWpUTjiupHc9","resolvedListUrl":"https://www.google.com/maps/@...","listId":"PiSwyqmbpwpP_Nr5sAang4x5QxbKwA","listTitle":"Tokyo","listOwner":"Shahed Khan","listDescription":null,"listPlaceCount":63,"placeName":"SAVOY Azabujuban","placeUrl":"https://www.google.com/maps/search/?api=1&query=SAVOY%20Azabujuban...","placeId":"/g/1tgpsl_t","googleFeatureId":"/g/1tgpsl_t","address":"Japan, γ106-0045 Tokyo, Minato City...","latitude":35.6548695,"longitude":139.7364827,"category":null,"rating":null,"reviewCount":null,"phone":null,"website":null,"emails":[],"openingHours":[],"imageUrl":null,"note":"Bluefin tuna pizza","sourceListContext":{"owner":"Shahed Khan","listTitle":"Tokyo","position":1},"scrapedAt":"2026-06-04T10:00:00.000Z"}
How to scrape a Google Maps shared list
- Open Google Maps.
- Open a public saved list.
- Click Share and copy the public list link.
- Paste the link into
listUrls. - Set
maxPlacesPerListto a safe first-run value such as 25. - Run the actor.
- Download the dataset as CSV, JSON, Excel, or another Apify export format.
Tips for best results
- Use public shared-list URLs, not private lists.
- Start with a low
maxPlacesPerListto verify the list is accessible. - Use
maps.app.goo.glshort links or fullgoogle.com/maps/placelists/list/...URLs. - Keep enrichment options disabled unless a future version enables them.
- If a list has fewer places than requested, the actor exports only the places Google Maps returns.
Integrations
You can connect the output to common workflows:
- π§Ύ Export CSV rows into Google Sheets.
- π§βπΌ Send places into a CRM as lead records.
- πΊοΈ Join coordinates with GIS tools.
- π Analyze curated venue lists in BI dashboards.
- π Schedule repeat runs through Apify tasks.
- π§© Trigger webhooks after each dataset is ready.
API usage with Node.js
import{ ApifyClient }from'apify-client';const client =newApifyClient({token: process.env.APIFY_TOKEN});const run =await client.actor('automation-lab/google-maps-shared-list-scraper').call({listUrls:[{url:'https://maps.app.goo.gl/MMjvFNWpUTjiupHc9'}],maxPlacesPerList:20});const{ items }=await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/google-maps-shared-list-scraper').call(run_input={'listUrls':[{'url':'https://maps.app.goo.gl/MMjvFNWpUTjiupHc9'}],'maxPlacesPerList':20,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl-X POST "https://api.apify.com/v2/acts/automation-lab~google-maps-shared-list-scraper/runs?token=$APIFY_TOKEN"\-H'Content-Type: application/json'\-d'{"listUrls": [{"url":"https://maps.app.goo.gl/MMjvFNWpUTjiupHc9"}],"maxPlacesPerList": 20}'
MCP usage
Use the Apify MCP server with Claude Desktop or Claude Code:
$claude mcp add apify-google-maps-shared-list "https://mcp.apify.com/?tools=automation-lab/google-maps-shared-list-scraper"
Claude Desktop JSON configuration:
{"mcpServers":{"apify-google-maps-shared-list":{"url":"https://mcp.apify.com/?tools=automation-lab/google-maps-shared-list-scraper"}}}
Direct MCP URL:
https://mcp.apify.com/?tools=automation-lab/google-maps-shared-list-scraper
Example prompts:
- "Export this Google Maps shared list and summarize the venues by neighborhood."
- "Scrape this saved list and return a CSV of names, addresses, and coordinates."
- "Run the Google Maps Shared List Scraper for these three public list URLs."
Limitations
Google Maps changes internal payloads over time. This actor is designed around the public shared-list payload and avoids high-risk browser scraping for the first version.
Some detail fields, such as phone, website, ratings, reviews, hours, and photos, may be null or empty unless Google exposes them in the shared-list response or a later enrichment version is enabled.
Troubleshooting
Why did my run return no places?
Check that the list is public. Private or account-only lists cannot be exported without access and are not supported.
Why are phone or website fields empty?
The MVP exports reliable shared-list data. Phone and website are detail fields and may require separate place-detail enrichment, which is intentionally disabled in this build.
Can I scrape multiple lists at once?
Yes. Add multiple entries to listUrls. Each output row includes the source list context.
FAQ
Is it legal to scrape Google Maps shared lists?
This actor is intended for public data that you are allowed to access. You are responsible for using the output in compliance with applicable laws, platform terms, privacy rules, and your own business policies.
Do private Google Maps lists work?
No. The actor only supports public shared lists that can be opened without logging in.
Does the actor enrich websites and emails?
Not in the MVP. Website and email fields are included for schema stability and future enrichment, but the current version avoids extra detail requests unless they become cheap and reliable.
Legality
Use this actor only for public data that you are allowed to process. Do not scrape private lists, personal data you are not allowed to process, or content behind login walls. Review Google Maps terms and applicable privacy laws before using exported data in production workflows.
Related scrapers
Other Apify actors by Automation Lab may help with adjacent workflows:
- https://apify.com/automation-lab/google-maps-scraper
- https://apify.com/automation-lab/google-search-scraper
- https://apify.com/automation-lab/google-news-scraper
- https://apify.com/automation-lab/trustpilot-scraper
Changelog
0.1
Initial build: export places from public Google Maps shared lists using an HTTP-first public list payload.
Support
If a public list URL does not work, open an Apify issue and include:
- The list URL
- Your input JSON
- Run ID
- Whether the list opens in an incognito browser
Development notes
This actor is built with the Apify SDK and TypeScript.
Local development uses:
npminstallnpm run buildtimeout120 apify run
Store keywords
Google Maps shared list scraper, Google Maps list export, Google Maps saved places CSV, Google Maps places dataset, Google Maps lead generation.
