Google Play Store Reviews Scraper
Pricing
from $0.09 / 1,000 reviews
Google Play Store Reviews Scraper
Export Google Play reviews for any app to CSV, Excel or JSON: stars, text, date, reviewer, app version, helpful votes and the developer's reply, plus the app's rating and installs on every row. Filter by stars and date, pick language and country. $0.09 per 1,000 reviews, empty apps free.
Pricing
from $0.09 / 1,000 reviews
Rating
0.0
(0)
Developer
Stable
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Unofficial. This Actor is not affiliated with, endorsed by or sponsored by Google. It reads only what the Google Play website shows to any visitor, does not log in and does not bypass any access control. All product names and trademarks belong to their respective owners.
One row of output
Paste package ids or Play Store links; get one flat table of reviews. This is a real row from a real run, not a mock-up:
{"store": "google-play","appId": "com.spotify.music","appTitle": "Spotify: Music and Podcasts","developer": "Spotify AB","reviewId": "3364f4ff-5163-4646-a9d1-f387649a1c28","score": 3,"text": "it's good but the constant unsuitable ads and the limited skips drive me mad","reviewedAt": "2026-09-18T18:32:00Z","authorName": "George","authorId": "106136528358480644221","thumbsUp": 1,"appVersion": "9.1.80.2221","replyText": "Hi. Thanks for sharing this. We hear you and we'll pass this along to the Ads team. If you're looking for an ad-free experience and greater flexibility, consider exploring our Premium options at spotify.com/premium.","repliedAt": "2026-09-18T18:42:36Z","replyFrom": "Spotify AB","language": "en","country": "us","reviewUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=3364f4ff-5163-4646-a9d1-f387649a1c28","appUrl": "https://play.google.com/store/apps/details?id=com.spotify.music","appRating": 4.346,"appRatingCount": 36331001,"installs": "1B+","category": "MUSIC_AND_AUDIO"}
The app's own figures ride on every row — name, developer, average rating, rating count and install band — so a sheet of reviews from fifty apps sorts and pivots by app without a second export.
What you get
26 columns per row, all flat — one CSV, no nested cells to unpick.
| The review | reviewId, score (1–5), text, reviewedAt (UTC, to the second), thumbsUp, appVersion, criteria (aspect ratings, when the app asks for them), reviewUrl |
| Who wrote it | authorName, authorId |
| The developer's answer | replyText, repliedAt, replyFrom — empty when there is none |
| The app | appId, appTitle, developer, category, appRating, appRatingCount, installs, appUrl |
| Where it came from | store, language, country, title (reserved for stores that have review titles), scrapedAt |
Export to CSV, Excel, JSON or read it from the API. No Google account, no API key, no cookies.
Three things this does that are worth knowing
1. Star filters are applied by the store, not by us. Ask for 1-star reviews and the run reads only 1-star reviews — a thousand complaints cost a thousand rows, not five thousand rows with four thousand thrown away.
2. A daily watch costs only the new reviews. With reviewedAfter set and
the default newest-first order, the run stops reading the moment it reaches your
date. Schedule it, and a quiet day for an app is a few cents.
3. Nothing is guessed, nothing empty is billed. A field Google Play did not
publish comes back empty — never "N/A". An app id the store has nothing for, a
review outside your dates, and a duplicate the store handed back twice are all
free, and the run summary says how many of each there were.
Input
{"apps": ["com.spotify.music", "https://play.google.com/store/apps/details?id=notion.id"],"maxReviewsPerApp": 500,"sort": "newest","scores": ["1", "2"],"reviewedAfter": "2026-09-01","language": "en","country": "us","includeAppDetails": true}
Apps are accepted as a package id (com.spotify.music) or any Play Store link
carrying ?id=. Up to 500 apps per run. Order is newest first, most relevant
(Google Play's own ranking) or by rating. One language per run — run again with
language: "de" for the German reviews.
Price
$0.09 per 1,000 reviews on the Store card. A typical run — 5 apps, 500 reviews each — is 2,500 rows for $0.23.
Everything on the row is included at that price: the developer's reply, the aspect ratings and the app's own figures. There is no per-run start fee and no second event, so an app with nothing to return costs $0.
Free plan: runs work in full, with no feature held back. The $5 of monthly platform credit on a free Apify plan covers roughly 50,000 reviews.
Limits, stated plainly
- One language and one country per run. Google Play serves reviews per
storefront; the actor reads the one you name. For "all languages" run once
per language you care about — the rows carry
languageso they merge cleanly. - The date filter stops early only in newest-first order. Sorted by relevance or rating, dates are not monotonic, so every page is read and the filter is applied row by row. Reviews it removes are still free.
- Reviews arrive 100 at a time with a pause between pages. A run for 10,000 reviews takes about two minutes.
installsis Google's band (10M+), not an exact number — the store does not publish one.- This reads what Google Play shows to a visitor. Reviews the reviewer deleted or the store hid are not visible and are not returned.
Typical uses
- Pull every 1- and 2-star review of your own app since the last release and
group by
appVersionto see whether the update caused the complaints. - Compare five competing apps: reviews with
appRating,installsanddeveloperon every row, ready for a pivot table. - Measure a developer's support:
repliedAt − reviewedAtis the response time, and the share of rows withreplyTextis the response rate. - Feed a sentiment or topic model with clean text and a star label per row.
- Schedule a daily run with
reviewedAfterand get only what is new.
FAQ
How much does it cost to scrape 10,000 reviews?
$0.90 at the Store card rate, plus nothing else — no start fee, no per-page charge. A run that finds fewer reviews than you asked for charges only for the rows it stored.
Can I get all reviews of an app?
Set maxReviewsPerApp to what you need, up to 50,000 in one run. Newest first
walks the store's own list as far as it goes; for a very large app that is
hundreds of thousands of reviews, and you can run again with a higher ceiling
or a date window.
Does it return the developer's reply?
Yes — replyText, repliedAt and the name it was posted under, on the same
row as the review, and empty when the developer never answered.
What are criteria?
Some apps ask reviewers to rate named aspects — stability, ads, usability — in
addition to the star rating. When a review carries them they are returned as
name=stars pairs in one cell; most reviews have none.
Why did an app come back with no rows?
Either the package id has no listing on the store, or the store has no reviews for it in the language and country you set. The run summary names the app either way, and nothing was charged for it.