App Store API

App Store Reviews API

Get App Store reviews for any iOS app by app ID, in any storefront country: ratings, titles, and review text.

POST/v1/run/appstore.reviews
Uptime
100.00%
30d · 14 calls
Requests
14
30d · weekly, last 12 wks
Response
19.3s
median · 30d

Try it

Make your first request

requireFieldsarray
Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `helpfulVotes` or `version`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a review that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.
Open in
Get a free key
Sample response
Free runs return only the first 3 results. Fund a key to get the full response.
{
  "data": {
    "items": [
      {
        "author": "Alex Rivera",
        "createdUtc": 12.5,
        "helpfulVotes": 42,
        "id": "a1b2c3d4",
        "rating": 4.6,
        "text": "A short example description of this item.",
        "title": "Example title",
        "url": "https://example.com/page",
        "version": "example"
      }
    ]
  },
  "found": true
}
Response interface
interface AppstoreReviewsResponse {
  data: {
    items: {
      author?: string;
      createdUtc?: number;
      helpfulVotes?: number;
      id?: string;
      rating: number;
      text: string;
      title?: string;
      url?: string;
      version?: string;
    }[];
  } | null;
  found: boolean;
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

Request, response, and price

Last verified 2026-09-16 · uptime and latency measured over 30d
POST /v1/run/appstore.reviews
curl -X POST https://api.getanyapi.com/v1/run/appstore.reviews \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"appId":"389801252","country":"us","limit":3}'
FieldTypeExample value
Request body
appIdstring"389801252"Numeric App Store app ID, the digits at the end of the app's store URL without the 'id' prefix (e.g. 310633997).
countrystring"us"Two-letter App Store storefront country code to read reviews from.
limitinteger3Maximum number of results to return (1-100, default 100). You are billed per result returned, so a lower limit costs less.
requireFieldsarrayOptional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `helpfulVotes` or `version`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a review that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.
Response
dataobjectThe result wrapper, or null when nothing was found.
data.itemsobject[]Review records: star rating, review title and text, reviewer nickname, app version, and review date. Populated whenever the provider has data for the entity.
data.items[].authorstringReviewer nickname. Populated whenever the provider has data for the entity.
data.items[].createdUtcnumberUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the review was posted. Populated whenever the provider has data for the entity.
data.items[].helpfulVotescan requireintegerNumber of helpful votes on the review.
data.items[].idstringReview identifier. Populated whenever the provider has data for the entity.
data.items[].ratingnumberStar rating, 1 to 5. Populated whenever the provider has data for the entity.
data.items[].textstringReview body text. Populated whenever the provider has data for the entity.
data.items[].titlecan requirestringReview title.
data.items[].urlcan requirestringPublic App Store page for this review, when supplied by the serving lane.
data.items[].versioncan requirestringApp version the review was left on.
foundbooleanTrue when at least one review record was returned.
Price
Price per request (ceiling)USD$0.011
Price /1k resultsUSD$0.11

FAQ

About the App Store Reviews API

The AnyAPI App Store Reviews API returns App Store reviews data as normalized JSON from one POST call to /v1/run/appstore.reviews. Get App Store reviews for any iOS app by app ID, in any storefront country: ratings, titles, and review text. AnyAPI routes each request across 2 sources and falls back automatically when one fails. It costs $0.11 per 1,000 results, and never more than $0.011 for a single request, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of App Store reviews calls through AnyAPI succeeded, with a median response time of 19.3 seconds across 14 measured calls.

It costs $0.11 per 1,000 results, and never more than $0.011 for a single request, in US dollars with no subscription and no monthly minimum. You fund one USD wallet, each call draws it down, and a failed request costs $0.

Get App Store reviews for any iOS app by app ID, in any storefront country: ratings, titles, and review text. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 100.0% of App Store reviews calls through AnyAPI succeeded, with a median response time of 19.3 seconds across 14 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.