Skip to main content

google-maps-reviews-scraper

PyPI Python License Demo

Get all Google Maps reviews for any place — free, no API key, no limits.

→ Live dashboard demo (4,370 Taal Vista Hotel reviews)

The Google Places API charges ~$17 per 1,000 reviews and caps at 5 per place. This gets them all for $0.

Scraped 4,370 reviews from a single hotel in under 10 minutes.

Dashboard preview


Why this exists

If you want Google Maps reviews at scale, your options are:

  • Google Places API — capped at 5 reviews per place, costs money beyond the free tier
  • Third-party APIs (SerpApi, Outscraper, etc.) — pay per request, no control over your data
  • Existing scrapers — most scroll the DOM and silently break after ~900 reviews because the scroll container hits a physical maximum height

This tool takes a different approach: it intercepts the same internal API that Google Maps itself uses, then paginates through all pages with cursor-based requests. No scroll limit. No DOM parsing. No vendor lock-in. Works as long as you have a Google account.

How it's different

Most scrapers break after ~900 reviews because they rely on scrolling, which hits a physical DOM limit. This one intercepts the real batchexecute API that Google Maps uses internally and paginates via cursor — the same way the app does it. No scroll limit. No review cap.

This tool Other scrapers Google Places API
Review limit ✅ None ❌ ~900 ❌ 5 per place
Cost ✅ Free ✅ Free ❌ ~$17/1k reviews
API key required ✅ No ✅ No ❌ Yes
Breaks on UI changes ✅ No (API) ❌ Yes (DOM) ✅ No
Local Guide info ✅ Yes ❌ No ❌ No
Estimated dates ✅ Yes ❌ No ❌ No
Sort order control ✅ Yes ❌ No ❌ No
Multi-place from file ✅ Yes ❌ No ❌ No
HTML dashboard ✅ Yes ❌ No ❌ No

Requirements

  • Python ≥ 3.11
  • Google Chrome installed (Linux, macOS, or Windows)
  • A Google account logged in on Chrome (for session auth)

Install

pip install uv
uv pip install -e .
playwright install chromium

Usage

Scrape a single place

# Scrape all reviews — saves to SQLite
gmaps-reviews scrape "https://www.google.com/maps/place/..."

# Scrape newest reviews first
gmaps-reviews scrape "https://..." --sort newest

# Scrape + export CSV + dashboard in one shot
gmaps-reviews scrape "https://..." --csv reviews.csv --dashboard dashboard.html

# Auto-organize output into a directory
gmaps-reviews scrape "https://..." --output-dir ./data
# → ./data/taal-vista-hotel/reviews.csv
# → ./data/taal-vista-hotel/dashboard.html

# Limit to first 500 reviews
gmaps-reviews scrape "https://..." --limit 500

# Use a different database
gmaps-reviews scrape "https://..." --db hotels.db

Scrape multiple places from a file

# places.txt — one URL per line, # to comment
gmaps-reviews scrape-file places.txt

# With output directory (one subfolder per place)
gmaps-reviews scrape-file places.txt --output-dir ./data --db all_places.db

places.txt format:

# Philippines hotels
https://www.google.com/maps/place/Taal+Vista+Hotel/...
https://www.google.com/maps/place/Shangri-La+Boracay/...

# Madrid restaurants
https://www.google.com/maps/place/DiverXO/...

Export from existing database

# Export CSV + dashboard without scraping again
gmaps-reviews export --db hotels.db --csv all.csv --dashboard all.html

# Filter to one place
gmaps-reviews export --db hotels.db --place 0x....:0x.... --csv taal.csv

Sort options

--sort value Description
relevant (default) Google's default ranking
newest Most recent reviews first
highest Highest rated first
lowest Lowest rated (most critical) first

Chrome path

If Chrome is not auto-detected, set the path via environment variable:

CHROME_PATH="/usr/bin/google-chrome-stable" gmaps-reviews scrape "https://..."

Auto-detected locations by platform:

  • Linux: /usr/bin/google-chrome-stable, /usr/bin/google-chrome, /usr/bin/chromium-browser
  • macOS: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
  • Windows: C:\Program Files\Google\Chrome\Application\chrome.exe

Output fields

Field Description
review_id Stable Google review ID
author Reviewer name
local_guide True / False
review_count Reviewer's total reviews on Google
rating 1–5 stars
date_relative "a year ago", "3 months ago"…
date_estimated YYYY-MM estimated from relative date
has_photos True / False
review_text Full review text (original language)
owner_reply Owner response, if any

How it works

  1. Opens your real Chrome profile — inherits your Google session
  2. Navigates to the Maps URL and clicks the Reviews tab
  3. Optionally clicks the sort button to set the desired order
  4. Scrolls once to trigger the first batchexecute request — captures the URL, headers, and session token (x-maps-bgkey)
  5. Loops via in-page XHR with cursor substitution — no scrolling, no DOM parsing, no limits
  6. Stores raw batches + parsed reviews in SQLite; resumes automatically if interrupted
  7. Exports CSV and HTML dashboard on demand

License

MIT

Metadata

Release files for google-maps-reviews-scraper 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for google-maps-reviews-scraper 0.3.0
File Size Uploaded Provenance
google_maps_reviews_scraper-0.3.0.tar.gz 1.3 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for google-maps-reviews-scraper 0.3.0
File Interpreter ABI Platform
google_maps_reviews_scraper-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.3 MB

Release files / google_maps_reviews_scraper-0.3.0.tar.gz

Download URL google_maps_reviews_scraper-0.3.0.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
8b492260c21752944c5bc40b6142ab905a65679637178ffd2a7d2749355581f2
BLAKE2b-256 checksum
How to use checksums
4092a413ede0a6103cdc2dabe49438eae0d1d5f667f0fc730896d0857d9dfb3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Release files / google_maps_reviews_scraper-0.3.0-py3-none-any.whl

Download URL google_maps_reviews_scraper-0.3.0-py3-none-any.whl
Size 31.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5aaaf9ecd19c16be6c2a8197c554abd0e6f0728256608b11865db86f6f1cec59
BLAKE2b-256 checksum
How to use checksums
83257ef66061c6a44d47aa5c9c5b9b42b46718fbdbacaf45d751e2aa6ad44214
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Security for google-maps-reviews-scraper 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for google_maps_reviews_scraper-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files Full provenance

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