Google Play App Reviews & Ratings Scraper
Pricing
from $6.15 / 1,000 results
Google Play App Reviews & Ratings Scraper
Scrape user reviews for any Android app on the Google Play Store by package name. Extract star rating, review text, helpful votes, date, app version and developer replies across 100+ country stores. Export to JSON, CSV or Excel.
Pricing
from $6.15 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
Google Play App Reviews & Ratings Scraper
Here is one real result, with every field the actor returns:
{"userImage": "https://play-lh.googleusercontent.com/a-/ALV-UjUp1ULx5a-VcWxpTlyBOrjfuQx3OR5Ey88Z5JgSxeNadMGh3rc","userName": "Marjorie Nimfa Manto Cordova","rating": 5,"text": "I love this app because I relax my mind to using","thumbsUp": 0,"reviewCreatedAt": "2026-08-13T08:14:51.000Z","appVersion": "6.92.4","replyText": null,"replyAt": null,"appId": "com.duolingo","reviewId": "a8270e8c-1079-4dba-be10-92ceac12e297","url": "https://play.google.com/store/apps/details?id=com.duolingo&hl=en&gl=US","observedAt": "2026-08-14T08:15:48.664Z","error": null,"aiSentiment": "positive","aiSentimentScore": 0.9,"aiTopics": ["relaxation", "user experience", "mindfulness"]}
The most complete Google Play reviews scraper available. It returns every field a review exposes (reviewer, star rating, full text, thumbs-up count, app version and developer reply), lets you filter by star rating and date and sort by newest, rating or helpfulness, and adds optional AI sentiment and topic tags, so you can analyze app feedback without extra parsing.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor collects reviews for each Android app you list (by package name or Google Play URL) in the store region and language you set, applies your star-rating and date filters, sorts by newest, rating or helpfulness, and writes one normalized record per review to the run's dataset. Each record carries the reviewer, rating, full text, thumbs-up count, the app version reviewed, and the developer's reply when present. Missing source values are returned as null, never invented.
Two optional AI add-ons run only on paid Apify plans and only charge when they produce output: aiSentiment classifies each review with a score, and aiTopics extracts the concrete aspects the review is about (crashes, pricing, ads, UI, support).
Quickstart
Open the actor, paste this into the input, and press Run. It returns the 5 newest Duolingo reviews with AI sentiment and topics.
{"appIds": ["com.duolingo"],"maxReviews": 5,"sort": "newest","country": "US","language": "en","withAiSentiment": true,"withAiTopics": true}
Pass several package names in appIds, or paste full Google Play URLs into appUrls. Add ratings (for example ["1","2"]) to keep only certain star levels.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
appIds | string[] | no | ["com.whatsapp","com.spotify.music"] | Android package names to scrape, for example com.duolingo. Reviews are collected for each app up to maxReviews. |
appUrls | string[] | no | (empty) | Full Google Play app URLs. The package name is extracted automatically and merged with appIds. |
maxReviews | integer | no | 10 | Maximum reviews to collect per app. |
ratings | string[] | no | (all) | Keep only reviews with these star ratings, 1 to 5. Leave empty for all. |
reviewsFromDate | string | no | (empty) | Only reviews on or after this date (YYYY-MM-DD). With Newest sort, pagination stops early once older reviews are reached. |
reviewsToDate | string | no | (empty) | Only reviews on or before this date (YYYY-MM-DD). |
sort | enum | no | newest | Order of reviews. One of newest, rating (highest first), helpfulness (most upvoted first). |
country | string | no | US | Two-letter store region code (gl). Affects which reviews are returned. |
language | string | no | en | Two-letter language code (hl) for the store region and review interface. |
withAiSentiment | boolean | no | false | Paid add-on. Classify each review positive, neutral or negative with a score. Requires a paid plan. |
withAiTopics | boolean | no | false | Paid add-on. Extract the concrete topics or aspects each review is about. Requires a paid plan. |
Output reference
One dataset item per review. Types: string, number, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
userImage | string | Reviewer avatar image URL. |
userName | string | Reviewer display name. |
rating | number | Star rating this reviewer gave, 1 to 5. |
text | string | Full review text, or null if none. |
thumbsUp | number | Number of thumbs-up (helpful) votes on the review. |
reviewCreatedAt | string | ISO 8601 timestamp when the review was posted. |
appVersion | string | App version the review was written against, or null. |
replyText | string | Developer reply text, or null if none. |
replyAt | string | ISO 8601 timestamp of the developer reply, or null. |
appId | string | Android package name of the app. |
reviewId | string | Stable unique ID of the review. |
url | string | Google Play URL of the app for this store region. |
aiSentiment | string | AI sentiment positive, neutral or negative (add-on), else absent. |
aiSentimentScore | number | AI sentiment score (add-on), else absent. |
aiTopics | string[] | AI-extracted topics or aspects (add-on), else absent. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"appIds":["com.duolingo"],"maxReviews":5,"sort":"newest","withAiSentiment":true,"withAiTopics":true}):
{"userImage": "https://play-lh.googleusercontent.com/a-/ALV-UjUp1ULx5a-VcWxpTlyBOrjfuQx3OR5Ey88Z5JgSxeNadMGh3rc","userName": "Marjorie Nimfa Manto Cordova","rating": 5,"text": "I love this app because I relax my mind to using","thumbsUp": 0,"reviewCreatedAt": "2026-08-13T08:14:51.000Z","appVersion": "6.92.4","replyText": null,"replyAt": null,"appId": "com.duolingo","reviewId": "a8270e8c-1079-4dba-be10-92ceac12e297","url": "https://play.google.com/store/apps/details?id=com.duolingo&hl=en&gl=US","aiSentiment": "positive","aiSentimentScore": 0.9,"aiTopics": ["relaxation", "user experience", "mindfulness"],"observedAt": "2026-08-14T08:15:48.664Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~google-play-reviews-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"appIds":["com.duolingo"],"maxReviews":25,"sort":"newest"}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~google-play-reviews-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"appIds":["com.whatsapp","com.spotify.music"],"maxReviews":200,"ratings":["1","2"]}'
Apify CLI:
apify call scrapers_lat/google-play-reviews-scraper \--input '{"appUrls":["https://play.google.com/store/apps/details?id=com.duolingo"],"maxReviews":50}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per review returned (
resultevent). See the pricing tab for the current per-result price. - Add-ons. The AI sentiment and AI topics add-ons are priced separately and charge only when they produce output on a review that has text.
- No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 reviews per app per run. Upgrade for higher
maxReviews.
FAQ and troubleshooting
A run returned 0 reviews. Why?
The package name or URL was wrong, or filters matched nothing in that store region. Check appIds, loosen ratings and the date range, or change country and language. Zero-result runs are not charged.
How do I collect only negative reviews?
Set ratings to ["1","2"]. Combine with sort: "newest" to track recent complaints.
Why is replyText null?
The developer has not replied to that review. Replies are included when present; missing values stay null.
Can I limit to reviews since a date?
Yes. Set reviewsFromDate (and optionally reviewsToDate). With Newest sort, pagination stops early once older reviews are reached.
Why did the AI fields not appear?
The AI add-ons require a paid Apify plan and are off by default. Enable withAiSentiment or withAiTopics on a paid plan. They charge only when output is produced.
Is this an official Google tool? No. This actor is independent and not affiliated with Google or Google Play. It reads only publicly available app reviews.
Related scrapers
- Google Play Apps Scraper: App listings and metadata from Google Play.
- App Store Reviews Scraper: Reviews from the Apple App Store.
- Google Maps Reviews Scraper: Reviews for any Google Maps place.
- Amazon Reviews Scraper: Product reviews from Amazon.
- Huawei AppGallery Scraper: App listings from Huawei AppGallery.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Google or Google Play. Accesses only publicly available app reviews.
