# Google Maps Scraper
[](https://github.com/gosom/google-maps-scraper/actions/workflows/build.yml) [](https://goreportcard.com/report/github.com/gosom/google-maps-scraper) [](https://godoc.org/github.com/gosom/google-maps-scraper) [](https://opensource.org/licenses/MIT) [](https://discord.gg/fpaAVhNCCu) Extract Google Maps business leads, emails, reviews, phone numbers, websites, ratings, coordinates, and more with a free open-source CLI, Web UI, REST API, and optional self-hosted platform. Use it for lead generation, local business research, sales prospecting, data enrichment, or developer automation. ## Ask an AI Agent to Get Leads The easiest way to use Google Maps Scraper is with an AI coding agent such as [Claude Code](https://claude.com/claude-code), Codex, Cursor, GitHub Copilot, or any [Agent Skills-compatible tool](https://agentskills.io). You describe the leads you want; the agent plans the searches, runs a small validation, starts the full local scrape, monitors it, and helps you work with the results. Install the skill: ```bash npx skills add gosom/google-maps-scraper ``` Then ask your agent in plain language: > Find dentists in Berlin and include their websites and email addresses. The agent automatically checks for the latest skill and Docker image, then asks only for details it still needs. For larger crawls, you can provide your own proxy, continue without one, or review three randomly selected proxy sponsors. Proxy credentials are entered through a masked local terminal prompt and are never pasted into the agent chat. Requires Docker and Node.js on macOS, Linux, or Windows through WSL. See [how the agent workflow works](#ai-agent-skill). | Goal | Start here | |---|---| | Get leads into CSV/JSON | [Command Line](#command-line) | | Ask an AI coding agent to run a scrape | [AI Agent Skill](#ai-agent-skill) | | Run a browser UI locally | [Web UI](#web-ui) | | Automate scraping from your app | [REST API](#rest-api) | | Run a multi-user scraping platform | [SaaS Edition](docs/saas.md) | | Follow common workflows | [Recipes](docs/recipes.md) |  If this project is useful to you, a GitHub star helps others discover it. Sponsorships help fund maintenance and new work. --- ## Sponsored ByThis project is made possible by our amazing sponsors
### [Coreclaw](https://www.coreclaw.com/?utm_source=github&utm_medium=referral&utm_campaign=gosom&utm_term=&utm_id=gosom) - Full-stack web scraping and data extraction platform [](https://www.coreclaw.com/?utm_source=github&utm_medium=referral&utm_campaign=gosom&utm_term=&utm_id=gosom) Find ready-made workers for public websites, run them instantly, and get structured data you can export or connect anywhere. [**Get free test for $3 →**](https://www.coreclaw.com/?utm_source=github&utm_medium=referral&utm_campaign=gosom&utm_term=&utm_id=gosom) --- ### [G Maps Extractor](https://gmapsextractor.com?utm_source=github&utm_medium=banner&utm_campaign=gosom) - No-code Google Maps scraper [](https://gmapsextractor.com?utm_source=github&utm_medium=banner&utm_campaign=gosom) Chrome extension that extracts emails, social profiles, phone numbers, reviews & more. [**Get 1,000 free leads →**](https://gmapsextractor.com?utm_source=github&utm_medium=banner&utm_campaign=gosom) --- ### [Scrap.io](https://scrap.io?utm_medium=ads&utm_source=github_gosom_gmap_scraper) - Extract ALL Google Maps listings at country-scale [](https://scrap.io?utm_medium=ads&utm_source=github_gosom_gmap_scraper) No keywords needed. No limits. Export millions of businesses in 2 clicks. [**Try it free →**](https://scrap.io?utm_medium=ads&utm_source=github_gosom_gmap_scraper) --- ### [SerpApi](https://serpapi.com/?utm_source=google-maps-scraper) - Google Maps API and 30+ search engine APIs [](https://serpapi.com/?utm_source=google-maps-scraper) Fast, reliable, and scalable. Used by Fortune 500 companies. [**View all APIs →**](https://serpapi.com/search-api) --- ### [SearchApi](https://www.searchapi.io/google-maps?via=gosom&utm_source=github&utm_medium=sponsorship&utm_campaign=gosom) - Google Maps API for SERP scraping [](https://www.searchapi.io/google-maps?via=gosom&utm_source=github&utm_medium=sponsorship&utm_campaign=gosom) Real-time Google Maps data with a simple integration. [**Explore the API →**](https://www.searchapi.io/google-maps?via=gosom&utm_source=github&utm_medium=sponsorship&utm_campaign=gosom) --- ### [Evomi](https://evomi.com?utm_source=github&utm_medium=banner&utm_campaign=gosom-maps) - Swiss quality proxies for scraping [](https://evomi.com?utm_source=github&utm_medium=banner&utm_campaign=gosom-maps) Swiss quality proxies from $0.49/GB across 150+ countries, with 24/7 support and 99.9% uptime. [**Visit Evomi →**](https://evomi.com?utm_source=github&utm_medium=banner&utm_campaign=gosom-maps) --- ### [HasData](https://hasdata.com/scrapers/google-maps?utm_source=github&utm_medium=sponsorship&utm_campaign=gosom) - No-code Google Maps Scraper & Email Extraction [](https://hasdata.com/scrapers/google-maps?utm_source=github&utm_medium=sponsorship&utm_campaign=gosom) Extract business leads, emails, addresses, phones, reviews and more. [**Get 1,000 free credits →**](https://hasdata.com/scrapers/google-maps?utm_source=github&utm_medium=sponsorship&utm_campaign=gosom) --- ### [RapidProxy](https://www.rapidproxy.io/?ref=gosom) - High-Performance Proxy Solution [](https://www.rapidproxy.io/?ref=gosom) Unlock global access with consistent, high-speed connections from $0.65/GB, 90M+ real residential IPs worldwide, and traffic that never expires. [**Try it free →**](https://www.rapidproxy.io/?ref=gosom) --- ### [TalorData](https://talordata.com/?campaignid=f01u8cHondg2qA47&utm_source=github&utm_term=googlemaps) - Fast SERP API for Google Maps and Search Data [](https://talordata.com/?campaignid=f01u8cHondg2qA47&utm_source=github&utm_term=googlemaps) Real-time SERP data APIs for Google Maps and search results, with structured JSON / HTML responses and 1,000 free API responses to start. [**Start using TalorData →**](https://talordata.com/?campaignid=f01u8cHondg2qA47&utm_source=github&utm_term=googlemaps) | [Learn more](talordata.md) --- ### [Webshare](https://www.webshare.io/?referral_code=0q3l81eet8mp) - Premium proxies for scraping at scale [](https://www.webshare.io/?referral_code=0q3l81eet8mp) The most affordable premium proxies across 195 countries & 80+ million IPs, plus a FREE plan for new users. [Learn more](webshare.md) --- ### [BirdProxies](https://birdproxies.com/?utm_source=github&utm_medium=sponsorship&utm_campaign=gosom-google-maps-scraper) - Residential and ISP proxies [](https://birdproxies.com/?utm_source=github&utm_medium=sponsorship&utm_campaign=gosom-google-maps-scraper) Hey, we built BirdProxies because proxies shouldn't be complicated or overpriced. Fast residential and ISP proxies in 195+ locations, fair pricing, and real support. Try our FlappyBird game on the landing page for free data! [**Visit BirdProxies →**](https://birdproxies.com/?utm_source=github&utm_medium=sponsorship&utm_campaign=gosom-google-maps-scraper) | [Join Discord](https://discord.com/invite/birdproxies) --- ### [Proxidize](https://proxidize.com/?utm_source=github&utm_medium=sponsorship&utm_campaign=google_maps_scraper&utm_content=gosom) - Proxies for Google Maps Scraping [](https://proxidize.com/?utm_source=github&utm_medium=sponsorship&utm_campaign=google_maps_scraper&utm_content=gosom) Mobile and residential proxies for Google Maps scraping, local SEO, lead generation, and data collection. Use code `gmaps20` for 20% off. [**Visit Proxidize →**](https://proxidize.com/?utm_source=github&utm_medium=sponsorship&utm_campaign=google_maps_scraper&utm_content=gosom) --- ### [NodeMaven](https://go.nodemaven.com/GoogleMapsScrapper) - Reliable proxies with high-quality IPs [](https://go.nodemaven.com/GoogleMapsScrapper) [**NodeMaven**](https://go.nodemaven.com/GoogleMapsScrapper) provides high-quality proxies for automation, web scraping, SEO research, and social media management. Why NodeMaven: - 99.9% uptime - Sticky sessions up to 7 days - Low-fraud IPs with score under 97 - No KYC required - Up to 10% traffic cashback **Special codes for Google Maps Scraper users:** - `MAPS35` - 35% off Mobile and Residential Proxies - `MAPS40` - 40% off ISP Static Proxies [**Visit NodeMaven →**](https://go.nodemaven.com/GoogleMapsScrapper) ---View all sponsors | Become a sponsor
--- ## Why Use This Scraper? | | | |---|---| | **Completely Free & Open Source** | MIT licensed, no hidden costs or usage limits | | **Multiple Interfaces** | CLI, Web UI, REST API - use what fits your workflow | | **High Performance** | ~120 places/minute with optimized concurrency | | **33+ Data Points** | Business details, reviews, emails, coordinates, and more | | **Production Ready** | Scale from a single machine to Kubernetes clusters | | **Flexible Output** | CSV, JSON, PostgreSQL, S3, LeadsDB, or custom plugins | | **Proxy Support** | Built-in SOCKS5/HTTP/HTTPS proxy rotation | --- ## What's Next After Scraping? Once you've collected your data, you'll need to manage, deduplicate, and work with your leads. **[LeadsDB](https://getleadsdb.com/)** is a companion tool designed exactly for this: - **Automatic Deduplication** - Import from multiple scrapes without worrying about duplicates - **AI Agent Ready** - Query and manage leads with natural language via MCP - **Advanced Filtering** - Combine filters with AND/OR logic on any field - **Export Anywhere** - CSV, JSON, or use the REST API The scraper has [built-in LeadsDB integration](#export-to-leadsdb) - just add your API key and leads flow directly into your database. **[Start free with 500 leads](https://getleadsdb.com/)** --- ## Table of Contents - [Quick Start](#quick-start) - [Command Line](#command-line) - [Web UI](#web-ui) - [REST API](#rest-api) - [SaaS Edition](#saas-edition) - [AI Agent Skill](#ai-agent-skill) - [Recipes](docs/recipes.md) - [Proxy Sponsors](docs/proxies.md) - [Installation](#installation) - [Features](#features) - [Extracted Data Points](#extracted-data-points) - [Configuration](#configuration) - [Command Line Options](#command-line-options) - [Using Proxies](#using-proxies) - [Email Extraction](#email-extraction) - [Fast Mode](#fast-mode) - [Export to LeadsDB](#export-to-leadsdb) - [Advanced Usage](#advanced-usage) - [PostgreSQL Database Provider](#postgresql-database-provider) - [Kubernetes Deployment](#kubernetes-deployment) - [Custom Writer Plugins](#custom-writer-plugins) - [Performance](#performance) - [Support the Project](#support-the-project) - [Community](#community) - [Contributing](#contributing) - [License](#license) --- ## Quick Start ### Command Line ```bash mkdir -p gmaps-output docker run \ -v gmaps-playwright-cache:/opt \ -v "$PWD/example-queries.txt:/queries.txt:ro" \ -v "$PWD/gmaps-output:/out" \ gosom/google-maps-scraper \ -input /queries.txt \ -results /out/results.csv \ -depth 1 \ -exit-on-inactivity 3m ``` Useful options: | Need | Flag | |---|---| | Extract emails from business websites | `-email` | | Write JSON instead of CSV | `-json -results /out/results.json` | | Collect extra reviews | `-extra-reviews -json -results /out/results.json` | | Increase concurrency | `-c 4`, `-c 8`, or `-c 16` | | Run multiple pages per browser | `-pages-per-browser 4` | | Limit browser processes | `-browser-pool-size 2` | | Use proxies | `-proxies "http://user:pass@host:port,socks5://host:port"` | | Read proxies from a credentials file | `-proxies-file /path/to/proxies.txt` | `-c` controls how many scrape jobs run in parallel. Higher concurrency can finish large input files faster, but it also uses more CPU/RAM and can increase blocking or failures, especially without proxies. Start with the default for a first run. For larger jobs on a capable machine, try `-c 4`, `-c 8`, or `-c 16` and measure the result. **Want to skip CSV files?** Send leads directly to [LeadsDB](https://getleadsdb.com/): ```bash docker run \ -v gmaps-playwright-cache:/opt \ -v "$PWD/example-queries.txt:/queries.txt:ro" \ gosom/google-maps-scraper \ -input /queries.txt \ -depth 1 \ -leadsdb-api-key "your-api-key" \ -exit-on-inactivity 3m ``` ### Web UI Start the web interface with a single command: ```bash mkdir -p gmapsdata docker run \ -v "$PWD/gmapsdata:/gmapsdata" \ -p 8080:8080 \ gosom/google-maps-scraper \ -data-folder /gmapsdata ``` Then open http://localhost:8080 in your browser. Or download the [binary release](https://github.com/gosom/google-maps-scraper/releases) for your platform. > **Note:** Results take at least 3 minutes to appear (minimum configured runtime). > > **macOS Users:** Docker command may not work. See [MacOS Instructions](MacOS%20instructions.md). ### REST API When running the web server, a full REST API is available: | Endpoint | Method | Description | |----------|--------|-------------| | `/api/v1/jobs` | POST | Create a new scraping job | | `/api/v1/jobs` | GET | List all jobs | | `/api/v1/jobs/{id}` | GET | Get job details | | `/api/v1/jobs/{id}` | DELETE | Delete a job | | `/api/v1/jobs/{id}/download` | GET | Download results as CSV | Full OpenAPI 3.0.3 documentation available at http://localhost:8080/api/docs ### SaaS Edition Need a multi-user platform with API keys, admin UI, job queue, workers, and cloud provisioning? Use the optional self-hosted SaaS edition: ```bash curl -fsSL https://raw.githubusercontent.com/gosom/google-maps-scraper/main/PROVISION | sh ``` See [SaaS documentation](docs/saas.md) for deployment and operations details. There is also a [5-minute deployment walkthrough](https://gosom.dev/deploy-your-own-maps-scraping-api-in-5-minutes/) and a [YouTube video walkthrough](https://www.youtube.com/watch?v=STG9mZw_nac). More examples are available in [Recipes](docs/recipes.md). If you need proxies for larger jobs, see [Proxy Sponsors](docs/proxies.md). --- ## AI Agent Skill The AI Agent Skill turns a natural-language lead request into a guided local scraping workflow. It is designed for nontechnical users as well as developers and keeps you in control of the search scope, proxy choice, and output. If you have not installed it yet: ```bash npx skills add gosom/google-maps-scraper ``` Then just ask your agent: > Find me all dentists in Berlin with their emails The agent will: 1. Noninteractively check for the latest skill and Docker image. 2. Infer sensible search defaults and ask only for missing essentials. 3. Let you use your own proxy, continue without one, or choose from three randomly selected proxy sponsors. 4. Collect proxy credentials through a masked local terminal prompt instead of chat. 5. Run a small validation scrape before the full job. 6. Start and monitor the Docker crawl in the background. 7. Present the results with options to save, filter, analyze, or export. Proxy sponsor recommendations are clearly disclosed and shown with equal placement. Any discount or offer is displayed only when it is configured in the skill's [active sponsor registry](skills/google-maps-scraper/references/proxy-sponsors.json). You can always use another provider or no proxy. Requires Docker and Node.js on macOS, Linux, or Windows through WSL. See the [skill definition](skills/google-maps-scraper/SKILL.md) for details. --- ## Installation ### Using Docker (Recommended) The published Docker image uses Playwright: ```bash docker pull gosom/google-maps-scraper ``` ### Build from Source Requirements: Go 1.26.5+ ```bash git clone https://github.com/gosom/google-maps-scraper.git cd google-maps-scraper go mod download go build ./google-maps-scraper -input example-queries.txt -results results.csv -exit-on-inactivity 3m ``` > First run downloads required browser libraries for Playwright. --- ## Features | Feature | Description | |---------|-------------| | **33+ Data Points** | Business name, address, phone, website, reviews, coordinates, and more | | **Email Extraction** | Optional crawling of business websites for email addresses | | **Multiple Output Formats** | CSV, JSON, PostgreSQL, S3, LeadsDB, or custom plugins | | **Proxy Support** | SOCKS5, HTTP, HTTPS with authentication | | **Scalable Architecture** | Single machine to Kubernetes cluster | | **REST API** | Programmatic control for automation | | **Web UI** | User-friendly browser interface | | **Fast Mode (Beta)** | Quick extraction of up to 21 results per query | | **AWS Lambda** | Serverless execution support (experimental) | --- ## Extracted Data PointsBanner generated using OpenAI's DALL-E
SPONSOR DISCLAIMER: Sponsor listings and referral links do not constitute an endorsement. This project and its maintainers are not responsible for sponsors' products, services, representations, conduct, or any resulting loss or damage. Users engage with sponsors at their own risk.