Google Play Reviews Scraper: Android App Reviews
Pricing
from $0.10 / 1,000 reviews
Google Play Reviews Scraper: Android App Reviews
Returns Google Play reviews as clean JSON: star rating, review text, app version, thumbs-up count, date and developer reply, for any Android app, country and language. Paste package names or Play Store URLs, compare several apps in one run, or search apps by keyword. Pay per review, no start fee.
Pricing
from $0.10 / 1,000 reviews
Rating
0.0
(0)
Developer
Omar Nagy
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Security
Limited permissionsShare
This Google Play reviews scraper pulls reviews for any Android app and returns clean JSON: star rating, review text, app version, thumbs-up count, date and the developer's reply. Paste package names or Play Store URLs, pick a country and language, compare several apps in one run, or search the Play Store to find an app's package name. You pay per review, from $0.15 per 1,000, with no start fee.
What the Google Play reviews scraper returns
- Reviews: one row per review with
rating,text,author,date,version,thumbsUp,replyText,replyDate,reviewIdand a permalinkurl. - App search: one row per app with
name,developer, storerating,price,currency,free,icon, the storeurland the package nameappId. - A run summary in the key-value store as
OUTPUT: requested, fetched, delivered and charged counts for every app, plus any per-app error.
Every field is flat and predictable, so the output goes straight into an LLM, a sentiment model, a spreadsheet or a database without a cleanup step. There are no dead columns: Google Play no longer serves review titles, so there is no title field that would always be empty.
Who it is for
- App product teams reading what users say after each release, by app version.
- App marketers and ASO teams tracking ratings and complaints for their app and its competitors.
- Data and AI teams feeding real user feedback into an LLM, a sentiment model or a RAG pipeline.
- Support leads studying how a developer answers complaints, at scale, from
replyText. - AI agents that need a tool for "what are users complaining about in this app".
How to scrape Google Play reviews
- Put one or more package names (
com.whatsapp) or Play Store links in Apps. - Choose the country, the language and the sort order.
- Set Max items, the total number of reviews for the run, and start it.
- Download the results as JSON, CSV or Excel, or read them through the Apify API.
Reviews for two apps, newest first. Max items is split evenly, so this returns 50 reviews of each:
{"mode": "reviews","appIds": ["com.whatsapp", "com.spotify.music"],"sort": "newest","country": "us","lang": "en","maxItems": 100}
A Play Store URL works the same as a package name:
{"mode": "reviews","appIds": ["https://play.google.com/store/apps/details?id=com.adobe.scan.android"],"maxItems": 200}
Find apps and their package names:
{"mode": "search","query": "budget tracker","country": "us"}
| Field | Default | What it does |
|---|---|---|
mode | reviews | reviews fetches reviews for the apps listed. search finds apps by keyword. |
appIds | Package names or Play Store app URLs. Required in reviews mode. Duplicates are fetched once. | |
query | App name or keyword. Required in search mode. | |
sort | newest | newest, rating or helpfulness (Google's own relevance ranking). |
country | us | Two-letter Play Store country code. UK is read as gb. |
lang | en | Review language, for example en, de, pt-BR or zh-TW. |
maxItems | 100 | Total results for the run, 1 to 5,000, split evenly across apps. |
maxItemsPerApp | Optional. Every app gets exactly this many reviews instead of a share of maxItems. |
A run with a bad input (no apps, an unknown country code, a spelled-out language such as "English") fails before anything is fetched, so it costs nothing.
Output example
Real rows from runs on 8 October 2026. A review with the developer's reply:
{"type": "review","appId": "com.adobe.scan.android","country": "us","lang": "en","reviewId": "5d7e40b8-e8ba-4686-9c7c-e98ff7c70465","author": "Damien & Martin","rating": 1,"text": "4 pages max unless you subscribe","version": "26.09.25","thumbsUp": 0,"date": "2026-10-07T17:39:02.121Z","replyText": "Hi Damien! Sorry for the confusion😢. Adobe Scan doesn’t require a subscription to scan more than 4 pages. However, the OCR (text recognition) limit is 4 pages...","replyDate": "2026-10-08T12:56:38.606Z","url": "https://play.google.com/store/apps/details?id=com.adobe.scan.android&reviewId=5d7e40b8-e8ba-4686-9c7c-e98ff7c70465"}
The reply is shortened here; the dataset holds it in full. A review with no reply has replyText and replyDate set to null.
An app from search mode:
{"type": "app","appId": "com.droid4you.application.wallet","name": "Wallet: Budget Expense Tracker","developer": "BudgetBakers","rating": 4.6197977,"price": 0,"currency": "USD","free": true,"url": "https://play.google.com/store/apps/details?id=com.droid4you.application.wallet","icon": "https://play-lh.googleusercontent.com/dQlNIZVt_gF7PxshIiF4ZprRaZ3RL7ZsoUfF4jFyHvbweAoB-dqxXNOXmm2W6_xRVbUZgHpL18GV2AQYE6W2DA"}
The run summary (OUTPUT) for the two-app input above:
{"mode": "reviews","maxItems": 100,"totalFetched": 100,"totalDelivered": 100,"totalCharged": 100,"stoppedAtMaxCost": false,"perApp": [{ "appId": "com.whatsapp", "requested": 50, "fetched": 50, "delivered": 50, "charged": 50, "error": null, "note": null },{ "appId": "com.spotify.music", "requested": 50, "fetched": 50, "delivered": 50, "charged": 50, "error": null, "note": null }]}
Pricing
Pay per event. Compute, storage and requests are included in the event price.
| Event | Price |
|---|---|
review: one review delivered to your dataset | from $0.15 per 1,000 reviews ($0.00015 each), lower on Bronze, Silver and Gold plans |
app: one app returned by a search | from $0.50 per 1,000 apps ($0.0005 each), lower on Bronze, Silver and Gold plans |
- No start fee, and a run that returns nothing costs nothing.
- 100 reviews cost $0.015 on the Free plan. 5,000 reviews cost $0.75.
- If you set a maximum cost for the run, the run stops when it is reached, delivers only what was charged and says so in the status message and in
OUTPUT(stoppedAtMaxCost: true).
Use it from Claude, Cursor or any MCP client
Load this Actor as a tool through Apify's MCP server:
https://mcp.apify.com?tools=omargnagy/google-play-reviews-scraper
Add it to your client's MCP config:
{"mcpServers": {"google-play-reviews": {"url": "https://mcp.apify.com?tools=omargnagy/google-play-reviews-scraper"}}}
Your client signs in to Apify on first use, or you can send your Apify API token as an Authorization: Bearer header. Then ask in plain language, for example: "Get the 300 newest Google Play reviews for com.spotify.music and list the top five complaints by app version."
Monitor Google Play reviews on a schedule
- Save your input as a task, with
sort: "newest"and amaxItemsthat covers a day of reviews. - Add an Apify schedule, for example daily.
- De-duplicate across runs on
reviewId, which is stable. - Send each new dataset to Slack, Google Drive, Make, Zapier or n8n with Apify integrations or webhooks.
Limits
- Search returns up to about 30 apps per query, whatever
maxItemsis set to. - One run returns up to 5,000 reviews in total, or up to 5,000 per app when you set Max items per app. Google serves a deep but finite window per country and sort order, so very old reviews may not be reachable.
- Freshness: in our runs in October 2026 the newest review returned was about a day old. This suits daily monitoring, not minute-by-minute alerts.
- App version is missing on some reviews (18 of 100 in our sample run), because reviewers on some clients do not report one.
- Developer replies appear only where the developer answers, and reply rates vary by app and over time. In a September 2026 sample, 111 of 150 Adobe Scan reviews carried a reply, while Duolingo, Uber and Shazam had none. Very recent reviews often have no reply yet.
- Reviews are public data posted on Google Play. Follow Google's terms and the privacy law that applies to you when you store and use them.
FAQ
Why did my run return 0 reviews?
The most common causes are a mistyped package name and an app that has no reviews in the chosen country and language. A package name that does not exist in that store is named in the status message and in OUTPUT, and when every app in the run fails this way the run ends as failed, at no charge. An app that exists but has no reviews in that storefront is noted per app in the same places, and you pay nothing for it.
How do I find an app's package name?
Copy the app's Play Store URL into Apps, or run mode: "search" with the app name. The appId in each result is the package name, for example com.whatsapp.
How does Max items work with several apps?
It is the budget for the whole run, split evenly: 100 across 3 apps is 34, 33 and 33. An app that runs out early does not hand its share to the next one. Set maxItemsPerApp to give every app a fixed number instead.
Can I get reviews in another language or country?
Yes. Set country and lang. Different storefronts and languages surface different reviews.
Does it need a proxy?
No. It reads Google Play's public endpoints through the maintained open-source google-play-scraper library.
Is there an Apple App Store version? Yes: Apple App Store Reviews Scraper & iOS App Search. It has the same two modes and the same pricing model. App Store reviews carry a title but no developer reply and no language field.