App Store Reviews Scraper API
Our App Store reviews scraper reads Apple's customer-reviews feed for any app id and returns each review as JSON: rating, title, body, app version, author, date, and helpful-vote counts, roughly 50 reviews per page.
The hard part of App Store Reviews data
Apple has no review API for apps you do not own, and the public customer-reviews source is an Atom RSS feed that throttles hard per egress IP, answering repeat traffic with an empty feed rather than reviews. Its JSON variant is a long-standing Apple bug that returns zero entries, so the XML feed is the only reliable source and it has to be parsed and rotated carefully.
Send one request to the App Store Reviews Scraper API
curl "https://api.appstorescraperapi.com/api/v1/appstore/reviews?id=284882215&page=1&sort=mostRecent&api_key=$API_KEY" import requests
BASE = "https://api.appstorescraperapi.com"
API_KEY = "YOUR_API_KEY"
# Pass the numeric App Store app id (same id as appstore/product).
data = requests.get(
f"{BASE}/api/v1/appstore/reviews",
params={
"id": "284882215", # the app's App Store id
"country": "us", # storefront, two-letter ISO code
"page": 1, # 1-based, Apple caps at page 10
"sort": "mostRecent", # mostRecent is the reliable sort
"api_key": API_KEY,
},
timeout=30,
).json()
print(data["id"], "-", data["total_results"], "reviews on page", data["page"])
for r in data["reviews"]:
print(r["rating"], r["title"], "-", r["author"], "(v" + str(r["version"]) + ")") Parameters
| Parameter | Required | Default | Notes |
|---|---|---|---|
id | required | - | The numeric App Store app id, the same id used by appstore/product. Accepts a bare id, an id123 token, or an apps.apple.com URL, from which we extract the id. |
url | optional | - | An apps.apple.com app URL. Pass it as the id value and we read the numeric id from it server side. |
country | optional | us | Two-letter ISO storefront country. Defaults to us. Reviews are per-storefront, so set it to read another region's reviews. |
page | optional | 1 | 1-based reviews page, roughly 50 reviews per page. Apple caps the feed at page 10. |
sort | optional | mostRecent | Sort order: mostRecent or mostHelpful. mostRecent is the reliable sort; Apple's mostHelpful feed frequently returns empty on its side. |
api_key | required | - | Your API key, passed as a query parameter. Get one free at signup. |
Reading the App Store Reviews Scraper API response
{
"id": "284882215",
"country": "us",
"page": 1,
"sort": "mostRecent",
"total_results": 50,
"reviews": [
{
"id": "11498349827",
"author": "jdoe_reviews",
"author_url": "https://itunes.apple.com/us/reviews/id123456789",
"rating": 5,
"title": "Works great after the update",
"body": "The latest version fixed the sync issue I was having. Fast and stable now.",
"version": "9.1.60",
"date": "2026-06-28T14:03:11-07:00",
"vote_sum": 12,
"vote_count": 14
}
]
} | Field | Type | Description |
|---|---|---|
id | string | The app id echoed back from your request. |
country | string | The storefront the reviews were read from. |
page | integer | The reviews page number for this response. |
sort | string | The sort order applied, mostRecent or mostHelpful. |
total_results | integer | Number of reviews parsed on this page. |
reviews | array | The reviews on this page, each an object with the fields below. |
rating | integer | The star rating the reviewer gave, 1 to 5. |
title | string | The review headline. |
body | string | The full plain-text review content. |
version | string | The app version the review was written against. |
author | string | The reviewer's display name. author_url links to their reviews page. |
date | string | ISO timestamp of when the review was posted or updated. |
vote_sum | integer | Apple's helpful-vote sum for the review. vote_count is the total number of votes cast. |
What you can ship with it
Review monitoring
Voice-of-customer analysis
Release feedback tracking
Competitor review mining
Support triage
Quote and testimonial pulls
Why our App Store Reviews Scraper API earns its keep
Send an app id and we fetch Apple's customer-reviews feed, parse the Atom XML into clean JSON, and return the reviews for the page you asked for. Apple throttles this feed aggressively per IP, so an empty response is surfaced with a clear diagnostic and retried on a fresh exit rather than returned as a false-positive empty page, which is the reliability layer this endpoint adds on top of a source that blocks casual scraping.
Parsed review objects
Paged, up to Apple's cap
Honest empty handling
Anti-bot and proxy rotation
Auto-retry on a fresh exit
Reliable sort selected
App Store Reviews Scraper API vs official and roll-your-own
| Our API | DIY (RSS + parser) | Apple review API | |
|---|---|---|---|
| Reviews for any app | Yes, by app id | Yes, if you parse the Atom feed | Owner apps only, via Connect |
| Output | Parsed JSON | Raw Atom XML you parse | Not for third-party apps |
| Per-IP throttling | Rotation and retries handle it | You hit the empty-feed wall | Not applicable |
| Empty vs throttled | Diagnosed and retried | Hard to tell apart yourself | Not applicable |
| Setup | API key only | Proxies plus an XML parser | App Store Connect account |
| Sort handling | Reliable sort selected | You learn the quirks | Not applicable |
From free to high volume
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
An App Store reviews scraper is a tool that collects customer reviews for an iOS app and returns them as structured data. Our App Store reviews scraper API takes an app id and returns each review's rating, title, body, app version, author, date, and helpful-vote counts as JSON, reading Apple's public customer-reviews feed roughly 50 reviews per page.
Send one GET request to our appstore/reviews endpoint with id set to the numeric App Store id, plus your API key. Add country for the storefront, page to walk through pages, and sort to choose the order. We fetch Apple's reviews feed, parse the XML, handle proxy rotation and retries, and return the reviews as clean JSON.
Apple's public customer-reviews feed exposes up to 10 pages of roughly 50 reviews each per storefront, so a single storefront yields around 500 recent reviews. You page through them with the page parameter. Reading multiple storefronts with the country parameter widens the set, since reviews are per-region.
Apple throttles its customer-reviews RSS feed aggressively per egress IP and answers a throttled request with an empty feed whose pagination links are blank. Our endpoint detects that signature, labels it clearly, and retries on a fresh exit IP rather than returning a false empty page. An empty result can also mean you paged past the last review page or the app genuinely has no reviews, and the diagnostic distinguishes those cases.
The sort parameter accepts mostRecent and mostHelpful. mostRecent is the order Apple populates reliably, so it is the default. Apple offers mostHelpful but frequently returns an empty feed for it on their side regardless of page, so mostRecent is the dependable choice for consistent results.
No. You only need an appstorescraperapi key passed as the api_key query parameter. Apple's Connect review tools only cover apps you own; this endpoint reads the public customer-reviews feed for any app id, with no Apple account required. The free tier includes 1,000 requests per month.