Google Play Reviews Scraper (Free)
Under maintenancePricing
Pay per usage
Google Play Reviews Scraper (Free)
Under maintenanceFree Google Play Store reviews scraper. App metadata + reviews (rating, body, version, thumbs-up, developer reply, dates). Sweep multiple countries x languages for the global picture. Google's web JSON endpoints; no API key, no auth.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
casper smartwater
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
Google Play Store Reviews Scraper — Free, No API Key
Pull app reviews + metadata from the Google Play Store for any Android app, across any country, in any language. No Google API key. No service account. No auth.
✨ Why this Actor
- Free — competing Play Store scrapers on Apify charge $15-30/mo. This one is $0.
- No API key — Google's official Play Console API requires a Service Account + developer access to the app. This Actor works for any public app.
- Multi-country, multi-language — most scrapers do one locale at a time. This one sweeps
countries × languagesso you get the full global picture in one run. - Includes developer replies — track how quickly devs respond to reviews and what they say.
🚀 Quick start
Scrape recent Spotify reviews across 3 countries:
{"appId": "com.spotify.music","countries": ["us", "gb", "in"],"languages": ["en"],"sort": "newest","maxReviews": 200}
Scrape Notion reviews in English + Spanish:
{"appId": "notion.id","countries": ["us", "mx", "es"],"languages": ["en", "es"],"maxReviews": 500}
Just get app metadata (no reviews):
{"appId": "com.spotify.music","countries": ["us"],"maxReviews": 0,"includeAppMeta": true}
📦 Output schema
Each run produces:
- 1 app_meta row (
_kind: "app_meta") — app-level data - N review rows (
_kind: "review") — one per review
App metadata row
| Field | Type | Notes |
|---|---|---|
id | str | Package name (input) |
name | str | App title |
developer, developer_id | str | Studio / publisher |
score, ratings | float, int | Lifetime average + total rating count |
reviews_count | int | Total reviews written |
installs, real_installs | str, int | "1B+" display + precise install count |
price, free | float, bool | |
genre, genre_id | str | Play Store category |
content_rating | str | "Everyone" / "Teen" / "Mature 17+" / "Adults Only 18+" |
released, updated | str/int | Release date + last-update timestamp |
current_version, size | str | |
icon, url | str | Logo + Play Store URL |
description | str | Full app description |
Review row
| Field | Type | Notes |
|---|---|---|
id | str | Stable Google review ID |
country, lang | str | The sweep that produced this row |
user_name, user_image | str | Reviewer |
content | str | Review body |
rating | int | 1-5 |
thumbs_up | int | Helpfulness votes |
review_created_version | str | App version at time of review |
at | iso8601 | When review was posted |
reply_content, reply_at | str, iso8601 | Developer response (if any) |
🎯 Use cases
- Competitor intelligence — track competitor app rating trends + spot feature complaints
- Product launch monitoring — sweep daily after a release, catch regressions fast
- Sentiment analysis — feed reviews into an LLM, surface top complaint themes
- Investor research — install counts + rating velocity = real revenue signal
- Localization QA — pull reviews per language, see what users in each market complain about
- Customer support backlog — pipe reviews into your support ticketing tool
- App Store SEO — see which keywords appear most often in 5-star vs 1-star reviews
- Acquisition due diligence — pull every review for an app you're acquiring; reviewer sentiment + dev-response speed reveal a lot
⚙️ Input parameters
| Parameter | Type | Default | Notes |
|---|---|---|---|
appId | str | — | Required. Android package name. e.g. com.spotify.music. Visible in the Play URL as ?id=<package> |
countries | array | ["us","gb","ca","au","in","de","fr","jp","br","mx"] | ISO 2-letter codes |
languages | array | ["en"] | ISO 639-1 codes. Each (country × language) pair = one sweep |
sort | str | newest | newest / rating / helpfulness |
maxReviews | int | 200 | Per (country × language) combo. Total = countries × languages × maxReviews |
includeAppMeta | bool | true | Prepend the app_meta row |
🛠️ How it works
This Actor uses google-play-scraper, which hits the same undocumented JSON endpoints the Play Store web client uses. No HTML parsing, no anti-bot fragility — same calls Google's own frontend makes.
⚠️ Tips & caveats
- Use multiple countries — Google personalises results per locale. Different countries reveal different reviews.
- Pagination tokens expire — fetching 10,000+ reviews from one (country × language) sometimes drops the tail. If you need the full archive, run nightly with
sort: newestand dedupe byidover time. - Some countries return fewer reviews than the Play Store shows in the UI — this is a Google-side rate limit, not a scraper bug.
- The
attimestamp is in UTC.
🔗 Related Actors
- iOS App Store Metadata — for the Apple side of the same app
- Reddit Subreddit + Search — search
r/<app-name>for organic discussion - YouTube Channel + Video Scraper — for video reviews of the same app
💬 Support
Bugs or custom request? Email caspersmartwater@gmail.com.
⭐ Star this Actor if it saves you time.