Google Maps Scraper
Pricing
$19.99/month + usage
Google Maps Scraper
📍 Google Maps Scraper extracts business listings at scale—name, address, phone, website, ratings, reviews, hours & GPS. 🔎 Search by keyword/location, set radius, dedupe results, and export CSV/Excel/JSON. 🚀 Perfect for lead gen, local SEO, and market/competitor research.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScraperForge
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
Google Maps Scraper
Google Maps Scraper is a scalable Google Maps places scraper that extracts structured business listings data — names, addresses, phone numbers, websites, ratings, hours, and GPS coordinates — directly from public Google Maps pages. It solves the pain of manual copy-paste and limited coverage by automating searches at scale, making it ideal as a Google Maps lead scraper and Google Business Profile scraper for repeatable workflows. Built for marketers, developers, data analysts, and researchers, it helps you scrape Google Maps listings across keywords, locations, or direct URLs and export your results for enrichment and analytics.
What data / output can you get?
| Data field | Description | Example value |
|---|---|---|
| name | Business name from the listing | “Sample Coffee” |
| website | Website URL (cleaned) | “https://samplecoffee.com” |
| avg_rating | Average star rating | 4.6 |
| total_reviews | Total count of reviews | 128 |
| phone | Phone number | “+1 212-555-0100” |
| full_address | Concatenated full address string | “123 Main St New York NY 10001 US” |
| street_address | Street line | “123 Main St” |
| city | City | “New York” |
| place_id | Google place identifier | “abcd1234” |
| lat | Latitude | 40.75 |
| long | Longitude | -73.99 |
| hours | Array of opening hours per day | [{"day":"Monday","hours":"7:00 AM–5:00 PM"}] |
Bonus fields included in the dataset/maps.json output: tags (categorical labels), notes (auxiliary notes), zip, state, country_code, success (scrape status). When review capture is enabled, extra outputs include reviews (array of review objects) and review_count. Results can be exported to CSV, JSON, or Excel via Apify’s dataset export options.
Key features
-
🔁 Bold proxy fallback ladder (direct → datacenter → residential, sticky)
- Automatic, transparent proxy fallback with detailed logs and stickiness after residential to keep your Google Maps data extractor running reliably.
-
🗺️ Grid-based viewport coverage
- Systematically scans map viewports using a grid for broader coverage, boosting recall for your Google Maps business scraper searches.
-
🧹 Deduplication by place_id
- Prevents duplicates across grid points and sources by tracking Google Maps place IDs.
-
📝 Optional review capture
- Best‑effort collection of per‑place reviews. When enabled, captures review arrays and a review_count for deeper analysis.
-
🧭 Smart sorting in final output
- Final list (maps.json) can be sorted by relevance, rating, review_count, or name for prioritization.
-
💾 Live dataset writes + final merged JSON
- Streams items to the dataset as they’re found (protects against partial run loss) and saves the final, sorted list to Key‑Value Store as maps.json.
-
🔌 Developer-friendly, API-ready
- Built on the Apify platform with Python and aiohttp — easy to orchestrate via the Apify API or plug into automation stacks.
-
📦 Export to CSV, JSON, Excel
- Download your Google Maps listing scraper results in ready-to-use formats for CRM uploads, BI, or enrichment work.
-
📈 Production-grade logging
- Clear logs for grid progress, proxy events, and review progress so you can monitor large runs with confidence.
How to use Google Maps Scraper - step by step
- Sign in to your Apify account.
- Open the Google Maps Scraper actor from the Apify Console or Store.
- Add your inputs:
- locations: list of city/region names (e.g., “New York”).
- keywords: search terms to target (e.g., “coffee shops”).
- urls: direct Google Maps search URLs (optional; supports bulk).
- Configure limits and network:
- maxResults: cap the total places across all searches.
- proxyConfiguration: leave empty to start direct; the actor auto-fallbacks when blocked.
- Start the run and monitor logs for grid progress and proxy events.
- View results in the Dataset; download exports as CSV, JSON, or Excel for downstream use.
- Open the Key‑Value Store and download the final merged file maps.json for your sorted list.
Pro tip: Orchestrate scheduled runs and automate post-processing via the Apify API. It’s a robust Google Maps scraper tool for hands-free lead enrichment and analytics pipelines.
Use cases
| Use case | Description |
|---|---|
| Local SEO lead list building | Generate city-by-category business lists from Google Maps and export to CSV for outreach with this Google Maps lead scraper. |
| Google Business Profile audits | Collect ratings, review counts, and hours to assess local SEO performance across service areas using a focused GMB scraper. |
| Competitive & market research | Benchmark competitors’ footprints and ratings across regions with a reliable Google Maps listing scraper. |
| Data enrichment pipeline (API) | Enrich existing records with phone, website, and coordinates via an automated Google Maps data extractor workflow. |
| Academic & regional studies | Analyze density/trends by category and geography for research and policy work using a Google Places scraper. |
| Operations & territory planning | Map store/service locations with lat/long for logistics, store locator updates, or regional planning. |
| Scrape Google Maps to CSV for CRM | Export normalized business data (contacts, location, ratings) for CRM imports and scoring. |
Why choose Google Maps Scraper?
Precision, automation, and reliability — built for production-scale Google Maps scraping without brittle browser extensions.
- ✅ Accurate structured fields: name, website, phone, address, ratings, hours, GPS, and more.
- 🌍 Scales across locations and keywords with grid-based viewport coverage.
- 🧠 Developer-ready: Apify Actor with Python + aiohttp; integrate via API easily.
- 🔐 Resilient proxy strategy: direct → datacenter → residential (sticky) with detailed logs.
- 📦 Flexible exports: download CSV/Excel/JSON directly from the Apify dataset.
- 🧹 Dedupe by place_id to keep clean, unique results.
- 🛡️ Public-data only; no login required — safer than fragile browser-based tools.
In short: a production-grade Google Maps scraper software alternative to extensions, designed for high-volume, repeatable data extraction.
Is it legal / ethical to use Google Maps Scraper?
Yes — when done responsibly. This actor collects publicly available information from Google Maps pages and does not access personal or private data behind authentication.
Guidelines for compliant use:
- Only collect and use public business information.
- Respect applicable laws and regulations (e.g., GDPR, CCPA).
- Review and respect Google’s terms; usage is your responsibility.
- Avoid automated use that violates platform policies.
- Consult your legal team for edge cases or jurisdiction-specific requirements.
Input parameters & output format
Example input
{"locations": ["New York"],"keywords": ["coffee shops"],"urls": [],"maxResults": 20,"proxyConfiguration": { "useApifyProxy": false }}
Input reference
- locations (array, optional) — List of location names (e.g., New York, Florida). Default: none. Required: No.
- keywords (array, required) — Search keywords or user-specified terms (supports bulk). Default: none. Required: Yes.
- urls (array, optional) — Direct Google Maps search URLs (supports bulk). Default: none. Required: No.
- maxResults (integer, optional) — Maximum number of places to return across all searches. Default: 20 (min 1, max 10000). Required: No.
- proxyConfiguration (object, optional) — Default is direct (no proxy). Auto-fallbacks to datacenter → residential if blocked. Default: none (prefill useApifyProxy: false). Required: No.
Output format
During the run, the actor streams records to the Dataset and saves a final, sorted list to the Key‑Value Store as maps.json. Dataset items include full place records and, when reviews are fetched, additional review-only records for each place_id.
- Example: full place item (Dataset and in maps.json)
{"name": "Sample Coffee","website": "https://samplecoffee.com","avg_rating": 4.6,"total_reviews": 128,"street_address": "123 Main St","city": "New York","state": "NY","zip": "10001","country_code": "US","full_address": "123 Main St New York NY 10001 US","tags": ["Coffee shop"],"notes": null,"place_id": "abcd1234","phone": "+1 212-555-0100","lat": 40.75,"long": -73.99,"hours": [],"success": true}
- Example: review-only record (additional Dataset entry when review capture is enabled)
{"place_id": "abcd1234","reviews": [{"author_name": "Jane Doe","author_url": "https://maps.google.com/?cid=123","rating": 5,"text": "Great coffee and atmosphere!","time": "2025-04-12T00:00:00Z","relative_time": "2 months ago","author_reviews_count": 14,"author_photo": "https://example.com/photo.jpg","likes": 3}],"review_count": 1}
- Example: final merged JSON (Key‑Value Store → OUTPUT → maps.json)
[{"name": "Sample Coffee","website": "https://samplecoffee.com","avg_rating": 4.6,"total_reviews": 128,"street_address": "123 Main St","city": "New York","state": "NY","zip": "10001","country_code": "US","full_address": "123 Main St New York NY 10001 US","tags": ["Coffee shop"],"notes": null,"place_id": "abcd1234","phone": "+1 212-555-0100","lat": 40.75,"long": -73.99,"hours": [],"success": true}]
Notes:
- Dataset may contain both full place items and review-only records keyed by place_id.
- Some fields (e.g., notes or hours) may be empty or null if not available on the public page.
FAQ
Is there a free trial?
Yes. This actor includes trial minutes on Apify (currently 120 trial minutes), so you can evaluate the Google Maps scraper tool before subscribing.
Do I need to log in or use cookies?
No. The actor accesses public Google Maps pages without login. It uses HTTP requests with a resilient proxy ladder to handle network challenges.
Can I export results to CSV or Excel?
Yes. You can export the Dataset to CSV, JSON, or Excel directly from Apify. The final merged list is also saved as maps.json in the Key‑Value Store.
What data does it extract?
It outputs structured business details including name, website, phone, address fields, avg_rating, total_reviews, hours, lat/long, place_id, and tags/notes when available. When enabled, it adds reviews and a review_count per place.
How many results can I scrape per run?
Set maxResults to control the cap across all searches. The actor deduplicates by place_id and uses grid-based coverage to broaden discovery across the viewport.
How does it handle blocks and reliability?
It automatically falls back from direct to datacenter to residential proxies (sticky) when blocked, with up to three retries on residential and detailed logging of each change.
Does it deduplicate listings?
Yes. Results are deduplicated by place_id so you don’t get repeat businesses across grid points or multiple inputs.
Can I run it via API or integrate with code?
Yes. It’s an Apify Actor (Python-based) and can be triggered via the Apify API, making it easy to integrate into automation workflows and data pipelines.
Does it extract emails from Google Maps?
No. This Google Maps contact extractor focuses on public business details such as phone, website, address, ratings, hours, and coordinates. Email addresses are not extracted from Google Maps pages.
Closing thoughts
Google Maps Scraper is built for fast, reliable extraction of public business data from Google Maps at scale. With grid-based coverage, deduplication by place_id, resilient proxy fallback, and optional review capture, it’s a dependable Google Maps listing scraper for lead gen, local SEO, and research. Marketers, developers, and analysts can export to CSV/Excel/JSON or call it via the Apify API to automate enrichment and analytics. Start extracting smarter, cleaner business insights from Google Maps — at scale.