How to Get Google Play Reviews as Structured Data
31 Oct 2026 · benthepythondev
If you want to read what users say about an Android app, the Google Play page works for a handful of reviews. For hundreds or thousands, you need them in a file you can sort, filter and analyse.
The Google Play Reviews Scraper does that. You give it one or more app package IDs or Google Play URLs, and each review comes back as one row. You don't need a login or an API key, and it reads Google Play's review data directly instead of driving a browser.
What you get
Each row describes one review:
review_idandreview_date: the review's identifier and when it was postedrating: the star rating, from 1 to 5content: the full review textauthor_nameandauthor_image: the reviewer's display name and a link to their photothumbs_up_count: how many other users marked the review as helpfulapp_version: the app version the review was written onapp_id,app_nameandapp_url: which app the review belongs tocountry: the store the review was collected fromreply_contentandreply_date: the developer's reply and its date, when the developer has responded
Real example output
These two rows come from a real call for com.twitter.android. The author_image field is removed here to keep the excerpt short.
[
{
"review_id": "e93d25e3-c028-441e-a320-887e2f6783d3",
"app_id": "com.twitter.android",
"app_name": "X",
"author_name": "Anandamoy Mondal",
"rating": 5,
"content": "nice",
"thumbs_up_count": 0,
"review_date": "2026-10-06T07:42:16",
"app_version": "12.31.0-prod.01",
"country": "US",
"app_url": "https://play.google.com/store/apps/details?id=com.twitter.android"
},
{
"review_id": "c3a61119-2285-4eb9-ae60-2004c484b5de",
"app_id": "com.twitter.android",
"app_name": "X",
"author_name": "Angela Rigau",
"rating": 1,
"content": "I don't understand why I got kicked out. There was a pastor that needed help and I sent out his video the next thing I know they kicked me out of x. Also cash app wouldn't cash my 47 dollar check. Hopefully the bank will.",
"thumbs_up_count": 0,
"review_date": "2026-10-06T07:43:06",
"app_version": "10.16.0-release.0",
"country": "US",
"app_url": "https://play.google.com/store/apps/details?id=com.twitter.android"
}
]
Neither row has reply fields, which fits the rule above: replies only appear when a developer has responded.
What people use it for
- App store optimization: track review sentiment and pull out common complaints and feature requests for your own apps.
- Sentiment analysis: build NLP or machine learning datasets, or watch brand perception over time.
- Competitor research: compare review volume and ratings across rival apps, then read their negative reviews to find weak spots.
- Market research: look across an app category or niche and spot gaps from what users actually ask for.
How to run it on Apify
- Open the actor page on Apify.
- Add your apps in
appIdsor paste full links intoappUrls. The package ID is theid=part of the Google Play URL, sohttps://play.google.com/store/apps/details?id=com.twitter.androidgives youcom.twitter.android. - Set
countries,languageandmaxReviews. The default formaxReviewsis only 5, so raise it for a real dataset. - Optionally choose a
sortByvalue (newestormost_relevant) and afilterRating. - Run it, then view the results as a table or export them as JSON, CSV or Excel.
This input collects up to 500 of the newest 1-star English reviews for each app in each country, which is a good start for studying complaints:
{
"appIds": ["com.twitter.android", "com.instagram.android"],
"countries": ["us", "gb"],
"language": "en",
"maxReviews": 500,
"sortBy": "newest",
"filterRating": 1
}
You can also run it on a schedule, call it through the API, or connect it to Make, Zapier or n8n.
Price: $0.30 per 1,000 reviews, or $0.24 from the Gold plan up, since October 19, 2026. Apify's standard start event ($0.00005 per run) is the only other charge.
How to use it as an API on RapidAPI
If you'd rather call it as an API from your own code, it's also listed on RapidAPI. The listing has the current endpoints, parameters and plans, so check it before you build.
Honest limits
- Developer replies are not always there. You only get reply fields when a developer has answered, so expect many rows without them. Your code should handle those fields being missing.
maxReviewsapplies per app and per country. The cap is 100,000, and 0 also means 100,000. Two apps across two countries at 500 each can return up to 2,000 reviews, so the cost grows with each app and country you add.filterRatingtakes one star rating. To get both 1-star and 2-star reviews, plan on separate runs.- Short reviews carry little signal. Rows like "nice" count as reviews, so filter on text length if you're doing text analysis.
- The app version may not be the current one. The rows above, collected within minutes of each other, show both
12.31.0-prod.01and10.16.0-release.0. Group byapp_versionbefore blaming a recent release for a complaint. - Countries are limited to the supported stores. The README lists 50+ country codes, including
us,gb,de,jpandin. - Request pacing matters.
delaySecondsadds a delay between requests to avoid rate limits, and the default is 0.5. - Rows include reviewers' names and photo links. Drop
author_nameandauthor_imageif your analysis doesn't need them.
Affiliate if you still need an Apify account: apify.com/?fpr=qolupv. I may earn a commission; the price you pay does not change.