Fetch app reviews
Returns customer reviews for the specified App Store app. Supports filtering by platform, country, language, date, and pagination. Each review includes rating, title, body text, version, and date. Billing is per page actually fetched — the response includes a `pagesFetched` field and you are charged 1 credit per page retrieved (not per page requested). With the default `sort=recent`, reviews are newest-first across every page and platform, so `reviews[0]` is the newest review; passing `since` also stops pagination early once results fall before the cutoff, so a narrow date window can cost far fewer credits than `pages` alone would suggest. With `sort=helpful`, Apple's own ordering is preserved and `since` filters without stopping early, so it still fetches every requested page.
/reviews Reviews https://api.fetchlayer.dev/appstore/reviews Headers
Authorization string required Bearer token — your FetchLayer API key.
Parameters
appId string required App Store app ID (numeric).
country string optional Two-letter country code. (default: us)
platforms string[] optional Filter by one or more platforms: iphone, ipad, mac, appletv, watch, realityDevice.
lang string optional Language code (e.g. en, ja).
geo string optional Two-letter geo code for regional results.
pages number optional Number of pages to fetch. Billed per page actually retrieved (see `pagesFetched` in the response). (default: 1)
reviewsPerPage number optional Reviews per page (max 20). (default: 20)
sort string optional Sort order: recent (default) or helpful. (default: recent)
since string optional Only return reviews dated on or after this ISO 8601 date (inclusive: date >= since). Accepts a bare date like 2026-01-31 or a full timestamp like 2026-01-31T00:00:00Z; an unparseable value returns HTTP 400 before any scraping happens. With sort=recent the scraper also stops paginating once it passes the cutoff, so a narrow window can finish in far fewer than `pages` requests. With sort=helpful, Apple's feed is not date-ordered, so `since` still filters but every requested page is fetched.
Response Fields
reviews
Fetch app reviews
appId string App Store app ID that was requested.
country string Country storefront the reviews were fetched from.
reviews object[] Matching review records.
reviews[].id string Unique review identifier.
reviews[].rating number Star rating (1-5).
reviews[].title string Review title.
reviews[].body string Full review text.
reviews[].author string Reviewer display name.
reviews[].version string App version reviewed.
reviews[].date string ISO 8601 review date.
reviews[].helpfulCount number Number of users who found this helpful.
pagesFetched number Number of pages actually fetched. Billing is multiplied by this value (1 page = 1 credit). You are only charged for pages that were actually retrieved, not the number requested — unchanged by `since`, though with sort=recent a narrow `since` window typically makes this number much smaller.
totalTimeSec string Total time taken to fetch the requested pages, in seconds.
platforms object[] Per-platform breakdown of reviews and pages fetched, present when multiple platforms are requested.
platforms[].platform string Platform name for this breakdown entry.
platforms[].reviews number Number of reviews returned for this platform.
platforms[].pages number Number of pages fetched for this platform.
Request
curl -X POST "https://api.fetchlayer.dev/appstore/reviews" \
-H "Authorization: Bearer ss-your-key" \
-H "Content-Type: application/json" \
-d '{"appId":"1234567890","country":"us","pages":1}'Response
{
"appId": "1234567890",
"country": "us",
"reviews": [
{
"id": "r123",
"rating": 5,
"title": "Great app",
"body": "Love using this every day!",
"author": "User123",
"version": "10.1.0",
"date": "2026-07-28T12:00:00Z",
"helpfulCount": 12
}
],
"pagesFetched": 1,
"totalTimeSec": "1.42"
}