AppleBooks API endpoint
Reads every category link from Apple's current chart page. The ebook and audiobook genre ID spaces differ; pass `media=book` before filtering ebook charts or `media=audiobook` before filtering audiobook charts.
/apple-books/genresMCP tool: apple_books_genres
Reads the complete chart-category navigation list from Apple's public chart
page for the requested storefront and media type. Each row gives the upstream
numeric id, URL slug, display name, media, and canonical url.
Query parameters:
media: required enum book or audiobook.country: optional two-letter storefront code; defaults to us.The two media types use distinct IDs. The live US inventory confirmed on 2026-10-31 (Asia/Shanghai) is:
| Media | ID | Name | Slug |
|---|---|---|---|
book | 9008 | Biographies & Memoirs | biographies-memoirs |
book | 9009 | Business & Personal Finance | business-personal-finance |
book | 9026 | Comics & Graphic Novels | comics-graphic-novels |
book | 9027 | Computers & Internet | computers-internet |
book | 9028 | Cookbooks, Food & Wine | cookbooks-food-wine |
book | 9031 | Fiction & Literature | fiction-literature |
book | 9025 | Health, Mind & Body | health-mind-body |
book | 9015 | History | history |
book | 11086 | Kids | kids |
book | 9032 | Mysteries & Thrillers | mysteries-thrillers |
book | 9002 | Nonfiction | nonfiction |
book | 9034 | Politics & Current Events | politics-current-events |
book | 9018 | Religion & Spirituality | religion-spirituality |
book | 9003 | Romance | romance |
book | 9020 | Sci-Fi & Fantasy | sci-fi-fantasy |
book | 9035 | Sports & Outdoors | sports-outdoors |
book | 11165 | Young Adult | young-adult |
audiobook | 50000042 | Biographies & Memoirs | biographies-memoirs |
audiobook | 50000043 | Business & Personal Finance | business-personal-finance |
audiobook | 50000040 | Fiction | fiction |
audiobook | 50000049 | History | history |
audiobook | 50000044 | Kids & Young Adults | kids-young-adults |
audiobook | 50000051 | Mysteries & Thrillers | mysteries-thrillers |
audiobook | 50000052 | Nonfiction | nonfiction |
audiobook | 50000053 | Religion & Spirituality | religion-spirituality |
audiobook | 50000069 | Romance | romance |
audiobook | 50000055 | Sci-Fi & Fantasy | sci-fi-fantasy |
audiobook | 50000054 | Science & Nature | science-nature |
audiobook | 50000056 | Self-Development | self-development |
Use the appropriate media's returned ID with its chart endpoint. In particular,
50000040 means audiobook Fiction; ebook Fiction & Literature is 9031.
| Field | Filled in, of 12 checked |
|---|---|
| id | 12 |
| media | 12 |
| name | 12 |
| slug | 12 |
| url | 12 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| media | string | Yes | Media taxonomy: book or audiobook Allowed values: book, audiobook. | audiobook | |
| country | string | No | Two-letter storefront code, default us | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/apple-books/genres?media=audiobook&country=us" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"media": "audiobook",
"country": "US",
"source_url": "https://books.apple.com/us/charts/audiobooks",
"genres": [
{
"id": "50000040",
"slug": "fiction",
"name": "Fiction",
"media": "audiobook",
"url": "https://books.apple.com/us/charts/audiobooks/fiction/50000040"
}
]
}Request schema
No body schema
Response schema
#/definitions/applebooks.genresResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | applebooks.GenresResult | No | ||||
| data.country | string | No | ||||
| data.genres | array | No | ||||
| data.genres[].id | string | No | 9008, 9009, 9026, 9027, 9028, 9031, 9025, 9015, 11086, 9032, 9002, 9034, 9018, 9003, 9020, 9035, 11165, 50000042, 50000043, 50000040, 50000049, 50000044, 50000051, 50000052, 50000053, 50000069, 50000055, 50000054, 50000056 | |||
| data.genres[].media | string | No | book, audiobook | |||
| data.genres[].name | string | No | ||||
| data.genres[].slug | string | No | ||||
| data.genres[].url | string | No | ||||
| data.media | string | No | book, audiobook | |||
| data.source_url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 503 | Service Unavailable | #/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/genres?media=audiobook&country=us" \
-H "x-api-key: $CRAWLORA_API_KEY"