App Store Reviews API: Apple App Reviews by App ID and Country
Pricing
from $0.50 / 1,000 reviews
App Store Reviews API: Apple App Reviews by App ID and Country
Fetch Apple App Store reviews by app id or URL and country from the public iTunes RSS feed: rating, title, text, version, votes, author, date, plus app rating summary. No login, no proxies.
Pricing
from $0.50 / 1,000 reviews
Rating
0.0
(0)
Developer
Ailu Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
Fetch Apple App Store customer reviews for any iOS app and get them as clean, flat rows: star rating, title, text, app version, helpfulness votes, reviewer nickname and date, together with the app name and store URL. Give the Actor one or more app ids or App Store URLs and a list of storefront countries, pick the sort order (most recent or most helpful), optionally filter by star rating or age, and it reads Apple's public customer-reviews RSS feed (JSON) page by page. One free summary row per app and country adds the current average rating, rating counts, version, price and developer from the iTunes lookup API. No login, no proxies, no browser, no HTML scraping, so it runs in seconds and works well as an MCP tool for AI agents and in scheduled automations.
Use cases
- Product and support teams: pull the newest 1- and 2-star reviews of your app every morning and route them to Slack or a ticket queue.
- Competitive analysis: compare ratings and complaints for several competing apps across the US, UK, German and Japanese storefronts.
- Sentiment and topic analysis: build a dataset of recent reviews per version to see which release introduced a problem.
- AI agents: answer "what are users saying about app X this week?" with one structured call.
- Monitoring: schedule a run with
sinceDaysto collect only reviews written since the last run.
Input
| Field | Default | Meaning |
|---|---|---|
apps | ["284882215"] | Apple app ids or App Store URLs containing /id<digits>. Each app is fetched for every country. |
countries | ["us"] | Two-letter storefront codes, e.g. us, gb, de, jp. |
sortBy | mostRecent | mostRecent or mostHelpful; decides which reviews come first when the run is capped. |
maxPagesPerApp | 3 | RSS pages per app and country, 1 to 10 (50 reviews per page). |
minRating | – | Keep only reviews with this rating or higher (1 to 5). |
maxRating | – | Keep only reviews with this rating or lower (1 to 5). |
sinceDays | – | Keep only reviews updated in the last N days; stops paging early with mostRecent. |
includeAppMetadata | true | Add one free rowType: "app" summary row per app and country. |
maxItems | 500 | Maximum charged review rows per run. |
The default run returns the newest reviews of Facebook (id 284882215) from the US storefront, up to 150 reviews plus one app row.
Output
| Field | Meaning |
|---|---|
id | Stable key: <appId>:<country>:<reviewId>, or <appId>:<country>:app for the summary row. |
rowType | review (charged) or app (free summary row). |
appId, appName, country | App id, app name from the lookup API, storefront code. |
reviewId, title, text | Apple's review id, review title and body (paragraph breaks preserved). |
rating | Stars 1 to 5 as a number. |
version | App version the review was written for. |
voteSum, voteCount | Helpfulness votes on the review. |
author, authorUrl | Reviewer nickname and public profile URL. |
updatedAt | ISO 8601 UTC time the review was written or last edited. |
url | App Store page of the app in that storefront (reviews have no public URL of their own). |
fetchedAt | ISO 8601 UTC fetch time. |
App rows (rowType: "app") additionally carry developer, primaryGenre, averageRating, ratingCount, averageRatingCurrentVersion, ratingCountCurrentVersion, versionReleasedAt, price, currency, bundleId, minimumOsVersion and contentAdvisoryRating.
{"id": "284882215:us:14740119862", "rowType": "review","appId": "284882215", "appName": "Facebook", "country": "us", "reviewId": "14740119862","title": "Review for Facebook","text": "Sick of gambling advertisements. Are you trying to turn me into a gambler","rating": 2, "version": "585.0.0", "voteSum": 0, "voteCount": 0,"author": "Karen Munsell", "authorUrl": "https://itunes.apple.com/us/reviews/id872857104","updatedAt": "2026-11-02T01:28:40.000Z","url": "https://apps.apple.com/us/app/facebook/id284882215","fetchedAt": "2026-11-03T15:00:00.000Z"}
The run summary (apps, countries, pages read, reviews seen, errors) is stored in the OUTPUT record of the default key-value store.
How it works and limits
- For each app and country the Actor calls
GET https://itunes.apple.com/lookup?id=<appId>&country=<cc>once (app name, URL and the free summary row) and thenGET https://itunes.apple.com/<cc>/rss/customerreviews/id=<appId>/sortBy=<sort>/page=<n>/jsonfor pages 1 tomaxPagesPerApp, stopping early at the last page, whenmaxItemsis reached or, withsinceDaysandmostRecent, when a page holds no review inside the window. - Apple serves at most 10 pages of 50 reviews per app and country, so the feed covers roughly the latest 500 reviews per storefront. Older reviews are not retrievable through this endpoint.
- Rating and date filters are applied after fetching, so a page is always read in full; filtered-out reviews are not charged.
- Politeness: requests to Apple are spaced at least 300 ms apart; 429 and 5xx responses are retried with exponential back-off, and 403 responses are retried twice after 2 s and 4 s. One app and country with 3 pages takes about 2 seconds.
- Apple's feed is live and its pages can overlap or shift between requests, so consecutive pages sometimes repeat reviews. The Actor removes duplicates by review id within a run, which is why a page can yield fewer than 50 new reviews.
- A country where the app has no reviews returns an empty feed and no rows. An app id that does not exist in a storefront is reported in the run summary and the run finishes with status
partial. - Reviews are returned as Apple publishes them; there is no developer-reply field in this feed. Review language follows the storefront.
Pricing
Pay per result: $0.50 per 1,000 rows (result event). Platform usage is billed separately by Apify. Removed/free rows are not charged.
A default run (one app, one country, up to 150 reviews) takes a few seconds and four requests.
Legal
Not affiliated with Apple Inc. Uses the public iTunes customer-reviews RSS feed and iTunes Search (lookup) API only. Data licence/terms: https://www.apple.com/legal/internet-services/terms/site.html (reviews are user-generated content published by Apple; use them in accordance with Apple's terms and applicable law).
FAQ
Where do I find the app id? It is the number after id in any App Store URL, e.g. https://apps.apple.com/us/app/facebook/id284882215 gives 284882215. You can paste the whole URL into apps.
Can I get all reviews of an app? No. Apple's feed exposes at most 500 reviews (10 pages of 50) per app and country. To build a complete history, run the Actor regularly (for example daily with sinceDays: 2) and deduplicate on id.
How do I get only negative reviews? Set minRating: 1 and maxRating: 2. Pages are still read in full, but only matching reviews are returned and charged.
Why is appName empty for some rows? The name comes from the lookup API. If that request fails, review rows are still returned with appName: null and the summary row is skipped; the error is listed in the run summary.
Does the Actor return developer responses? No. Apple's RSS feed does not include developer replies.