Built by krainium
A terminal tool written in Go that pulls Google Play Store reviews for any app across 76 countries in one run. Paste the Play Store URL, pick your settings, walk away. Every review gets written to disk the moment it arrives — the tool never waits until the end to save.
- 🌐 Scrapes reviews from 76 countries in a single session
- ⚡ Runs countries in parallel — up to 76 at once
- 💾 Auto-saves to disk per page as reviews come in — nothing is lost on early exit
- 🗂️ Creates a clean folder structure with per-country files plus a combined output
- 🔄 Deduplicates the combined results — reviews that appear in multiple countries are counted once
- 🛑 Graceful
Ctrl+C— stops cleanly, flushes everything collected so far to disk - 📊 Live progress bar with ETA, country count, review count, elapsed time
- 🔍 Filter by star rating, device type, sort order, response language
- 📋 Saves each review in TXT, CSV, JSON — all three formats per country
./maingo run main.go
The tool walks you through a short menu — nothing to memorize.
Step 1 — Paste the Play Store URL:
Play Store URL: https://play.google.com/store/apps/details?id=com.whatsapp
Step 2 — Pick your settings:
| Prompt | Options | Default |
|---|---|---|
| Sort order | Most Relevant · Newest First · Highest Rating | Newest First |
| Star filter | All · 1★ · 2★ · 3★ · 4★ · 5★ | All |
| Device type | All · Phone · Tablet · Chromebook | All |
| Reviews per country | Any number · 0 = fetch all available | 50 |
| Language | Any BCP-47 code (en, fr, de, …) |
en |
| Workers | 1–76 · 1 = sequential, 76 = all countries at once | 5 |
Hit Enter on any prompt to accept the default.
Every run creates a timestamped folder so runs never overwrite each other.
WhatsApp Messenger_20250423_141502/
├── US - United States/
│ ├── reviews.txt
│ ├── reviews.csv
│ └── reviews.json
├── GB - United Kingdom/
│ ├── reviews.txt
│ ├── reviews.csv
│ └── reviews.json
├── IN - India/
│ └── ...
├── (one folder per country — 76 total)
└── all_results/ ← everything merged, duplicates removed
├── reviews.txt
├── reviews.csv
└── reviews.json
The all_results/ folder is written after all countries finish. Duplicate reviews — the same review ID appearing in more than one country's response — are removed. The terminal reports how many were deduplicated.
reviews.txt — human-readable, one review block per entry:
── Review #1 ──────────────────────────────────────────
User : Jane Smith
Rating : ★★★★★ (5/5)
Date : 2025-04-10
App Version : 2.24.7
Thumbs Up : 312
Country : United States (US)
Review ID : gp:AOqpTOH...
URL : https://play.google.com/...
Comment:
Best messaging app I've used. Fast, reliable, no ads.
Developer Reply (2025-04-11):
Thank you for the kind words!
reviews.csv — UTF-8 BOM, opens cleanly in Excel:
| # | Review ID | User Name | Score | Date | App Version | Thumbs Up | Review Content | Developer Reply | Reply Date | Country | Review URL |
|---|
reviews.json — structured, ready for any downstream processing:
{
"country": "United States (US)",
"total_scraped": 148,
"reviews": [
{
"review_id": "gp:AOqpTOH...",
"user_name": "Jane Smith",
"score": 5,
"content": "Best messaging app...",
"date": "2025-04-10",
"app_version": "2.24.7",
"thumbs_up": 312,
"review_url": "https://play.google.com/..."
}
]
}76 countries across all regions:
Americas — US, CA, BR, MX, AR, CL, CO, PE
Europe — GB, DE, FR, IT, ES, NL, PL, SE, NO, DK, FI, PT, BE, CH, AT, CZ, HU, RO, GR, UA, SK, BG, HR, RS, LV, LT, EE
Asia-Pacific — AU, NZ, JP, KR, IN, TW, HK, SG, TH, ID, PH, MY, VN, PK, BD, LK, NP, MM, KH
Middle East / Africa — TR, SA, AE, IL, EG, ZA, NG, GH, KE, DZ, MA, TN, CM, TZ, UG, ET
Central Asia / Caucasus — IR, KZ, UZ, AZ, GE, RU
Requires Go 1.21+. Zero external dependencies — pure standard library.
git clone https://github.com/krainium/Google-Play-Ratings-Scraper
cd Google-Play-Ratings-Scraper
go build -o main main.go
./mainor run directly
go run main.go
Static binary for distribution:
CGO_ENABLED=0 go build -o mainCross-compile for Linux from Mac/Windows:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o Google-Play-Ratings-Scraper-linux.
├── main.go # Entire tool — single file, no dependencies
└── go.mod # Module file
- Hits the
/_/PlayStoreUi/data/batchexecuteendpoint directly — same as the Play Store web client - Paginates automatically using the continuation token from each response
- 300ms delay between pages per country to stay friendly to the API
- Each country writes to its own files — parallel workers never block each other
Ctrl+Ctriggers a context cancellation; in-flight countries flush their current page before stopping- The
all_results/merge iterates countries in the original defined order, not alphabetically