Disclosure: I built the Apify Actor linked below and charge per result ($0.0003/review).
Apple's public customer-reviews feed returns JSON for any app and storefront, with no authentication:
https://itunes.apple.com/us/rss/customerreviews/page=1/id=389801252/sortby=mostrecent/json
Limits worth knowing: the feed exposes only the latest ~500 reviews per app per country (10 pages of 50), has no developer replies, and one URL covers one country. To compare feedback across markets you loop over storefronts (us, gb, de, ...), paginate, deduplicate and normalise.
Minimal Node version
const r = await fetch(`https://itunes.apple.com/${cc}/rss/customerreviews/page=${p}/id=${id}/sortby=mostrecent/json`);
const entries = (await r.json()).feed.entry ?? [];
// first entry on page 1 can be the app itself; reviews have 'im:rating'
Pace requests (about 1/second), and stop when a page comes back empty.
If you don't want to maintain that
I packaged it as an Actor: multi-country sweep ("all"), star filters, since-date, keyword filter, and an incremental mode that returns only new reviews each scheduled run.
https://apify.com/northgrid-data/app-store-reviews-multi-country
Input: { "apps": ["389801252"], "countries": ["us","gb"], "maxRating": 2 }. Output fields: appId, country, rating, title, text, version, date, url.
Feedback or missing fields welcome in the Actor's issues.
Top comments (0)