App Store & Google Play Reviews Scraper avatar

App Store & Google Play Reviews Scraper

Pricing

from $0.08 / 1,000 reviews

Go to Apify Store
App Store & Google Play Reviews Scraper

App Store & Google Play Reviews Scraper

Reviews from Apple's App Store and Google Play in one dataset with one schema: rating, title, text, date, app version, helpful votes and developer replies. Paste app IDs or store URLs, pick countries or a language, filter by stars or date.

Pricing

from $0.08 / 1,000 reviews

Rating

0.0

(0)

Developer

Andrew Van De Poel

Andrew Van De Poel

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Security

Limited permissions

Share

Get app reviews from Apple's App Store and Google Play in one run, in one table: rating, title, text, date, app version, helpful votes and the developer's reply. Paste app IDs or store URLs from either store, mixed. Pick App Store countries and a Google Play language, filter by stars or date, and download JSON, CSV or Excel. No login, no browser, no API keys. A few hundred reviews take a few seconds.

Built for product managers, app developers, ASO and market-research teams, and AI agents that need to know what users say about an app and its competitors.

What you get

One row per review, with the same columns for both stores:

FieldApp StoreGoogle Play
rating (1-5), text, date, userName, appVersion✓✓
title✓null (Play reviews have no title)
helpfulCounthelpful votesthumbs-up count
voteCount (all votes)✓null
replyText, replyDate (developer reply)null (Apple's feed doesn't include replies)✓
userImageUrl / userProfileUrlprofile linkavatar
reviewUrlnull✓
country / languagecountrylanguage

Every row also has store (appStore or googlePlay), appId, appUrl, reviewId and scrapedAt.

Options:

  • Sort: newest first, or the store's own order ("Most helpful" on the App Store, "Most relevant" on Google Play)
  • Stars: e.g. only 1- and 2-star reviews, to read complaints
  • Reviews since: only reviews from a date on. With newest-first sorting the run stops as soon as it reaches older reviews, so a daily scheduled run that collects only new reviews costs almost nothing
  • App Store countries: each country has its own reviews. Add several to get more of them
  • Google Play language: Google Play groups reviews by the language they're written in

How to use it

  1. Add apps, one per line. App Store: 284882215, id284882215 or https://apps.apple.com/us/app/facebook/id284882215. Google Play: com.spotify.music or https://play.google.com/store/apps/details?id=com.spotify.music.
  2. Set Max reviews per app, and optionally sort, countries, language, stars and a start date.
  3. Click Start. Download results from the Output tab as JSON, CSV, Excel or HTML, or fetch them through the API.

Input example

{
"apps": ["310633997", "com.whatsapp", "https://apps.apple.com/gb/app/telegram-messenger/id686449807", "org.telegram.messenger"],
"maxReviewsPerApp": 300,
"countries": ["us", "gb", "ca"],
"language": "en",
"stars": ["1", "2"],
"reviewsSince": "2026-10-01"
}

Output

Real output, one review from each store:

[
{
"store": "googlePlay",
"appId": "com.spotify.music",
"appUrl": "https://play.google.com/store/apps/details?id=com.spotify.music",
"country": null,
"language": "en",
"reviewId": "752659ef-19f9-4479-815d-15cac801ed84",
"rating": 4,
"title": null,
"text": "good songs but has adds",
"date": "2026-10-30T01:55:06.000Z",
"userName": "Dima",
"userImageUrl": "https://play-lh.googleusercontent.com/a/ACg8ocL9wnhBPHYoyUyyeRBFACE8HskXDOEhU96AnJDJDuD9WNrdeg=mo",
"userProfileUrl": null,
"appVersion": "9.1.92.3058",
"helpfulCount": 0,
"voteCount": null,
"replyText": "Hi. Thanks for sharing this. We hear you and we'll pass your feedback along to the Ads team. For an ad-free experience, 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.",
"replyDate": "2026-10-30T16:35:46.000Z",
"reviewUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=752659ef-19f9-4479-815d-15cac801ed84",
"scrapedAt": "2026-10-31T01:56:29.610Z"
},
{
"store": "appStore",
"appId": "284882215",
"appUrl": "https://apps.apple.com/us/app/id284882215",
"country": "us",
"language": null,
"reviewId": "14726791143",
"rating": 5,
"title": "Gracias por todo",
"text": "Humilde siempre",
"date": "2026-10-29T19:04:29.000Z",
"userName": "Petenero gallo",
"userImageUrl": null,
"userProfileUrl": "https://itunes.apple.com/us/reviews/id1978260122",
"appVersion": "585.0.0",
"helpfulCount": 0,
"voteCount": 0,
"replyText": null,
"replyDate": null,
"reviewUrl": null,
"scrapedAt": "2026-10-31T01:56:29.610Z"
}
]

A run summary (apps succeeded and failed, the reasons, warnings and charged events) is saved as OUTPUT in the run's key-value store.

Pricing

You pay per review delivered. The price is in the Pricing tab above.

  • 1,000 reviews cost about $0.10 on paid Apify plans.
  • No charge for apps that fail, or for reviews your star and date filters leave out.
  • No start fee beyond Apify's standard $0.00005 per run.
  • Platform usage is included.
  • Set Max cost per run in the run options, and the Actor stops cleanly when it gets there, delivering exactly what fits.

Why use this instead of…

  • Two separate scrapers: one run, one schema, one export for both stores, so comparing your iOS and Android ratings, or your app against a competitor's, is a single table.
  • Your own script: Apple's feed has quirks (its CDN sometimes serves an empty page for an app that has reviews; this Actor asks again past the cache), and Google Play's review endpoint is undocumented. A live test runs against both stores every day, so changes are caught early.

Use with AI agents (MCP)

This Actor works as a tool through the Apify MCP server, so Claude, ChatGPT, Cursor and other MCP clients can call it directly. Typical agent calls:

{ "apps": ["com.duolingo"], "stars": ["1", "2"], "maxReviewsPerApp": 50 }
{ "apps": ["570060128", "com.duolingo"], "reviewsSince": "2026-10-01", "maxReviewsPerApp": 200 }

You can also call it from code with the Apify API or the apify-client package for JavaScript and Python.

FAQ

Why do I get at most 500 App Store reviews per app? Apple's public review feed serves the latest 500 reviews per app and country (10 pages of 50). Add more countries for more reviews. Google Play has no such cap.

Why doesn't the country setting change Google Play results? Google Play shows the same reviews in every country and groups them by language instead. Use Google Play language.

Why is a reply date earlier than its review date? On Google Play, date is when the review was last edited. If the user edited it after the developer replied, the reply is older.

Why are the newest Google Play reviews from about a day ago? Google Play publishes reviews with a delay of roughly a day.

Does it get app details (installs, rating histogram)? Not yet. Open an issue if you need them.

Is this allowed? It reads the public reviews any visitor sees on the store pages, without logging in. Reviews include reviewers' public display names; if you store or publish them, the data-protection rules that apply to you (such as GDPR) still apply.

Does the Actor send anything back to the developer? At the end of each run it sends us a small usage record: how many of each billable event the run was charged, the prices it was charged at, your pricing tier, whether your plan is paid, and a one-way hash of your user ID. That's how we see which Actors are worth maintaining, because Apify doesn't share this with developers. Your input, your results and your account details are never sent.

Something broke or looks wrong? Open an issue on the Issues tab. Issues get a response within 48 hours.