App Store Reviews Scraper - By Country & Version avatar

App Store Reviews Scraper - By Country & Version

Pricing

from $1.33 / 1,000 reviews

Go to Apify Store
App Store Reviews Scraper - By Country & Version

App Store Reviews Scraper - By Country & Version

Scrape App Store reviews across up to 40 countries in one table, each review tagged with the app version it was written against, so you can see which release broke what, and where. Rating, title, text and date for every review. No API key.

Pricing

from $1.33 / 1,000 reviews

Rating

0.0

(0)

Developer

Tom Awake

Tom Awake

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

19 hours ago

Last modified

Share

What does App Store Reviews Scraper do?

Every review, across every market, in one table — each one tagged with the app version it was written against.

Apple publishes reviews as an RSS feed: one country, one page of 50 at a time. Reading the Japanese and Brazilian reviews of an app means twenty requests and a manual merge. And every review carries the version number the user was running, which almost nobody uses.

That version tag is the point. A global rating of 4.7 can hide a collapse on a single market, or a single release.

No API key. No account.


What the data actually shows

950 Spotify reviews, 7 markets, one run:

MarketAverage rating1-2 star share
South Korea3.7323%
India3.8426%
United Kingdom3.8523%
Germany3.9618%
Japan3.9918%
Brazil4.1319%
United States4.2114%

Nearly half a point between Korea and the US, and complaints running from 14% to 26% of reviews depending on where you look. The store's headline rating shows none of this.

And by version, from the same run:

VersionAverageReviews
9.1.783.6776
9.1.803.97358
9.1.823.98514

A bad release and its recovery, visible as a table.


The three things this does that the source does not

1. Every market in one table.

Up to 500 reviews per country — Apple's ceiling, reached at ten pages of fifty. Seven markets in the run above meant 21 requests, merged and aligned into one dataset.

2. The version tag, as a column you can group by.

appVersion comes straight from the feed, plus versionSort — a zero-padded key, because 9.1.9 sorts after 9.1.80 as plain text and that ruins every chart built on it.

3. Review age in days.

daysAgo on every row. Sorted most recent first, median review age in the run above was 3 days — this is what users are saying now, not an accumulated average from three years ago.


Field coverage

Measured on 950 reviews across 7 markets.

FieldCoverage
rating, title, content, author100%
appVersion, versionSort100%
reviewedAt, daysAgo100%
reviewId, appName, countryName100%
voteCount, helpfulness0.6%

That last row is not a bug and is worth stating plainly: helpfulness votes are almost never present on recent reviews, because nobody has voted on them yet. Sort by most helpful if you need that field populated — those reviews are older, by construction.


What it is for

  • Post-release triage. Filter to 1-2 stars and one version. The complaints about what you just shipped, separated from the background noise.
  • Localisation and market health. The market with the lowest rating is the one to read first, and it is rarely the one you are watching.
  • Competitive research. Point it at a competitor's app ID and read what their users complain about, market by market.
  • Feature demand. Recurring requests in low-rated reviews are a roadmap someone else wrote for you.
  • Support monitoring. Run daily with postedWithinDays: 1.

Three dataset views ship with the Actor: Reviews, Complaints and By version.

Pairs with App Store Intelligence, which covers the listing itself — price, rating and distribution per market.


Limits

Stated plainly, because they affect what you can conclude.

  • 500 reviews per country, hard. Page 11 returns HTTP 400. For an app with millions of reviews this is a recent sample, not a census — treat per-market averages as indicative, and read the counts.
  • Only two sort orders work. mostRecent and mostHelpful. Apple documents mostFavorable and mostCritical; both return HTTP 500. Use the rating filter instead.
  • Sampling bias by design. Most recent reviews skew toward whoever is motivated to write today, which is disproportionately people with a problem. The share of 1-2 star reviews here is higher than the app's lifetime distribution.
  • Reviews are not translated. Japanese reviews come back in Japanese. That is the real text; translating it is your choice, not ours.
  • Author names are display names. Public pseudonyms chosen by the reviewer and published by Apple. They are not identities, and should not be treated as such.
  • Some markets return nothing for some apps. That means no reviews there, not a failure. The status message names those combinations.
  • A version with few reviews proves little. Group by version only when the count supports it.

How much does it cost?

You pay per review returned: $0.002 each, that is $2.00 per 1,000. There is no start fee, and subscription plans pay less per review.

The example input below asks for up to 1,000 reviews, so it costs $2.00 at most.

If a run reaches the spending limit you set, the output stops at that limit and never goes past it. You are never charged for rows that were not delivered.

Use App Store Reviews Scraper as an API

Call it from your own code with the Apify client, here in Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("DataIO/app-store-reviews-by-country-version").call(run_input={
'appIds': ['324684580'],
'countries': ['us', 'gb', 'de', 'jp', 'br'],
'pagesPerCountry': 3,
'maxItems': 1000,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

It also works from JavaScript, Make, Zapier, n8n, and from AI agents through the Apify MCP server.

Other actors you might like

FAQ

The actor reads public data from its official source, without logging in and without bypassing any access control. What you do with the data, for example contacting people listed in it, is your responsibility under the laws that apply to you, such as GDPR in Europe.

Can I run it on a schedule?

Yes. Create a schedule in Apify Console, daily or weekly for example, and each run delivers a fresh dataset, which you can send by email, webhook or integration.

Can AI agents use it?

Yes. It is available through the Apify MCP server, and every input field is described in its input schema, so an agent can call it directly.

Source

Apple's public App Store customer review RSS feeds, the same ones that power review sections across the web. No authentication. This Actor is not affiliated with Apple.