Google Play Reviews Scraper: Ratings, Text & Replies avatar

Google Play Reviews Scraper: Ratings, Text & Replies

Pricing

from $0.05 / 1,000 reviews

Go to Apify Store
Google Play Reviews Scraper: Ratings, Text & Replies

Google Play Reviews Scraper: Ratings, Text & Replies

Scrape Google Play reviews of any Android app: stars, review text, date, app version, thumbs-up count and developer reply, in 20 countries. Paste a package name or Play Store link. No reviewer names. Only-new-reviews mode for daily alerts. Pay per review plus small fetch and start fees.

Pricing

from $0.05 / 1,000 reviews

Rating

0.0

(0)

Developer

PlainRows

PlainRows

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Google Play Reviews Scraper: Ratings, Text & Developer Replies

Export Google Play reviews of any Android app as clean rows: stars, review text, date, app version, thumbs-up count and the developer's reply, plus the app's average rating and number of ratings on every row. Paste package names (com.spotify.music) or Play Store links, in any of 20 countries, up to 5,000 reviews per app.

It calls a commercial app data API instead of driving a browser: no proxies, no CAPTCHAs, no Google account, results in under a minute. Reviewer names and profile pictures are not collected: you get the opinion, not the person.

The same list also accepts App Store apps (ID or link), so you can mix both stores in one run if you need to.

Typical uses

  • Product feedback and bug triage: read what Android users say about the latest version, newest first, with the app version each review was written for.
  • Competitor research: compare your app's ratings and complaints with competitors' on Google Play.
  • Review monitoring: turn on Only new reviews, schedule a daily run and alert your team in Slack or a spreadsheet: you never get (or pay for) the same review twice.
  • Sentiment analysis and AI summaries: feed clean review text to an LLM, a BI tool or an AI agent (MCP).
  • Customer support follow-up: see which reviews already have a developer reply, and when it was posted.

What you get

One row per review:

FieldDescription
store, appIdgoogle_play and the package name
appTitle, appRating, appRatingCountApp name, its average rating out of 5 and number of ratings in this country
position, reviewIdPosition in the order you chose; Google Play's review ID (stable: use it to keep only new reviews)
rating, textStars (1-5) and review text (Google Play reviews have no title: title is always null)
reviewedAt, appVersionReview date (UTC) and the app version it was written for, when shown
helpfulCountPeople who found the review helpful, when shown
developerReply, developerReplyAtThe developer's public reply and its date, when there is one
appUrlThe app page on Google Play for this country
searchCountry, languageCode, observedAtStore country, language and when the data was fetched (UTC)

Missing values are always null, never guessed.

Input

