AppStore API endpoint
Returns every category ID and chart collection accepted by `/appstore/list`, including Games and Magazines & Newspapers subgenres with their parent ID. Collections carry their device platform (`phone`, `pad`, `mac`), chart type (`top_free`, `top_paid`, `top_grossing`, `top`, `new`), and whether the feed currently returns entries.
/appstore/categoriesReturns every category ID and collection value accepted by /appstore/list. Use it to discover valid chart inputs instead of hard-coding them. The response is the same fixed vocabulary the list endpoint validates against, so every value returned here is accepted there.
Requires the x-api-key header. Takes no query parameters.
Response fields:
categories[].id: numeric category ID to pass as category.categories[].name: English category name. Subgenres are prefixed with their parent, e.g. Games/Puzzle.categories[].parent_id: parent category ID for subgenres (6014 Games, 6021 Magazines & Newspapers); omitted for top-level categories.collections[].id: value to pass as collection. Allowed values: topfreeapplications, toppaidapplications, topgrossingapplications, newapplications, newfreeapplications, newpaidapplications, topfreeipadapplications, toppaidipadapplications, topgrossingipadapplications, topfreemacapps, topmacapps, toppaidmacapps, topgrossingmacapps.collections[].platform: device the chart covers. Allowed values: phone, pad, mac.collections[].chart_type: chart kind. Allowed values: top_free, top_paid, top_grossing, top, new.collections[].active: false when Apple still accepts the collection but its feed is currently empty (topmacapps, toppaidmacapps, topgrossingmacapps).Vision, Watch, and TV have no chart collections; use /appstore/editorial for their curated pages.
| Field | Filled in, of 13 checked | Values in the sample |
|---|---|---|
| id | 13 | |
| platform | 13 | phone (6), mac (4), pad (3) |
| chart_type | 13 | top_free (3), top_paid (3), top_grossing (3) and 2 more |
| active | 13 | true in 10 of 13 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/appstore/categories" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"categories": [
{
"id": 6014,
"name": "Games"
},
{
"id": 7012,
"name": "Games/Puzzle",
"parent_id": 6014
}
],
"collections": [
{
"id": "topfreeapplications",
"platform": "phone",
"chart_type": "top_free",
"active": true
},
{
"id": "topmacapps",
"platform": "mac",
"chart_type": "top",
"active": false
}
]
}
}Request schema
No body schema
Response schema
#/definitions/appstore.categoriesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | appstore.CategoriesResult | No | ||||
| data.categories | array | No | ||||
| data.categories[].id | integer | No | 6014 | |||
| data.categories[].name | string | No | Games | |||
| data.categories[].parent_id | integer | No | 0 | |||
| data.collections | array | No | ||||
| data.collections[].active | boolean | No | true | |||
| data.collections[].chart_type | string | No | top_free | |||
| data.collections[].id | string | No | topfreeapplications | |||
| data.collections[].platform | string | No | phone | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/appstore/categories" \
-H "x-api-key: $CRAWLORA_API_KEY"