Store VoicesApp Store reviews
API documentation

App Store review data, ready to use.

Fetch normalized reviews and app metadata from one predictable JSON endpoint. Filter by country, paginate older results, and translate reviews into English without handling source feeds yourself.

Quickstart

The demo key is restricted to Instagram (389801252) in the United States. It is safe to use for trying the endpoint. Translation is disabled for demo requests.

Request
curl -H 'X-API-Key: APIKEY' 'https://storevoices.com/v1/reviews/us/389801252'

Open the live JSON →

Authentication

Send an API key using the X-API-Key header. For browser requests, the same key can be supplied as the optional api_key query parameter. When both are present, the header takes precedence.

Need an API key?

Email [email protected] with a short description of your project.

Endpoint and parameters

GET /v1/reviews/{country}/{app_id}

Finding an App Store ID

In an App Store URL such as apps.apple.com/us/app/instagram/id389801252, the number after id is the app ID.

ParameterLocationRequiredDescription
countryPathYesSupported lowercase two-letter country code. See /countries.
app_idPathYesNumeric App Store ID, up to 20 digits.
pageQueryNoZero-based starting page. Defaults to 0.
pagesQueryNoConsecutive pages to fetch, from 1 to 10. Defaults to 1.
sinceQueryNoReturn reviews after an ISO 8601 timestamp. Start at page=0.
translateQueryNoSet to en to translate reviews to English.
api_keyQueryNoAlternative to the preferred X-API-Key header.

Response

The response includes localized app metadata, normalized reviews, and pagination state. Reviews are sorted newest first.

200 OK · application/json
{ "app_id": "389801252", "country": "US", "app": { "name": "Instagram", "developer": "Instagram, Inc.", "bundle_id": "com.burbn.instagram", "icon_url": "https://is1-ssl.mzstatic.com/image/.../512x512bb.jpg", "app_store_url": "https://apps.apple.com/us/app/instagram/id389801252", "genre": "Photo & Video", "current_version": "402.0", "average_rating": 4.7, "rating_count": 25000000 }, "fetched_at": "2026-10-12T09:20:00Z", "count": 1, "reviews": [{ "id": "12345678900", "date": "2026-10-12T08:42:17Z", "rating": 5, "title": "Great app", "text": "Easy to use.", "author": "example-user" }], "pagination": { "page": 0, "pages_fetched": 1, "next_page": null } }

If app metadata cannot be loaded, app is null while available reviews are still returned. Individual reviews do not include an app-version field because the source does not provide one.

English translations

Add ?translate=en. Original title and text fields remain unchanged; translated content is additive and cached.

Translated review fields
{ "title": "Sehr gut", "text": "Einfach zu verwenden.", "language": "de", "translation": { "language": "en", "title": "Very good", "text": "Easy to use." } }

English reviews return translation: null. If translation is temporarily unavailable, the request succeeds with original text and a warning.

Pagination and incremental checks

Each page contains up to 50 reviews. One request can fetch up to 10 consecutive pages.

  1. 1
    Start at page zero

    Omit page or set it to 0. Choose the number of pages with pages.

  2. 2
    Follow next_page

    When it contains a number, pass that number as page in the next request.

  3. 3
    Stop at null

    The available review list is complete.

Only fetch reviews since your last check

Send since with page zero. The conditional all_reviews_since_returned field is true when the requested period was fully covered. If it is false, continue from next_page when present.

Errors and warnings

Errors use the JSON shape { "error": "Message" }.

400
Invalid request parameter
401
Missing or invalid API key
403
API key outside its allowed scope
404
Unknown endpoint
500
Unexpected internal error
502
Review source unavailable or returned invalid data
504
The review source did not respond before the request deadline

Warning codes

Successful responses omit warnings unless context is required.

translation_unavailable
English translation failed temporarily; original reviews were returned.