Endpoints
All endpoints follow the same pattern: POST https://api.fetchlayer.dev/appstore/{endpoint} with a JSON body and Bearer auth header.
TypeScript / JavaScript? Use the open-source SDK: @fetchlayer/appstore on npm · Source on GitHub
Search
Search the App Store for apps by name or keyword.
/search Search https://api.fetchlayer.dev/appstore/search Search the App Store
Search by app name or keyword. Returns matching apps with ratings, developer, subtitle, category, and screenshots. Filter by platform (iPhone, iPad, Mac, Apple TV, Apple Watch, Apple Vision Pro) and country.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | App name or keyword to search. |
| country | string | No | Two-letter country code (e.g. us, gb, jp). (default: us) |
| platform | string | No | Filter by platform: iphone, ipad, mac, appletv, watch, realityDevice. |
| geo | string | No | Two-letter geo code for regional results. |
Example Request
{
"query": "notion",
"country": "us"
} Example Response
{
"results": [
{
"id": "1234567890",
"name": "Notion",
"developer": "Notion Labs",
"rating": 4.8,
"ratingCount": 45000,
"category": "Productivity",
"price": 0,
"url": "https://apps.apple.com/us/app/notion/id1234567890"
}
]
} Response Fields
search
Search the App Store
| Field | Type | Description |
|---|---|---|
| results[].id | string | App Store app ID. |
| results[].name | string | App name. |
| results[].developer | string | Developer name. |
| results[].subtitle | string | Short app description/tagline. |
| results[].rating | number | Average star rating. |
| results[].ratingCount | number | Total number of ratings. |
| results[].category | string | Primary App Store category. |
| results[].price | number | Price in local currency (0 = free). |
| results[].screenshots | string[] | Screenshot URLs. |
| results[].editorsChoice | boolean | Whether the app has been selected as an Editor's Choice. |
| results[].url | string | App Store listing URL. |
Reviews
Fetch customer reviews for any App Store app.
/reviews Reviews https://api.fetchlayer.dev/appstore/reviews Fetch app reviews
Returns customer reviews for the specified App Store app. Supports filtering by platform, country, language, 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).
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| appId | string | Yes | App Store app ID (numeric). |
| country | string | No | Two-letter country code. (default: us) |
| platforms | string[] | No | Filter by one or more platforms: iphone, ipad, mac, appletv, watch, realityDevice. |
| lang | string | No | Language code (e.g. en, ja). |
| geo | string | No | Two-letter geo code for regional results. |
| pages | number | No | Number of pages to fetch. Billed per page actually retrieved (see `pagesFetched` in the response). (default: 1) |
| reviewsPerPage | number | No | Reviews per page (max 20). (default: 20) |
| sort | string | No | Sort order: recent (default) or helpful. (default: recent) |
Example Request
{
"appId": "1234567890",
"country": "us",
"pages": 1
} Example Response
{
"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
} Response Fields
reviews
Fetch app reviews
| Field | Type | Description |
|---|---|---|
| id | string | Unique review identifier. |
| rating | number | Star rating (1-5). |
| title | string | Review title. |
| body | string | Full review text. |
| author | string | Reviewer display name. |
| version | string | App version reviewed. |
| date | string | ISO 8601 review date. |
| 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. |