Google Play Store Reviews Scraper avatar

Google Play Store Reviews Scraper

Pricing

from $0.09 / 1,000 reviews

Go to Apify Store
Google Play Store Reviews Scraper

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

Stable

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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 reviewreviewId, score (1–5), text, reviewedAt (UTC, to the second), thumbsUp, appVersion, criteria (aspect ratings, when the app asks for them), reviewUrl
Who wrote itauthorName, authorId
The developer's answerreplyText, repliedAt, replyFrom — empty when there is none
The appappId, appTitle, developer, category, appRating, appRatingCount, installs, appUrl
Where it came fromstore, 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 language so 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.
  • installs is 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 appVersion to see whether the update caused the complaints.
  • Compare five competing apps: reviews with appRating, installs and developer on every row, ready for a pivot table.
  • Measure a developer's support: repliedAt − reviewedAt is the response time, and the share of rows with replyText is the response rate.
  • Feed a sentiment or topic model with clean text and a star label per row.
  • Schedule a daily run with reviewedAfter and 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.