Skip to main content

Google Maps Scraper

Google Maps Lead Scraper

Google Maps Extractor · Google Maps Lead Scraper · Google Maps Lead Extractor

Python SDK to scrape Google Maps places and export leads (name, phone, website, emails, and more) through a hosted Agent HTTP API. Powered by GMaps Lead Finder. This is not a local browser crawler — jobs run in the cloud scrape-and-enrich pipeline.

Get an API key

  1. Sign in at gmapsleadfinder.com.
  2. Use a plan with Agent API (Growth or higher) — see Pricing.
  3. Open Account → API key and copy your gmf_… key.
export GMF_API_KEY=gmf_your_key_here

Never commit API keys or embed them in public frontends.

Install

pip install google-maps-scraper-sdk

Requires Python 3.10+. Uses the standard library only (no third-party HTTP dependencies).

Configuration

Variable Required Description
GMF_API_KEY Yes Bearer key (gmf_…)
GMF_BASE_URL No Default https://gmapsleadfinder.com

You can also pass credentials in code:

from gmaps_scraper import Client

client = Client(api_key="gmf_…", base_url="https://gmapsleadfinder.com")

Quickstart

from gmaps_scraper import Client

client = Client()  # reads GMF_API_KEY

me = client.me()
print(me["plan"], me["creditsRemaining"])

# Google Maps scraper helper: create job → poll → fetch all rows
rows = client.scrape("dentists in Austin TX")
for row in rows[:5]:
    print(row.get("Name"), row.get("Phone"), row.get("Website"), row.get("Emails"))

CLI:

gmaps-scraper me
gmaps-scraper scrape "dentists in Austin TX" --out leads.json
gmaps-scraper scrape "dentists in Austin TX" --out leads.csv

Client API

me()

Returns plan and credits: plan, creditsLimit, creditsUsed, creditsRemaining.

create_job(keyword)

Queues a single-keyword Google Maps lead scrape. Body is exactly one search query (city + category works best).

Returns: jobId, keywordCount, creditsRemaining.

get_job(job_id)

Poll job status until completed, partial, or failed (also queued / running while in progress).

get_results(job_id, *, limit=100, cursor=None)

Paginated place rows as { column_header: string } objects. Follow nextCursor until null. limit is 1–500.

scrape(keyword, *, poll_interval_ms=2000, timeout_ms=600_000, result_limit=100)

High-level Google Maps extractor: creates a job, polls to a terminal status, then returns all result rows.

CLI reference

gmaps-scraper me
gmaps-scraper scrape "<keyword>" [--out path.json|path.csv]
gmaps-scraper scrape "<keyword>" [--poll-interval-ms 2000] [--timeout-ms 600000]

# Prefer module form if the npm CLI is also installed (same binary name):
python -m gmaps_scraper me
python -m gmaps_scraper.cli scrape "coffee shops in Austin TX" --out leads.csv

Errors

HTTP Exception Meaning
400 BadRequestError Invalid request (e.g. not exactly one keyword)
401 AuthenticationError Missing or invalid API key
402 InsufficientCreditsError No credits remaining
403 PlanNotAllowedError Plan cannot use Agent API (need Growth+)
404 NotFoundError Job not found
409 JobConflictError Another job is already running for this user
TimeoutError Local poll timeout in scrape()
other ApiError Base / unexpected API failure

Limits

  • Exactly one keyword per API job.
  • Only one running job per user at a time (web UI, HTTP API, and MCP share the lock) → 409 if busy. For multiple keywords, scrape sequentially.
  • 1 credit = 1 place row; enrich is included.
  • Agent API requires Growth or higher.
  • Empty email/social cells mean nothing public was found — contacts are never invented.
Resource URL
Website https://gmapsleadfinder.com
Pricing https://gmapsleadfinder.com/pricing
HTTP API docs https://gmapsleadfinder.com/docs/api
Agent & MCP https://gmapsleadfinder.com/docs/agent
OpenAPI https://gmapsleadfinder.com/openapi-agent.yaml
Get API key https://gmapsleadfinder.com/account#api-key
PyPI https://pypi.org/project/google-maps-scraper-sdk/
Source / examples https://github.com/google-maps-lead-scraper/google-maps-scraper
Python guide https://github.com/google-maps-lead-scraper/google-maps-scraper/blob/main/docs/python.md

Prefer Remote MCP for Claude / Cursor / Codex? See the Agent docs.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

google_maps_scraper_sdk-0.1.1.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

google_maps_scraper_sdk-0.1.1-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file google_maps_scraper_sdk-0.1.1.tar.gz.

File metadata

  • Download URL: google_maps_scraper_sdk-0.1.1.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.13

File hashes

Hashes for google_maps_scraper_sdk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 cac025d0b9c7df3832d1ed6ed37e556b327604dd1d0a6d9bc8c98e9bd2191a58
MD5 06dafe13b243c0a5a2d6188d728bd34a
BLAKE2b-256 d8a4c6fd162828aeeec7fb9a774664514d92be3886f03426b9e7af2dc16db5fd

See more details on using hashes here.

File details

Details for the file google_maps_scraper_sdk-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for google_maps_scraper_sdk-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1bf2d270ef732d26ab2188aa3ac55a7125d0b601aa7e8a4882a1920f602a0075
MD5 789107de7d9e18acbdf90caa6ee70dc0
BLAKE2b-256 0d8c955ee6b315bf6b5bffa5da1f320f98f6e26640b6be1933a65b4e5c706553

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page