Google Play Reviews & App Details Scraper
Pricing
from $0.08 / 1,000 results
Google Play Reviews & App Details Scraper
Scrape Google Play reviews (stars, text, date, likes, developer replies, app version) and app details (rating, histogram, installs, price, developer email) by package name, URL or search term. Fast, cheap, HTTP-only.
Pricing
from $0.08 / 1,000 results
Rating
0.0
(0)
Developer
Zee Lex
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape Google Play reviews and app details for any Android app, by package name, Play Store URL or search term.
- Reviews: star rating, text, date, thumbs-up count, app version, developer reply and reply date, reviewer name and avatar, and a direct link to each review.
- App details: title, rating, ratings and reviews counts, star histogram, installs, price, genre, content rating, release and update dates, version, minimum Android version, description, icon, screenshots and developer contact details.
Fast and cheap: plain HTTP, no browser. The default memory is 512 MB.
What it does
- Takes your apps (
com.whatsapporhttps://play.google.com/store/apps/details?id=com.whatsapp) and, optionally, search terms that it turns into the top N apps. - For each app, saves one app item (unless you turn that off) and pages through reviews until it reaches your limit, your date cutoff, or the last review Google Play makes available.
- Validates every item, skips unknown apps with a warning, and writes a
RUN_SUMMARYrecord with per-app counts, errors, stop reasons and the percentage of missing values for every field.
Use cases
- App review monitoring: track new reviews of your app every day, with
reviewsSinceand a schedule - Competitor research: compare ratings, star histograms, install counts and complaints across competing apps
- Sentiment analysis: export review text with stars, dates and app versions into your NLP pipeline or an LLM
- Customer support QA: find unanswered 1-star reviews (
filterByStars: 1, emptyreplyText) - Market research: search a category ("budget planner") and pull details and reviews of the top apps
Input example
{"appIds": ["com.whatsapp","https://play.google.com/store/apps/details?id=org.telegram.messenger&hl=en"],"searchTerms": ["budget planner"],"maxAppsPerSearch": 3,"country": "us","language": "en","maxReviewsPerApp": 500,"sort": "newest","reviewsSince": "2026-10-01","includeAppDetails": true}
| Field | Default | Notes |
|---|---|---|
appIds | – | Package names or Play URLs |
searchTerms | – | Resolved to the top maxAppsPerSearch apps |
maxAppsPerSearch | 5 | |
country / language | us / en | Google Play gl / hl |
maxReviewsPerApp | 100 | 0 = all available |
sort | newest | newest, most_relevant, rating |
filterByStars | – | 1–5 |
reviewsSince | – | ISO date; with newest, paging stops at the first older review |
includeAppDetails | true | One app item per app |
maxConcurrency | 5 | |
proxyConfiguration | Apify datacenter proxy |
Output sample
Each dataset item has "type": "review" or "type": "app".
Review
{"type": "review","appId": "com.whatsapp","reviewId": "gp:AOqpTOE1aaa","userName": "Aisha Rahman","userImage": "https://play-lh.googleusercontent.com/a/...","score": 5,"text": "Works great, video calls are clear.","thumbsUpCount": 12,"appVersion": "2.26.21.73","date": "2026-10-27T00:00:00.123Z","replyText": null,"replyDate": null,"reviewUrl": "https://play.google.com/store/apps/details?id=com.whatsapp&reviewId=gp%3AAOqpTOE1aaa","country": "us","language": "en"}
App
{"type": "app","appId": "com.whatsapp","title": "WhatsApp Messenger","developer": "WhatsApp LLC","developerId": "5700313618786177705","developerEmail": "android@support.whatsapp.com","developerWebsite": "http://www.whatsapp.com/","score": 4.24,"ratingsCount": 200123456,"reviewsCount": 9871234,"histogram": { "1": 18000000, "2": 4000000, "3": 7000000, "4": 15000000, "5": 156000000 },"installs": "5,000,000,000+","minInstalls": 5000000000,"price": 0,"free": true,"currency": "USD","genre": "Communication","contentRating": "Rated for 3+","released": "Oct 18, 2010","updated": "2026-10-25T00:00:00.000Z","version": "2.26.21.73","androidVersion": "5.0","description": "WhatsApp from Meta is a FREE messaging app...","icon": "https://play-lh.googleusercontent.com/...","screenshots": ["https://play-lh.googleusercontent.com/..."],"url": "https://play.google.com/store/apps/details?id=com.whatsapp&hl=en&gl=us"}
Field notes:
date,replyDateandupdatedare ISO 8601 (UTC).releasedis the text Google Play shows, in the requested language (e.g. "Oct 18, 2010").androidVersionis the minimum version number, or"VARY"when Google Play says "Varies with device".versionisnullif Google doesn't show it (often "Varies with device" apps).priceis incurrencyunits;freeis true only when the price is exactly 0.- Missing values are
null(or[]), never guessed, soRUN_SUMMARYshows exactly what Google didn't provide.
Run summary
RUN_SUMMARY in the default key-value store (linked from the run's Output tab) contains:
perApp:status(ok/not_found/failed),reviewsSaved,pagesFetched,errors,stopReason(e.g.maxReviewsPerApp reached,reviewsSince reached,no more pages), duplicates skipped, filtered-out reviews and which reviews RPC was usedtotals: items saved, apps OK / not found / failed, invalid items dropped, retries and their reasonsmissingFieldPercentages: the % of missing values for every review and app fieldinvalidInputsandsearches(which apps each search term resolved to)
The run fails (non-zero exit) if no items were saved, with a message saying why. Unknown apps are logged as warnings, recorded as not_found, and the run continues.
Reliability
- 429, 5xx, empty or unparsable responses and Google consent redirects are retried up to 4 times. Each retry uses exponential backoff (2, 4, 8, 16 s) and a fresh session (new proxy IP and cookies) for that app.
- Each app keeps its own session and cookies while paging, which keeps continuation tokens consistent.
- Reviews are deduplicated per app by
reviewId. - Two reviews endpoints are supported. If Google rejects the current one for an app, the Actor automatically falls back to the older one and records this in
RUN_SUMMARY.
Limitations
- Google Play doesn't expose every review. For very popular apps, paging ends after a few thousand reviews per sort order and language, even with
maxReviewsPerApp: 0. Combining sorts, star filters or languages gets more. - Reviews are per country and language. The same app can show different reviews for
gl=usandgl=gb. reviewsSincecan stop paging early only withsort: newest. With other sorts it just filters.- Apps that aren't available in the chosen country show up as
not_found. - The Actor reads Google Play's internal page data and review endpoint, which Google changes without notice. All layout knowledge is in
src/mappings.ts. A rising missing-field percentage inRUN_SUMMARYis the early warning. - Reviewer names and avatars are personal data. Make sure your use complies with GDPR, PDPA and similar laws, and with Google Play's terms.
Pricing
Pay per result: $0.09 per 1,000 results (reviews or app records) on the Free plan, $0.085 on Bronze, $0.08 on Silver and $0.075 on Gold+. Platform usage is included. A run that matches no reviews only costs the tiny actor-start fee.
Tested live (Oct 2026): 100 WhatsApp reviews + app details in ~45 s; 50 one-star Grab Malaysia reviews in ~5 s.
Development
npm installnpm test # unit tests (node --test) on saved fixturesnpm run build && apify run # local run with storage/key_value_stores/default/INPUT.json
Verifying against real Google responses: where play.google.com is reachable, run npm run capture-fixtures. It saves real responses to test/fixtures/live/, and npm test then also runs test/live-fixtures.test.ts against them. The fixtures in test/fixtures/ are synthetic: they're built from google-play-scraper's field paths by make_fixtures.py.
Offline end-to-end run: npm run mock-server starts a local stand-in for Google Play that simulates a 429, a rejected reviews RPC and an unknown app. Then run PLAY_BASE_URL=http://127.0.0.1:4566 node dist/main.js.
Field paths are ported from the open-source google-play-scraper (MIT): v10.1.4 for app, search and review mappings, and v10.1.3 for the legacy UsvDTd reviews request. That package is not a runtime dependency.