Why your App Store review count looks wrong — and how to actually get "all" of them

Last updated:

Apple's App Store doesn't have one global pool of reviews — ratings and reviews belong to the country storefront where they were left, so querying only us and expecting "all" of an app's reviews will always undercount it. There's no single endpoint that returns a worldwide total: a defensible collection has to query every storefront you actually care about and record which one each review came from.

Why this happens

Apple's own ratings-and-reviews help page states plainly that reviews and ratings vary by App Store country or region — a user in Germany reviews the de storefront, a user in Japan reviews the jp storefront, and those pools don't merge anywhere Apple exposes publicly. An app with 2 million US ratings can simultaneously have a few hundred in a smaller market, and both numbers are real, scoped totals — not a partial view of one true number.

This Actor's countries input makes that explicit rather than hiding it: each app is fetched once per country you list, and every review and app-details row carries its own country field, so you can tell at a glance which storefront a number came from instead of assuming it's global.

json
{
  "type": "app",
  "appId": "570060128",
  "country": "gb",
  "name": "Duolingo: Language Lessons",
  "averageRating": 4.72,
  "ratingCount": 5480861,
  "version": "7.142.0"
}

Run the same appId with "countries": ["us"] and you'll get a different ratingCount on the matching app-type row for us — both are correct, for their own storefront.

What "get all App Store reviews" actually means

There's no API parameter, on this Actor or Apple's own endpoints, that returns a true cross-country total — because that total doesn't exist as a single number anywhere in Apple's systems; the App Store itself only ever shows country-scoped ratings to users. The practical approach:

  1. Pick every storefront that matters for your use case (your top markets, or every country you ship in).
  2. Pass them all in countries, e.g. ["us", "gb", "de", "au", "jp"].
  3. Treat each app-type row's ratingCount/averageRating as that country's number, and sum review rows (not ratings) across countries yourself if you need a combined review count.

Pagination and rate-limit boundary

Within one country, Apple's own public feed caps out at 500 reviews per app (10 pages of 50) — a separate, additional limit on top of the per-country scoping above, confirmed against the live feed, not assumed. Older unauthenticated review-feed access has also been reported throttled under heavy unauthenticated load; this Actor's retry-and-fallback behavior (JSON feed first, XML feed second) exists partly because of that real-world flakiness, not just for robustness on paper.

Limits

Up to 500 reviews per app per country — add more countries for more coverage, not a higher per-country cap (there isn't one to ask for). No developer-response text in any country's feed. A rating count you see here can differ from what a dashboard shows if that dashboard is already summing countries differently, or looking at a different moment in time.

Pricing

Pay per event — $0.0002 per row ($0.20 per 1,000), no subscription. Querying 5 countries for one app costs the same per-row rate as 1 country; you simply get up to 5× the rows.

Open App Store Reviews Scraper on Apify

FAQ

Is there a way to get a true worldwide App Store review total?

No — Apple doesn't expose one, on this Actor or anywhere else publicly, because ratings and reviews are stored and shown per storefront. The closest equivalent is summing review rows across every country storefront you query yourself.

Why did my review count drop between two runs?

It's unlikely review counts actually dropped; more likely a different set of countries was passed, or Apple's feed paginated slightly differently between requests. Compare the exact countries list and maxReviewsPerApp used in both runs before assuming data loss.

How many countries should I query?

As many as are relevant to your use case. For competitor monitoring, your top 3–5 markets by install base usually capture most of the signal; for completeness, the App Store is distributed across 175 countries and regions, though most apps have meaningful review volume in only a fraction of them.

Does sinceDate work per country or globally?

Per country, within each app × country pairing being fetched — the Actor stops paging for that specific app/country combination once it reaches a review older than sinceDate, independently of how other countries for the same app are progressing.

Where do I actually run this?

See the App Store Reviews Scraper page for inputs, output shapes and code samples, or the competitor-reviews guide if you're specifically monitoring an app you don't own.