AppleBooks API endpoint
Returns Apple Books chart rankings for a `collection`, `top-free` (default) or `top-paid`. Narrow with `genre` (an Apple Books genre ID, `0` for all genres), `country` (default `us`) and `limit` (default 50, max 200). Each entry has `name`, author, `genres`, `release_date`, `artwork_url` and `url`.
/apple-books/chartsMCP tool: apple_books_charts
Query parameters:
collection: optional. Chart collection. Allowed values: top-free, top-paid. Default top-free.genre: optional. Apple Books genre ID to filter the chart, e.g. 9031 for Fiction & Literature. 0 means all genres.country: optional. Two-letter storefront country code, default us.limit: optional. Number of chart items to return, default 50, max 200.| Field | Filled in, of 40 checked | Values in the sample |
|---|---|---|
| id | 40 | |
| name | 40 | “All The Best People Are” and 39 other values |
| artist_name | 40 | “Sunday St. Marie” and 37 other values |
| artist_id | 40 | |
| artist_url | 40 | books.apple.com |
| url | 40 | books.apple.com |
| artwork_url | 40 | is1-ssl.mzstatic.com |
| genres | 40 | median 4 entries |
| release_date | 40 | 1813-01-28 to 2026-10-07 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| collection | string | No | Chart collection. Allowed values: top-free, top-paid Allowed values: top-free, top-paid. | top-free | |
| genre | integer | No | Optional Apple Books genre ID to filter the chart | 9031 | |
| country | string | No | Two-letter storefront country code | us | |
| limit | integer | No | Number of chart items to return | 50 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/apple-books/charts?collection=top-free&country=us&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": [
{
"id": 395540967,
"name": "The Odyssey",
"artist_name": "Homer",
"artist_id": 781333,
"url": "https://books.apple.com/us/book/the-odyssey/id395540967",
"genres": [
"Poetry",
"Books"
]
}
]
}Request schema
No body schema
Response schema
#/definitions/applebooks.chartsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | array | No | ||||
| data[].artist_id | integer | No | ||||
| data[].artist_name | string | No | ||||
| data[].artist_url | string | No | ||||
| data[].artwork_url | string | No | ||||
| data[].genres | array | No | ||||
| data[].id | integer | No | ||||
| data[].name | string | No | ||||
| data[].release_date | string | No | ||||
| data[].url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Missing or invalid parameters | #/definitions/app.Response |
| 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/apple-books/charts?collection=top-free&country=us&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"