Anime API endpoint
Lists the cast of an anime by its AniList anime `id`, sorted by billed role. Each character has `name`, `native_name`, `role` (such as `MAIN` or `SUPPORTING`), `image`, `favourites` and `site_url`. Paged with `page` (default 1) and `per_page` (default 10, max 50), with `total` and `has_next_page`.
/anime/title/{id}/charactersReturns an anime's cast, sorted by billed role. AniList data (anilist.co).
Path parameters:
id (required) — AniList anime id (numeric), e.g. 154587.Query parameters:
page (optional, default 1) — 1-based page number.per_page (optional, default 10, max 50).Response includes total, has_next_page, and results[]: id, name, native_name, role (e.g. MAIN, SUPPORTING), image, favourites, site_url.
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| name | 20 | “Frieren” and 19 other values |
| native_name | 20 | “フリーレン” and 19 other values |
| role | 20 | SUPPORTING (17), MAIN (3) |
| image | 20 | s4.anilist.co |
| favourites | 20 | 32 to 22,543, median 565 |
| site_url | 20 | anilist.co |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id (path) | string | Yes | AniList anime id | 154587 | |
| page | integer | No | 1-based page number, default 1 | ||
| per_page | integer | No | Results per page, default 10, max 50 | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/anime/title/154587/characters?page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": 154587,
"page": 1,
"per_page": 10,
"total": 500,
"has_next_page": true,
"results": [
{
"id": 176754,
"name": "Frieren",
"native_name": "フリーレン",
"role": "MAIN",
"favourites": 21952,
"site_url": "https://anilist.co/character/176754"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/anime.charactersResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | anime.CharactersResponse | No | ||||
| data.has_next_page | boolean | No | true | |||
| data.id | integer | No | 154587 | |||
| data.page | integer | No | 1 | |||
| data.per_page | integer | No | 10 | |||
| data.results | array | No | ||||
| data.results[].favourites | integer | No | 21952 | |||
| data.results[].id | integer | No | 176754 | |||
| data.results[].image | string | No | ||||
| data.results[].name | string | No | Frieren | |||
| data.results[].native_name | string | No | フリーレン | |||
| data.results[].role | string | No | MAIN | |||
| data.results[].site_url | string | No | https://anilist.co/character/176754 | |||
| data.total | integer | No | 500 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 500 | Internal Server Error | #/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/anime/title/154587/characters?page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"