{
"apps": ["com.spotify.music", "https://play.google.com/store/apps/details?id=com.duolingo"],
"country": "US",
"maxReviewsPerApp": 100,
"sortBy": "newest"
}
  • apps: one per line, up to 500. The package name (com.spotify.music, the id= part of the Play Store link) or the link itself.
  • country: US, GB, CA, AU, IE, IN, DE, AT, CH, FR, BE, ES, MX, IT, NL, PT, BR, PL, SE, JP. languageCode (optional) defaults to the country's main language: Google Play filters reviews by country and language.
  • maxReviewsPerApp: 1 to 5,000.
  • sortBy: newest (default) or most_relevant (Google Play's relevance order).
  • onlyNewReviews (optional, monitoring): return only reviews never delivered to you before for the same app, country and language. See below.
  • monitorName (optional): name of the key-value store in your account that remembers delivered reviews (default plainrows-app-reviews-monitor).

Monitor apps: get only new reviews

Turn on Only new reviews ("onlyNewReviews": true), keep sortBy: "newest" and add an Apify schedule (daily, for example). The first run returns the reviews it finds and remembers their IDs in a key-value store of your own Apify account; each later run returns and bills only reviews it has never delivered. An app with nothing new gets a free row with notFoundReason: "no-new-reviews". The blocks requested are still charged on every check (the data source bills them either way): with maxReviewsPerApp up to 150, one app costs 1 block per check.

  • Each run reads one page of the newest reviews: maxReviewsPerApp, rounded up to whole blocks of 150. Set maxReviewsPerApp above the number of new reviews you expect between two runs: if more new reviews arrive than that page holds, the older new ones are not read again and are missed. When a check finds a full page of reviews and none of them was delivered before, the run warns you (more than … new reviews since the last run, also counted in appsPossiblyMissingReviews in the run summary): raise maxReviewsPerApp or run the check more often. When a check reads new reviews that your limit leaves out (for example the 50 reviews beyond the default limit of 100 in a page of 150), the run warns too (… new reviews beyond your limit were not delivered this run, counted in reviewsBeyondLimitNotDelivered in the run summary): they come with a later run only if still among the reviews it reads.
  • Use a different monitorName per monitoring task to keep separate histories, or a new name to start over.

Output example

Real row from a run on 2026-10-08 (Google Play, US, com.spotify.music):

{
"store": "google_play",
"appId": "com.spotify.music",
"found": true,
"appTitle": "Spotify: Music and Podcasts",
"appRating": 4.3,
"appRatingCount": 36445758,
"position": 10,
"reviewId": "283927bb-7a0b-4976-8910-ca5872621cf2",
"rating": 3,
"title": null,
"text": "not sure why the podcasts queue will only play newest to oldest, even after I change the filter before selecting play. really annoying how that changed",
"reviewedAt": "2026-10-06T21:44:38.000Z",
"appVersion": "9.1.86.2432",
"helpfulCount": 2,
"developerReply": "Hi. Have you tried a quick reinstall? If that doesn't help, we'd recommend reaching out to our Customer Service at support.spotify.com. Just search “Contact Us”, and they'll be happy to help.",
"developerReplyAt": "2024-11-25T16:02:18.000Z",
"appUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&gl=us",
"searchCountry": "US",
"languageCode": "en",
"observedAt": "2026-10-08T00:45:00.000Z",
"schemaVersion": "1.0"
}

Pricing

Pay per result, no subscription, no proxy costs. See the Pricing tab for current prices. Three events, nothing else:

  • Review: one per review returned, cheaper on higher Apify plans. Developer replies, versions and the app's rating are included.
  • Block of reviews requested: Google Play data is fetched in blocks of up to 150 reviews per app and country, and the data source bills us every block requested. So up to 150 reviews = 1 block, 500 reviews = 4 blocks. A block is charged once the store has answered, even if the app has fewer reviews than you asked for, or none. Tip: set maxReviewsPerApp to what you need (with Only new reviews, keep it above the number of new reviews expected between two runs).
  • Actor start: a small fixed fee per run, charged by Apify when the run starts.

Example, 100 reviews of one app at free Apify plan prices, run start included: about $0.013.

Duplicates and input mistakes cost nothing beyond the start fee, and requests the store does not answer are not charged. A review that comes back without its text or date field at all (the data source changed its format) is neither delivered nor charged, and neither are the blocks of an app where no review was readable. The run never spends more than the maximum cost you set.

Free Apify plan: each run returns up to 50 reviews for up to 2 apps, so you can check the output. A paid Apify plan removes these limits.

Use it from code, automations or AI agents

API (one call, results returned directly):

curl -X POST "https://api.apify.com/v2/acts/plainrows~google-play-reviews-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"apps": ["com.spotify.music"], "country": "US", "maxReviewsPerApp": 50}'

n8n, Make, Zapier: use the Apify integration, pick plainrows/google-play-reviews-scraper, schedule it daily and post new reviewIds with 1 or 2 stars to Slack.

AI agents (MCP): add https://mcp.apify.com?tools=plainrows/google-play-reviews-scraper to Claude, Cursor or any MCP client. The agent gets a typed tool and pays per result.

What this is not

  • No reviewer names, profile pictures or user IDs.
  • Not every review ever written: Google Play exposes a limited, recent window (up to 5,000 per app here).
  • Ratings without text are not reviews and are not returned; appRatingCount counts them.
  • Not affiliated with Google.

Run summary

Each run stores a summary in the key-value store (OUTPUT): apps submitted, apps run, blocks of reviews charged, how many returned nothing, reviews billed, requests the store did not answer, monitored apps that probably got more new reviews than one check reads (appsPossiblyMissingReviews), new reviews read but left out by maxReviewsPerApp (reviewsBeyondLimitNotDelivered), duplicates and invalid values, reviews dropped because the data source changed its format (reviewsWithChangedFormat), and anything skipped because of the free-plan or budget limit.

FAQ

How do I export Google Play reviews of an app? Paste the package name (com.spotify.music) or the Play Store link and run: one row per review with stars, text, date, version and developer reply.

How many reviews per app? Up to 5,000 per app, country and language.

Can I get reviews from another country or language? Yes: pick one of 20 countries and, optionally, a two-letter language code (en, de, fr…).

Does it include reviewer names? No: reviewer names, pictures and user IDs are not collected.

How do I get only new reviews every day? Turn on Only new reviews, keep sortBy: "newest", schedule the run daily and set maxReviewsPerApp above the number of new reviews the app gets per day (see Monitor apps above).

Can I add App Store apps too? Yes, the same list accepts App Store IDs and links; for both stores in one tool see App Store & Google Play Reviews Scraper.

More PlainRows tools

Same pay-per-result pricing, same clean JSON, built to chain together in n8n, Make, Zapier or AI agents.

Support

Missing a field, a country or found a bug? Open an issue on this page. Issues are read and answered.