Google Maps Shared List Scraper avatar

Google Maps Shared List Scraper

Pricing

from $16.90 / 1,000 results

Go to Apify Store
Google Maps Shared List Scraper

Google Maps Shared List Scraper

Extracts every place from a shared Google Maps list URL and returns each one as a flat row with name, address, phone, website, rating, and category. Export to CSV or JSON.

Pricing

from $16.90 / 1,000 results

Rating

5.0

(3)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

3

Bookmarked

296

Total users

12

Monthly active users

1.9 days

Issues response

3 days ago

Last modified

Share

ParseForge

Google Maps Shared List Scraper

Extract every place from any shared Google Maps list into a clean spreadsheet. Paste a list URL, set a limit, and get the name, address, phone, website, rating, and category for each place. Export to CSV or JSON.

Google Maps lets anyone curate and share lists of saved places, but there is no built-in way to export that data for a trip plan, a market analysis, or a lead list. This actor reads a shared Google Maps list URL and pulls out every place it contains. You get a structured row per place without copying, pasting, or clicking through each pin.

Who uses itWhat they scrape Google Maps for
Travel plannersTurn a friend's shared restaurant list into a spreadsheet for a group trip.
Sales teamsBuild a cold-outreach list from a competitor's curated map of local businesses.
Market researchersAudit which businesses appear in a city's best-of list and spot missing categories.
Real estate investorsExtract every property or amenity pinned on a neighborhood tour map.

What it does

This Actor collects every place from one or more shared Google Maps list URLs and returns each place as a flat row with its name, address, phone, website, rating, and category.

  • 🔗 Bulk list processing: paste multiple shared list URLs and the actor runs them all in one job.
  • 🤖 AI enrichment: turn on OpenRouter to add a visit score, a short recommendation, and fill in missing websites or phone numbers.
  • 📊 CSV or JSON output: pick CSV for Excel and Google Sheets, or JSON for your own scripts and databases.
  • ⚙️ Concurrency control: dial parallel requests up to 10 for speed, or down to 1 for a lighter run.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Google Maps data

🗺️ Turn a shared map into a trip itinerary.

A travel planner pastes a friend's Google Maps list of cafes and museums, exports a CSV, and builds a day-by-day schedule in a spreadsheet.

📋 Build a local business lead list.

A sales rep scrapes a competitor's public map of recommended vendors, filters by rating, and loads the names and phone numbers into their CRM.

🏘️ Audit a neighborhood for investment.

A real estate analyst extracts every restaurant, gym, and transit stop from a curated neighborhood map to score walkability before a purchase.

🔍 Enrich a list with missing contact data.

A researcher runs a shared list through AI enrichment to fill in websites and phone numbers that Google Maps did not show, then exports a complete CSV.

Why choose this scraper

What you get
No manual copyingEvery place lands in one row with its name, address, phone, website, rating, and category.
Handles large listsPull up to 500 places per list so a long curated map does not get cut off.
AI-powered insightsOptionally enrich each place with a visit recommendation and auto-discovered contact details.
Flexible exportDownload as CSV for a spreadsheet or JSON for a pipeline, no extra conversion step.

How it compares

The Google Search Results Scraper reads search engine pages, not curated Maps lists. This actor is purpose-built for shared Google Maps lists and returns place-level detail that a SERP scraper cannot.

FeatureParseForgeGoogle Search Results Scraper
Reads shared Google Maps list URLsYesNot listed
Returns place name, address, phone, and websiteYesNot listed
AI enrichment for missing contact dataYesNot listed
CSV export for spreadsheetsYesYes
No Google API key requiredYesNot listed

Configure the run

Drive the Actor with one or more shared Google Maps list URLs and cap the places extracted per list from 1 to 500. The Input tab lists every parameter.

A first run with the defaults:

{
"listUrls": [
"https://maps.app.goo.gl/MMjvFNWpUTjiupHc9"
]
}

Pricing

Pay-per-result: $0.039 per result collected. You pay only for the results written to your dataset.

Results collectedApproximate cost
100 results$3.90
1,000 results$39.00
10,000 results$390.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Google Maps Shared List Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Google Maps through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/google-maps-shared-list-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that the list URL is a shared link and that the list is still public. If the owner changed it to private, the actor cannot read it. Also confirm you did not set maxPlacesPerList to 0.

The actor returns fewer places than I see on the map.

Google Maps sometimes lazy-loads places as you scroll. The actor reads the initial list view. Try raising maxPlacesPerList to 500 and re-run. If the list is extremely long, some places may still be missing.

AI enrichment is not filling in missing websites.

Perplexity Sonar searches the web for each place, but it cannot guarantee a find for every business. The enrichment works best for well-known restaurants, hotels, and attractions.

The run is slow with AI enrichment turned on.

Each place triggers an AI call, which adds about one to two seconds per row. Lower maxPlacesPerList or disable enrichment for large lists if speed matters more than the extra fields.

I get an error about my OpenRouter API key.

Make sure you created a key at openrouter.ai and pasted the full key string. A free key works, but it has rate limits. If you hit them, wait a minute and re-run.

FAQ

QuestionAnswer
What is a shared Google Maps list?It is a collection of saved places that a user creates in Google Maps and shares via a link. Anyone with the link can view the list, and this actor reads that public view to extract the places.
How do I get a shared list URL?Open the list in Google Maps, tap the share button, and copy the link. Paste that link into the actor's input field.
Can I scrape a list that is not mine?Yes, as long as the list is shared publicly and you have the link. The actor reads the same public view any person with the link would see.
What data does each place row include?Every row returns the place name, full address, phone number, website, Google Maps rating, total reviews, and the category Google assigns to it.
Does this actor need a Google API key?No. It reads the public shared-list page directly. You do not need a Google Cloud account or any API key.
What does the AI enrichment do?When you enable it and provide an OpenRouter API key, the actor calls Perplexity Sonar for each place. It returns a visit score from 1 to 10, a short recommendation, and attempts to find a website or phone number when Google Maps omits them.
How many places can I extract from one list?You set the limit per list, up to 500 places. If a list contains more, the actor stops at your cap.
Can I run multiple lists in one job?Yes. Paste several URLs into the input, one per line, and the actor processes them all sequentially in a single run.
Is there a risk of getting blocked?The actor uses built-in proxy rotation and respects the concurrency setting you choose. Keeping concurrency at the default of 5 works well for most lists.
What output formats are supported?CSV for spreadsheets and JSON for developers. Pick the one that fits your workflow in the output options.

Browse the full ParseForge collection for more scrapers.

🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Google LLC. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.