{"repo":"gosom/google-maps-scraper","free":true,"listed":false,"github":"https://github.com/gosom/google-maps-scraper","clone":"git clone https://github.com/gosom/google-maps-scraper.git","description":"scrape data  from Google Maps. Extracts data such as the name, address, phone number, website URL, rating,  reviews number, latitude and longitude, reviews,email and more for each place","language":"Go","stars":5531,"topics":["agent-skills","claude-skills","codex-skills","distributed-scraper","distributed-scraping","golang","google-maps","google-maps-scraping","web-scraper","web-scraping"],"license":"MIT","category":"data_scraper","readme_excerpt":"# Google Maps Scraper\n\n<p align=\"center\">\n  <a href=\"https://github.com/gosom/google-maps-scraper/stargazers\"><img src=\"https://img.shields.io/github/stars/gosom/google-maps-scraper?style=social\" alt=\"GitHub Stars\"></a>\n  <a href=\"https://github.com/gosom/google-maps-scraper/network/members\"><img src=\"https://img.shields.io/github/forks/gosom/google-maps-scraper?style=social\" alt=\"GitHub Forks\"></a>\n  <a href=\"https://twitter.com/intent/tweet?text=Powerful%20open-source%20Google%20Maps%20scraper%20-%20extract%20business%20data%20at%20scale%20with%20CLI%2C%20Web%20UI%2C%20or%20REST%20API&url=https%3A%2F%2Fgithub.com%2Fgosom%2Fgoogle-maps-scraper&hashtags=golang,webscraping,googlemaps,opensource\"><img src=\"https://img.shields.io/twitter/url/http/shields.io.svg?style=social\" alt=\"Tweet\"></a>\n</p>\n\n[![Build Status](https://github.com/gosom/google-maps-scraper/actions/workflows/build.yml/badge.svg)](https://github.com/gosom/google-maps-scraper/actions/workflows/build.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/gosom/google-maps-scraper)](https://goreportcard.com/report/github.com/gosom/google-maps-scraper)\n[![GoDoc](https://godoc.org/github.com/gosom/google-maps-scraper?status.svg)](https://godoc.org/github.com/gosom/google-maps-scraper)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Discord](https://img.shields.io/badge/Discord-Join%20Chat-7289DA?logo=discord&logoColor=white)](https://discord.gg/fpaAVhNCCu)\n\nExtract 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.\n\nUse it for lead generation, local business research, sales prospecting, data enrichment, or developer automation.\n\n## Ask an AI Agent to Get Leads\n\nThe 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.\n\nInstall the skill:\n\n```bash\nnpx skills add gosom/google-maps-scraper\n```\n\nThen ask your agent in plain language:\n\n> Find dentists in Berlin and include their websites and email addresses.\n\nThe 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.\n\nRequires Docker and Node.js on macOS, Linux, or Windows through WSL. See [how the agent workflow works](#ai-agent-skill).\n\n| Goal | Start here |\n|---|---|\n| Get leads into CSV/JSON | [Command Line](#command-line) |\n| Ask an AI coding agent to run a scrape | [AI Agent Skill](#ai-agent-skill) |\n| Run a browser UI locally | [Web UI](#web-ui) |\n| Automate scraping from your app | [REST API](#rest-api) |\n| Run a multi-user scraping platform | [SaaS Edition](docs/saas.md) |\n| Follow common workflows | [Recipes](docs/recipes.md) |\n\n![Example GIF](img/example.gif)\n\nIf this project is useful to you, a GitHub star helps others discover it. Sponsorships help fund maintenance and new work.\n\n---\n\n## Sponsored By\n\n<p align=\"center\"><i>This project is made possible by our amazing sponsors</i></p>\n\n### [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\n\n[![Coreclaw - Full-stack web scraping and data extraction platform](./img/coreclaw.png)](https://www.coreclaw.com/?utm_source=github&utm_medium=referral&utm_campaign=gosom&utm_term=&utm_id=gosom)\n\nFind 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)\n\n---\n\n### [G Maps Extractor](https://gmapsextractor.com?utm_source=github&utm_medium=banner&utm_campaign=gosom) - No-code Google Maps scraper\n\n[![G Maps Extractor](./img/gmaps-extractor-banner.png)](https://gmapsextractor.com?utm_source=github&utm_medium=banner&utm_campaign=gosom)\n\nChrome 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)\n\n---\n\n### [Scrap.io](https://scrap.io?utm_medium=ads&utm_source=github_gosom_gmap_scraper) - Extract ALL Google Maps listings at country-scale\n\n[![Scrap.io - Extract ALL Google Maps Listings](./img/premium_scrap_io.png)](https://scrap.io?utm_medium=ads&utm_source=github_gosom_gmap_scraper)\n\nNo 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)\n\n---\n\n### [SerpApi](https://serpapi.com/?utm_source=google-maps-scraper) - Google Maps API and 30+ search engine APIs\n\n[![SerpApi](./img/SerpApi-banner.png)](https://serpapi.com/?utm_source=google-maps-scraper)\n\nFast, reliable, and scalable. Used by Fortune 500 companies. [**View all APIs →**](https://serpapi.com/search-api)\n\n---\n\n### [SearchApi](https://www.searchapi.io/google-maps?via=gosom&utm_source=github&utm_medium=sponsorship&utm_campaign=gosom) - Google Maps API for SERP scraping\n\n[![SearchApi](./img/searchapi_google_maps.png)](https://www.searchapi.io/google-maps?via=gosom&utm_source=github&utm_medium=sponsorship&utm_campaign=gosom)\n\nReal-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)\n\n---\n\n### [Evomi](https://evomi.com?utm_source=github&utm_medium=banner&utm_campaign=gosom-maps) - Swiss quality proxies for scraping\n\n[![Evomi](https://my.evomi.com/images/brand/cta.png)](https://evomi.com?utm_source=github&utm_medium=banner&utm_campaign=gosom-maps)\n\nSwiss 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)\n\n---\n\n### [HasData](https://hasdata.com/scrapers/google-maps?utm_source=github&utm_medium=sponsorship&utm_campaign=gosom) - No-code Google Maps Scraper & Email Extraction\n\n[![HasData Google Maps Scraper](./img/hd-gm-banner.png)](https://hasdata.com/scrapers/google-maps?utm_source=github&utm_medium=sponsorship&utm_campaign=gosom)\n\nExtract 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)\n\n---\n\n### [RapidProxy](https://www.rapidproxy.io/?ref=gosom) - High-Performance Proxy Solution\n\n[![RapidProxy](./img/rapidproxy-banner.png)](https://www.rapidproxy.io/?ref=gosom)\n\nUnlock 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)\n\n---\n\n### [TalorData](https://talordata.com/?campaignid=f01u8cHondg2qA47&utm_source=github&utm_term=googlemaps) - Fast SERP API for Google Maps and Search Data\n\n[![TalorData](./img/talordata.png)](https://talordata.com/?campaignid=f01u8cHondg2qA47&utm_source=github&utm_term=googlemaps)\n\nReal-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)\n\n---\n\n### [Webshare](https://www.webshare.io/?referral_code=0q3l81eet8mp) - Premium proxies for scraping at scale\n\n[![Webshare](./img/webshare-banner.png)](https://www.webshare.io/?referral_code=0q3l81eet8mp)\n\nThe most affordable premium proxies across 195 countries & 80+ million IPs, plus a FREE plan for new users. [Learn more](webshare.md)\n\n---\n\n### [BirdProxies](https://birdproxies.com/?utm_source=github&utm_medium=sponsorship&utm_campaign=gosom-google-maps-scraper) - Residential and ISP proxies\n\n[![BirdProxies](./img/birdproxies.png)](https://birdproxies.com/?utm_source=github&utm_medium=sponsorship&utm_campaign=gosom-google-maps-scraper)\n\nHey, 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!\n\n[**Visit BirdProxies →**](https://birdproxies.com/?utm_source=github&utm_medium=sponsorship&utm_campaign=gosom-google-maps-scraper) | [Join Discord](https://discord.com/invite/birdproxies)\n\n---\n\n### [Proxidize](https://proxidize.com/?utm_source=github&utm_medium=sponsorship&utm_campaign=google_maps_scraper&utm_content=gosom) - Proxies for Google Maps Scraping\n\n[![Proxidize | Proxies for Google Maps Scraping](https://imagedelivery.net/r4caA8hJ3Ww3j8uyC_NNCA/23ee92b0-9fae-4c55-6865-9ca35387fb00/public)](https://proxidize.com/?utm_source=github&utm_medium=sponsorship&utm_campaign=google_maps_scraper&utm_content=gosom)\n\nMobile 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)\n\n---\n\n### [NodeMaven](https://go.nodemaven.com/GoogleMapsScrapper) - Reliable proxies with high-quality IPs\n\n[![NodeMaven - Reliable proxy provider with high-quality IPs](./img/nodemaven.png)](https://go.nodemaven.com/GoogleMapsScrapper)\n\n[**NodeMaven**](https://go.nodemaven.com/G","default_branch":"main","files":246,"tree":[".github/FUNDING.yaml",".github/workflows/build.yml",".github/workflows/publish.yml",".gitignore",".golangci.yaml",".pre-commit-config.yaml","AGENTS.md","Dockerfile","Dockerfile.saas","LICENSE","MacOS instructions.md","Makefile","PROVISION","README.md","SECURITY.md","admin/admin.go","admin/constants.go","admin/handlers_2fa.go","admin/handlers_apikeys.go","admin/handlers_auth.go","admin/handlers_dashboard.go","admin/handlers_jobs.go","admin/handlers_settings.go","admin/handlers_terminal.go","admin/handlers_workers.go","admin/middleware.go","admin/postgres/postgres.go","admin/render.go","admin/routes.go","admin/state.go","admin/static/pico.min.css","admin/static/styles.css","admin/static/xterm-addon-fit.min.js","admin/static/xterm.css","admin/static/xterm.min.js","admin/templates/2fa_prompt.html","admin/templates/2fa_setup.html","admin/templates/2fa_verify.html","admin/templates/_head.html","admin/templates/_navbar.html","admin/templates/api_keys.html","admin/templates/dashboard.html","admin/templates/jobs.html","admin/templates/login.html","admin/templates/settings.html","admin/templates/terminal.html","admin/templates/workers.html","api/api.go","api/doc.go","api/docs/docs.go","api/docs/swagger.json","api/docs/swagger.yaml","api/middleware.go","api/postgres/postgres.go","api/responses.go","banner.png","cli/prompt.go","cli/ui.go","cmd/gmapssaas/cmdadmin/cmd_admin.go","cmd/gmapssaas/cmdcommon/common.go","cmd/gmapssaas/cmdprovision/provision.go","cmd/gmapssaas/cmdprovision/state.go","cmd/gmapssaas/cmdserve/cmd_serve.go","cmd/gmapssaas/cmdupdate/cmd_update.go","cmd/gmapssaas/cmdupdate/cmd_update_test.go","cmd/gmapssaas/cmdworker/cmd_worker.go","cmd/gmapssaas/main.go","cmd/tools/tools.go","cryptoext/cryptoext.go","deduper/deduper.go","deduper/hashmap.go","docker-compose.dev.yaml","docker-compose.saas.yaml","docs/development-saas.md","docs/proxies.md","docs/recipes.md","docs/saas.md","env/env.go","example-queries.txt","examples/examples-api/README.md","examples/examples-api/go/main.go","examples/examples-api/keywords.txt","examples/examples-api/python/scrape.py","examples/examples-api/typescript/scrape.ts","examples/plugins/example_writer.go","exiter/exiter.go","gmaps-extractor.md","gmaps/dom_reviews_test.go","gmaps/emailjob.go","gmaps/entry.go","gmaps/entry_internal_test.go","gmaps/entry_test.go","gmaps/job.go","gmaps/multiple.go","gmaps/place.go","gmaps/reviews.go","gmaps/reviews_test.go","gmaps/searchjob.go","gmaps/testdata/review_aggregator.json","gmaps/testdata/review_native_no_text.json","gmaps/testdata/review_native_no_translation.json","gmaps/testdata/review_native_with_reply.json","gmaps/url_test.go","go.mod","go.sum","grid/grid.go","grid/grid_test.go","httpext/httpext.go","httpext/middleware.go","img/SerpApi-banner.png","img/SerpApi-logo-w.png","img/birdproxies.png","img/capsolver-banner.png","img/coreclaw.png","img/example.gif","img/gmaps-extractor-banner.png","img/gmaps-extractor-logo.png","img/hd-gm-banner.png","img/leadsdb-banner.png","img/nodemaven.png","img/premium_scrap_io.png","img/premium_scrap_io_demo.gif","img/proxidize-banner.png","img/rapidproxy-banner.png","img/scrapeless_dark.png","img/scrapeless_light.png","img/searchapi_google_maps.png","img/talordata.png","img/webshare-banner.png","img/webshare-logo.png","infra/cloudinit/cloudinit.go","infra/cloudinit/cloudinit_test.go","infra/digitalocean/appplatform.go","infra/digitalocean/digitalocean.go","infra/hetzner/hetzner.go","infra/infra.go","infra/planetscale/planetscale.go","infra/ssh_tofu.go","infra/vps/provisioner.go","infra/vps/provisioner_test.go","infra/vps/scripts.go","infra/worker.go","internal/jsonbsanitize/entry.go","internal/jsonbsanitize/entry_test.go","internal/proxyconfig/proxyconfig.go","internal/proxyconfig/proxyconfig_test.go","leadsdb/leadsdb.go","lint.go","local/cloud-init-test.yaml","local/test_ssh_key","local/test_ssh_key.pub","log/log.go","main.go","migration-pro.md","migrations/20260123144521_river_tables.sql","migrations/20260123155521_scrape_results.sql","migrations/20260124164611-admin_and_provisioning.sql","migrations/20260124213201-add_totp_2fa.sql","migrations/20260130100000-create_rate_limits.sql","migrations/20260208150322-add_dashboard_indexes.sql","migrations/20260208160000-add_missing_indexes.sql","migrations/dbconfig.yml","migrations/migrations.go","postgres/pool.go","postgres/provider.go","postgres/resultwriter.go","postgres/resultwriter_test.go","ratelimit/postgres/postgres.go","ratelimit/ratelimit.go","rqueue/jobs.go","rqueue/rqueue.go","rqueue/rqueue_test.go","rqueue/ui.go","rqueue/worker_jobs.go","runner/databaserunner/databaserunner.go","runner/filerunner/filerunner.go","runner/installplaywright/installplaywright.go","runner/jobs.go","runner/jobs_test.go","runner/lambdaaws/invoker.go","runner/lambdaaws/invoker_test.go","runner/lambdaaws/io.go","runner/lambdaaws/lambdaaws.go","runner/runner.go","runner/webrunner/webrunner.go","runner/webrunner/webrunner_test.go","s3uploader/s3uploader.go","saas/constants.go","scrap_io.md","scraper/centralwriter.go","scraper/centralwriter_test.go","scraper/provider.go","scraper/provider_test.go","scraper/scraper.go","scraper/scraper_test.go","scripts/migrations/0001_create_tables.down.sql","scripts/migrations/0001_create_tables.up.sql","scripts/migrations/0002_add_lat_lon_results.down.sql","scripts/migrations/0002_add_lat_lon_results.up.sql","scripts/migrations/0003_results_jsonb.down.sql","scripts/migrations/0003_results_jsonb.up.sql","scripts/migrations/0004_add-index-gmaps_jobs.down.sql","scripts/migrations/0004_add-index-gmaps_jobs.up.sql","serpapi.md","skills/google-maps-scraper/SKILL.md","skills/google-maps-scraper/references/advanced-coverage.md","skills/google-maps-scraper/references/local-execution.md","skills/google-maps-scraper/references/proxy-setup.md","skills/google-maps-scraper/references/proxy-sponsors.json","skills/google-maps-scraper/references/query-planning.md","skills/google-maps-scraper/references/recovery.md","skills/google-maps-scraper/references/results.md","skills/google-maps-scraper/scripts/configure-proxy.sh","skills/google-maps-scraper/scripts/ensure-latest.sh","skills/google-maps-scraper/scripts/helpers_test.sh","skills/google-maps-scraper/scripts/run-local.sh","skills/google-maps-scraper/scripts/select-proxy-sponsors.mjs","skills/google-maps-scraper/scripts/select-proxy-sponsors.test.mjs","skills/google-maps-scraper/scripts/status-local.mjs","skills/google-maps-scraper/scripts/status-local.test.mjs","sponsors/hasdata.md","talordata.md","testdata/output.json","testdata/panic.json","testdata/panic2.json","testdata/raw.json","testdata/raw2.json","tlmt/gonoop/gonoop.go","tlmt/goposthog/goposthog.go","tlmt/tlmt.go","web/errors.go","web/job.go","web/places.go","web/service.go","web/service_test.go","web/sqlite/sqlite.go","web/static/css/main.css","web/static/spec/spec.yaml","web/static/templates/index.html","web/static/templates/job_row.html","web/static/templates/job_rows.html","web/static/templates/job_view.html","web/static/templates/redoc.html","web/web.go","web/web_test.go","webshare.md"],"storefront":"/r/gosom","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/gosom/google-maps-scraper/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}