Google Play Reviews Scraper
Pricing
Pay per event
Google Play Reviews Scraper
Scrape Google Play app reviews in bulk: many apps per run, any country & language, star and date filters, developer replies, app version and thumbs-up counts, plus optional app rating histogram & installs. Fast, no login, $0.09 per 1,000 reviews.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Markus Essl
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Get thousands of Google Play app reviews in seconds. Scrape many apps in one run, choose the country and language, filter by star rating and date, and get developer replies, app versions and helpful-vote counts.
Paste package IDs or Play Store links and get clean, flat JSON, CSV or Excel. You don't need a login, a Google account or a proxy.
What can you use it for?
- App review monitoring. Track new 1★ and 2★ reviews after each release with
reviewsNewerThan: "7 days"on a schedule. - Competitor research. Pull reviews for your app and 5 competitors in one run and compare complaints and feature requests.
- Release QA. Group reviews by
appVersionto see whether a release caused a wave of crashes or complaints. - Customer support analytics. Measure developer reply rate and reply time (
hasDeveloperReply,developerRepliedAt). - Sentiment analysis and LLM pipelines. Feed reviews to an LLM for topic clustering, summaries or sentiment. AI agents can call the Actor through the Apify MCP server and get structured reviews back.
- Market research datasets. Collect localized reviews (e.g.
country: "de",language: "de") for many apps.
What data can you get?
Each review is one record:
| Field | Description |
|---|---|
appId, appTitle | Package ID and app name |
reviewId, reviewUrl | Unique review ID and a link to the review |
userName | Reviewer's public display name |
rating | Stars, from 1 to 5 |
text | Review text |
reviewedAt | Review date (ISO 8601, UTC) |
thumbsUpCount | How many users marked the review as helpful |
appVersion | App version the review was written for |
hasDeveloperReply, developerReplyAuthor, developerReplyText, developerRepliedAt | The developer's public reply, if there is one |
country, language, sort, appUrl, scrapedAt | Context of the scrape |
If you turn on Include app details record, you also get one recordType: "app" record per app with the title, developer, genre, average rating, ratings count, review count, star histogram (1–5), installs, price, content rating, current version and last update date. App records are free.
How to use it
- Add one or more apps: package IDs like
com.spotify.music, or Play URLs likehttps://play.google.com/store/apps/details?id=com.duolingo. - Optionally set the country, language, sort, star filter, date cutoff and limits.
- Click Start and download the results as JSON, CSV, Excel or HTML, or read them through the API.
Input example
{"apps": ["com.spotify.music", "https://play.google.com/store/apps/details?id=com.duolingo"],"maxReviewsPerApp": 2000,"maxItems": 10000,"sort": "newest","stars": ["1", "2"],"reviewsNewerThan": "30 days","country": "us","language": "en","includeAppDetails": true}
- sort:
newest(default),most_relevantorrating(highest first). - stars: any combination of
"1"to"5". Leave it empty to get all ratings. - reviewsNewerThan: a date (
2026-01-31) or a relative value (7 days,2 weeks,6 months). Withnewest, the scraper stops as soon as it reaches older reviews, so you only pay for what you need. - maxReviewsPerApp / maxItems: the per-app limit and the total limit for the run.
Output example
This is a real record from a test run:
{"recordType": "review","appId": "com.spotify.music","appTitle": "Spotify: Music and Podcasts","reviewId": "a9d7c1d4-5dce-48a7-8ba4-ac87cc97702c","userName": "Wisdom Eshiet","rating": 4,"text": "i love Spotify but please increase the daily search from 3 to 5 or more","reviewedAt": "2026-10-08T13:43:12Z","thumbsUpCount": 0,"appVersion": "9.1.84.2231","hasDeveloperReply": true,"developerReplyAuthor": "Spotify AB","developerReplyText": "Hi. We appreciate your feedback. If you'd like to play music on demand, we'd recommend checking out our Premium plans at spotify.com/premium. If you've never had Premium before, you should be eligible for our trial.","developerRepliedAt": "2026-10-08T23:47:45Z","reviewUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=a9d7c1d4-5dce-48a7-8ba4-ac87cc97702c","appUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&hl=en&gl=us","country": "us","language": "en","sort": "newest","scrapedAt": "2026-10-09T13:48:34.582622Z"}
App details record (with includeAppDetails: true):
{"recordType": "app","appId": "com.duolingo","appTitle": "Duolingo: Learn Languages","developer": "Duolingo","genre": "Education","rating": 4.735219,"ratingsCount": 50368482,"reviewsCount": 962871,"histogram": { "1": 1020609, "2": 370446, "3": 1158155, "4": 5826449, "5": 41992773 },"installs": "500,000,000+","minInstalls": 500000000,"realInstalls": 981438421,"price": 0.0,"currency": "USD","free": true,"containsAds": true,"contentRating": "Everyone","released": "May 29, 2013","lastUpdatedAt": "2026-10-06T18:53:36Z","version": "Varies with device","summary": "Make language learning fun with Spanish, French, English, chess, math & music.","appUrl": "https://play.google.com/store/apps/details?id=com.duolingo&hl=en&gl=us","country": "us","language": "en","scrapedAt": "2026-10-09T13:48:34.447933Z"}
The run also saves a RUN_SUMMARY record in the key-value store. It lists the review count and any error for each app, such as an invalid ID or an app that doesn't exist.
Pricing
$0.09 per 1,000 reviews. You pay only for reviews that are saved, and app details records are free. Use maxItems or the run's maximum cost setting to cap your spend. The scraper stops cleanly when it reaches either limit.
Performance
In tests, 4,321 Spotify reviews took about 15 seconds. Each request returns up to 200 reviews, and the scraper follows Google's pagination tokens until it reaches your limit, the date cutoff or the last review.
FAQ
Is it legal to scrape Google Play reviews? The Actor collects only publicly visible data that anyone can see on play.google.com without logging in: review text, star rating, date, the reviewer's public display name and the developer's reply. It doesn't collect emails, phone numbers or private data. Your use of the data must still comply with the laws that apply to you (e.g. GDPR) and Google's terms. If you're unsure, ask a lawyer.
How many reviews can I get per app?
As many as Google Play shows. Pagination works to the end of the list; one test downloaded every review of an app back to 2019. Google Play lists only reviews that contain text, so star-only ratings are not included. The histogram in the app record covers all ratings.
Why are the reviews in a different language than I expected?
Google Play mostly returns reviews written in the selected language for the selected country storefront. Change both to get localized reviews.
Can I filter by date with "Most relevant" sorting?
Yes, but it's slower. Relevance order isn't chronological, so the scraper has to scan many reviews and stops after scanning 2,000 reviews or 20× your per-app limit, whichever is larger. Use newest for fast and complete date filtering.
What happens with an invalid or removed app?
The scraper logs it, records it in RUN_SUMMARY and continues with the other apps. One bad ID never breaks the run.
Do I need a proxy? Usually not. The Actor uses Google Play's public web endpoints and retries automatically with backoff on rate limits and server errors. If you scrape very large volumes and see repeated 429 errors, turn on Apify Proxy in the input.
Limitations
- Only reviews that contain text are available. This is a Google Play limitation.
- The star filter with several values fetches each rating in turn, and the ratings share the per-app limit.
appVersionis empty for some reviews when Google doesn't show it, for example older reviews.- The Actor uses Google Play's internal web API, the same one the Play website uses. If Google changes it, the Actor needs an update.