~ / 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

Why it is hard

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.

Quickstart

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"]) + ")")

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.

Use it for

>

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.

Under the hood

Pricing

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.

Get reviews api as JSON
Free plan, 1,000 requests. No credit card required.
Get a free API key All endpoints