This tutorial shows how to scrape Google Maps leads by URL into a CSV using the Google Maps Leads Scraper by URLs template for UScraper. You will prepare Maps URLs, import the workflow, set the export path, validate rows, and understand when the official Places API fits better.
Prerequisites
Before you scrape Google Maps by URL
You need UScraper installed as a local desktop app, the free template from the UScraper template library, one or more Google Maps search-result URLs, and a folder for CSV exports. A good first test is narrow: one city, one category, and one URL.
This URL-based workflow is different from a place-detail scraper. It does not start from a keyword form, and it does not open every place panel one by one. Instead, it opens a prepared Maps result URL and extracts listing-visible fields from business cards that appear in the scrolling feed.
Treat Google Maps lead scraping as a compliance decision, not just a technical task. Review the current Google Maps additional terms and relevant Google Maps Platform policies, avoid bypassing access controls, and get legal review before commercial use.
Workflow
How the Google Maps URL lead scraper works
The template graph is intentionally inspectable: Set Window Size -> Navigate -> Wait for Page Load -> Sleep -> Wait for Element -> Inject JavaScript -> Sleep -> Wait for Buffered Rows -> Structured Export -> Loop Continue.
The important block is Inject JavaScript. Google Maps uses a virtualized infinite-scroll feed, so not every visible result remains in the DOM. The collector creates #uscraper-gmaps-buffer, reads visible cards, de-duplicates them by detail URL or title, scrolls likely feed containers, and stores fields as data attributes. Structured Export reads those buffered rows into fixed CSV columns.
Export shape
What Google Maps business data goes into the CSV
The export is built for lead review, not blind CRM import. It keeps source context, identity, reputation, contact, location, and enrichment fields in one spreadsheet.
| Field group | Example columns | How to use it |
|---|---|---|
| Source context | keyword, page_url | Trace every lead back to the Maps search URL and inferred query. |
| Business identity | title, category, description, current_status | Filter by business type, status, and profile completeness. |
| Reputation | total_rating, reviews | Prioritize established businesses or find low-review opportunities. |
| Contact signals | website, phone, detail_url | Review manually before outreach or enrichment. |
| Location | address, latitude, longitude, plus_code | Map territories and dedupe branches. |
| Media and service hints | main_image, image_1, delivery, price_range | Add context for local SEO audits or market research. |
Because there is no CSV sample bundled with this template, treat the JSON workflow as the authoritative export definition. The key export settings look like this:
{
"title": "Structured Export",
"config": {
"rowSelector": "#uscraper-gmaps-buffer .uscraper-gmaps-row",
"fileName": "google-maps-scraper-store-details-by-url.csv",
"includeHeaders": true,
"fileMode": "append",
"columns": [
"keyword",
"page_url",
"title",
"reviews",
"total_rating",
"address",
"website",
"phone",
"detail_url",
"latitude",
"longitude",
"category"
]
}
}
Runbook
How to scrape Google Maps leads by URL
Import the workflow
Open the Google Maps Leads Scraper by URLs template, download the JSON, and import it into UScraper.
Prepare Maps result URLs
Search Google Maps manually, tune the location and zoom, then copy approved search-result URLs into the Navigate block.
Keep the waits
Preserve the page-load wait, listing-card wait, collector sleep, and buffered-row check until your first export is stable.
Set the export folder
In Structured Export, confirm the CSV name, local save location, headers, and append mode. Use separate files for different cities or campaigns.
Run one URL
Start with a single Maps URL. Compare the CSV against the visible feed and confirm that titles, ratings, addresses, and detail URLs make sense.
Scale gradually
Add more URLs only after the first rows pass QA. Pause if Maps shows consent, unusual traffic, verification, or empty result states.
Validation
Validate the Google Maps leads export
Before using the CSV, sort by detail_url, title, website, and phone. A clean run should have source URLs, meaningful titles, and enough fields to support manual review. Do not treat the export as opt-in outreach permission.
| Symptom | Likely cause | Fix |
|---|---|---|
| Empty CSV | Maps did not render listing cards or the selector changed | Reopen the URL, handle prompts, extend waits, and rerun one URL. |
| Very few rows | The feed stabilized early, the query is narrow, or Maps throttled loading | Try a narrower area, check the browser, and avoid parallel runs. |
| Blank phone or website | The search card did not expose that field | Keep the row and enrich manually from the detail URL or business site. |
| Duplicate businesses | Overlapping Maps URLs or append mode reused an old file | Dedupe by detail_url, website domain, phone, and address. |
| Wrong category or address | Locale-specific card text changed | Validate the market language and adjust parsing before scaling. |
API comparison
Google Places API vs scraper
The official Places API is usually better for products, dashboards, and recurring systems that need durable contracts. It is built around API requests, field selection, place IDs, quotas, billing, and attribution requirements. A scraper is different: it helps analysts turn browser-visible result pages into a reviewable CSV without writing automation code.
| Pick this path | When it fits | Trade-off |
|---|---|---|
| Places API | Production apps, stable schemas, place IDs, billing controls, compliance review | Requires API setup and may not match the exact visible feed you are reviewing. |
| Hosted scraper | Scheduled cloud jobs, larger throughput, API delivery, managed infrastructure | Data and run logs usually move through a vendor environment. |
| UScraper URL template | Analyst-led local research from known Maps URLs into CSV | Best effort against a changing browser UI; validate before scale. |
For many local-business research jobs, the practical sequence is simple: use UScraper to create a first-pass lead sheet, validate the rows, remove unsuitable records, and move only reviewed businesses into your CRM or enrichment process.
FAQ
Common questions about Google Maps URL scraping
Google Maps can show public business information, but automated collection may still be restricted by Google terms, privacy law, database rights, copyright, and local data-use rules. Review current terms, avoid bypassing access controls, keep batches modest, and get legal review before commercial use.
Next step
Download the template and run one URL
Use the Google Maps Leads Scraper by URLs template as the download path, then run one Maps URL before building a larger lead list. For related workflows, browse all UScraper templates or read more tutorials in the UScraper blog.

