AppleBooks API endpoint
Searches Apple Books ebooks by `term`, which is required. `country` is the two-letter storefront code (default `us`), `lang` a language tag such as `en-us`, `limit` the result count (default 50, max 200) and `page` starts at 1. Results include `isbn`, `publisher`, `page_count`, price, rating, genres and series details.
/apple-books/searchMCP tool: apple_books_search
Query parameters:
term: required. Search keyword.country: optional. Two-letter storefront country code, default us.lang: optional. Result language tag, e.g. en-us.limit: optional. Max results to return, default 50, max 200.page: optional. Result page number, default 1.| Field | Filled in, of 40 checked | Values in the sample |
|---|---|---|
| id | 40 | |
| name | 40 | “Harry Potter and the Sorcerer's Stone (Enhanced Edition)” and 37 other values |
| url | 40 | books.apple.com |
| artist_id | 40 | |
| artist_name | 40 | “J.K. Rowling” and 25 other values |
| artist_url | 40 | books.apple.com |
| description | 40 | median 967 characters |
| artwork_url | 40 | is1-ssl.mzstatic.com |
| genres | 40 | median 3 entries |
| release_date | 40 | 2004-07-01 to 2025-10-21 |
| price | 40 | 0 to 69.99, median 9.99 |
| currency | 40 | USD in all 40 |
| free | 40 | true in 2 of 40 |
| rating | 24 | 2.5 to 5, median 4 |
| rating_count | 24 | 5 to 10,803, median 74 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| term | string | Yes | Search term | harry potter | |
| country | string | No | Two-letter storefront country code | us | |
| lang | string | No | Result language tag | en-us | |
| limit | integer | No | Number of books per page | 50 | |
| page | integer | No | Search page number (1-based) | 1 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/apple-books/search?term=harry+potter&country=us&lang=en&limit=10&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": [
{
"id": 1037193578,
"name": "Harry Potter and the Sorcerer's Stone (Enhanced Edition)",
"url": "https://books.apple.com/us/book/harry-potter-and-the-sorcerers-stone-enhanced-edition/id1037193578",
"artist_id": 79595314,
"artist_name": "J.K. Rowling",
"genres": [
"Fiction & Literature",
"Fantasy"
],
"release_date": "2015-11-20T08:00:00Z",
"price": 11.99,
"currency": "USD",
"free": false,
"rating": 4.7,
"rating_count": 10686
}
]
}Request schema
No body schema
Response schema
#/definitions/applebooks.searchResponseDoc
| 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[].audience | string | No | ||||
| data[].audiobook_id | integer | No | ||||
| data[].currency | string | No | ||||
| data[].description | string | No | ||||
| data[].free | boolean | No | ||||
| data[].genres | array | No | ||||
| data[].id | integer | No | ||||
| data[].isbn | string | No | ||||
| data[].name | string | No | ||||
| data[].page_count | integer | No | ||||
| data[].price | number | No | ||||
| data[].publisher | string | No | ||||
| data[].rating | number | No | ||||
| data[].rating_count | integer | No | ||||
| data[].rating_histogram | object | No | ||||
| data[].release_date | string | No | ||||
| data[].series_id | integer | No | ||||
| data[].series_name | string | No | ||||
| data[].series_sequence | 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/search?term=harry+potter&country=us&lang=en&limit=10&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"