App Store reviews
Reviews for one App Store app, in one country's store.
Returns a fixed page of 100 reviews per call in a single request.
The page size is set on our side rather than by the caller: Apple would serve
far more per call, but batch size is a request routing-bandwidth decision, not a client
one. Walk with page.
Unlike most review surfaces, Apple's paging is by absolute index and has no
practical depth limit, page 1,985 of WhatsApp's US reviews returns its
198,400th review, dated 2009, so the entire corpus is reachable and pages
can be fetched in parallel rather than by walking a cursor chain. has_more
is false on the page that ends the collection.
Each review carries its id, author, title, text, 1-5 rating, timestamp, the
helpful/total vote counts and whether it was edited. There is no rating
filter: Apple's favorable and critical sorts order by rating, they do
not filter to it, and the store exposes no filter at all, so filter
client-side on rating rather than trusting a parameter that would silently
do nothing.
Note this endpoint can succeed for a country where the app endpoint returns 404. A delisted app keeps its review history in the store it was pulled from, WhatsApp is unavailable on the China store but still has 12,745 written reviews there, and those are that store's own reviews, not a fallback to another one. So "no listing" and "no reviews" are genuinely different questions here, and each endpoint answers its own.
The example response below is real output from this endpoint, not an illustration. Long lists and long strings are shortened to keep the page readable, and each place that happens is marked. This example took 2.1s.
Authorization
ApiKeyAuth Your API key. Sent on every request.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/scrapers/app-store-reviews-v4" \ -H "Content-Type: application/json" \ -d '{ "app_id": "310633997", "sort": "recent", "page": 1, "country": "US" }'{ "request_id": "req_8f2c1d94e7b0", "success": true, "status": { "code": "OK", "message": "Scrape completed.", "retryable": false }, "data": { "app_id": "310633997", "app_url": "https://apps.apple.com/us/app/id310633997", "country": "US", "has_more": true, "page": 1, "page_size": 100, "returned": 100, "reviews": [ { "author": "Tyantocool", "author_url": "https://itunes.apple.com/us/reviews?userProfileId=1884041903", "helpful_votes": 0, "is_edited": false, "posted_at": "2026-08-22T06:07:42+00:00", "rating": 5, "review_id": "14457574761", "text": "Nothing to hate I love it", "title": "Love it", "vote_count": 0 }, { "author": "Airlisbet", "author_url": "https://itunes.apple.com/us/reviews?userProfileId=1518915723", "helpful_votes": 0, "is_edited": false, "posted_at": "2026-08-22T05:47:08+00:00", "rating": 1, "review_id": "14457528684", "text": "You have to improve on this lame app cause i was permanently banned on my main WhatsApp account for no reason,I do nothing on WhatsApp aside the fact I come to chat with few people and leave the app so WhatsApp has to banned my account for no reason,I created another one and since I created the account,I haven’t used i… (+167 chars)", "title": "Created an account and they have been banned and opened it countless times", "vote_count": 0 }, "… 98 more items in the full response" ], "sort": "recent" }, "error": null, "meta": { "client_id": "client_abc123", "scraper": "app-store-reviews-v4", "billable": true, "duration_ms": 1397 }}