ScavioScavio
ToolsPricing
Sign InsGet Startedg
Quick StartAPI & SDKsEcosystem

Apple App Store

App Store Reviews API

Pull a page of Apple App Store customer reviews as JSON: star rating, title, full text, author and author profile URL, helpfulness votes, and — the field the store's own web page never shows you — the APP VERSION each review was written against, so you can cut sentiment by release. 50 reviews per page, up to page 10 per storefront. Costs 1 credit.

POST/api/v1/appstore/reviews

Authorizations

Authorizationstringheaderrequired

Bearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).

Body

application/json
app_idstringrequired

App Store id, NUMERIC ONLY — the digits after `id` in an apps.apple.com URL. Unlike the App Store App endpoint, the reviews feed has no bundle-id form, so a bundle id is a free 400. Resolve a bundle id through the App Store App endpoint first and use the app_id it returns.

Example: 1232780281

countrystringdefault:us

Two-letter ISO storefront code. Reviews are per storefront, and this is also how you get past the 500-review ceiling: ask gb, de, jp and so on for a different 500 each. Must be exactly two letters — "usa" is a free 400 rather than a silent US result set.

Example: gb

pageintegerdefault:1

Reviews page, 1 to 10, 50 reviews each. Apple HARD-STOPS at page 10, so 500 reviews per storefront is the ceiling it publishes anonymously — page 11 is rejected here with a free 400 rather than sold as an empty page. Reach further by changing country, not page.

Example: 2

sortenum<string>default:most_recent

Review ordering. It also decides whether the vote fields mean anything: under most_recent almost every review is too new to have been voted on and vote_sum / vote_count come back as zeroes, while most_helpful returns them densely populated. All-zero votes on a recent page are the feed, not a bug.

Example: most_helpful

  • most_recent — Newest first (the default). Use for monitoring a release.
  • most_helpful — Apple's helpfulness ranking. Use when you want the votes populated.

Request

from scavio import ScavioClient

client = ScavioClient(api_key="sk_live_your_key")

# Watch what a release did: reviews carry the version they were written against.
by_version = {}
for page in range(1, 11):  # page 10 is Apple's hard stop
    batch = client.app_store.reviews("1232780281", page=page, sort="most_recent")["data"]
    if not batch["reviews"]:
        break
    for review in batch["reviews"]:
        by_version.setdefault(review["version"], []).append(review["rating"])

for version, ratings in by_version.items():
    print(version, round(sum(ratings) / len(ratings), 2), len(ratings))

# Past 500 reviews? Change storefront, not page.
uk = client.app_store.reviews("1232780281", country="gb", page=1)

Response

"app_id": "1232780281",
"country": "us",
"page": 1,
"updated_at": "2026-08-09T14:35:47-07:00",
"count": 50,
},
"response_time": 796,
"credits_used": 1,
"credits_remaining": 4819
}
PreviousApp Store AppNextGoogle Play Search
ScavioScavio

One scraper API for every social, search and ecommerce platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy