~ / endpoints / Reviews API

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.

Get a free API keyEndpoint catalog
1,000
free requests / mo
~50
reviews / page
10
pages Apple exposes
JSON
structured output
the hurdle

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.

step one

Send one request to the App Store Reviews Scraper API

cURL
curl "https://api.appstorescraperapi.com/api/v1/appstore/reviews?id=284882215&page=1&sort=mostRecent&api_key=$API_KEY"
Python
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 list

Parameters

ParameterRequiredDefaultNotes
idrequired-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.
urloptional-An apps.apple.com app URL. Pass it as the id value and we read the numeric id from it server side.
countryoptionalusTwo-letter ISO storefront country. Defaults to us. Reviews are per-storefront, so set it to read another region's reviews.
pageoptional11-based reviews page, roughly 50 reviews per page. Apple caps the feed at page 10.
sortoptionalmostRecentSort order: mostRecent or mostHelpful. mostRecent is the reliable sort; Apple's mostHelpful feed frequently returns empty on its side.
api_keyrequired-Your API key, passed as a query parameter. Get one free at signup.
data back

Reading the App Store Reviews Scraper API response

200 OK
{
  "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
    }
  ]
}
FieldTypeDescription
idstringThe app id echoed back from your request.
countrystringThe storefront the reviews were read from.
pageintegerThe reviews page number for this response.
sortstringThe sort order applied, mostRecent or mostHelpful.
total_resultsintegerNumber of reviews parsed on this page.
reviewsarrayThe reviews on this page, each an object with the fields below.
ratingintegerThe star rating the reviewer gave, 1 to 5.
titlestringThe review headline.
bodystringThe full plain-text review content.
versionstringThe app version the review was written against.
authorstringThe reviewer's display name. author_url links to their reviews page.
datestringISO timestamp of when the review was posted or updated.
vote_sumintegerApple's helpful-vote sum for the review. vote_count is the total number of votes cast.
common builds

What you can ship with it

>

Review monitoring

Poll an app's most-recent reviews on a schedule and store them to catch complaints, bug reports, and rating dips as they land.
>

Voice-of-customer analysis

Pull review bodies across pages to feed sentiment scoring or an LLM summary of what users praise and what they want fixed.
>

Release feedback tracking

Group reviews by the version field to see how each build was received and whether an update calmed or worsened the score.
>

Competitor review mining

Read a rival app's reviews to learn the pain points its users report, then position your own listing against them.
>

Support triage

Route incoming one and two star reviews into a support queue so the team can respond before the rating trend sets in.
>

Quote and testimonial pulls

Filter high-rating reviews with helpful votes to surface candidate testimonials for your marketing pages.
why it works

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

Each review comes back with rating, title, body, version, author, date, and helpful-vote counts, parsed from Apple's Atom feed into JSON.
*

Paged, up to Apple's cap

Read roughly 50 reviews per page across the 10 pages Apple exposes, using the page parameter to walk through them.
*

Honest empty handling

A throttled or over-the-end feed returns a clear diagnostic instead of a silent empty success, so you know when to retry versus when there simply are no more reviews.
*

Anti-bot and proxy rotation

Rotating residential and datacenter proxies spread requests across IPs to work around Apple's per-IP throttling on the reviews feed.
*

Auto-retry on a fresh exit

When the feed comes back empty from a throttled IP, the request retries through other proxy tiers and exits before giving up.
*

Reliable sort selected

mostRecent is the sort Apple populates consistently; the endpoint defaults to it and exposes mostHelpful for when Apple serves it.
comparison table

App Store Reviews Scraper API vs official and roll-your-own

Our APIDIY (RSS + parser)Apple review API
Reviews for any appYes, by app idYes, if you parse the Atom feedOwner apps only, via Connect
OutputParsed JSONRaw Atom XML you parseNot for third-party apps
Per-IP throttlingRotation and retries handle itYou hit the empty-feed wallNot applicable
Empty vs throttledDiagnosed and retriedHard to tell apart yourselfNot applicable
SetupAPI key onlyProxies plus an XML parserApp Store Connect account
Sort handlingReliable sort selectedYou learn the quirksNot applicable
what you pay

From free to high volume

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky or one-off volume

Median response 2.6s. You only pay for successful requests.

FAQ

What is an App Store reviews scraper?

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.

How do I scrape App Store reviews for an app?

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.

How many reviews can I get, and how far back?

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.

Why does a reviews request sometimes come back empty?

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.

Can I sort reviews by most helpful?

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.

Do I need an Apple developer account to read reviews?

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.

Stream reviews api as JSON
Spin up free with 1,000 requests.
Get a free API key Endpoint catalog