Manga API endpoint
Returns a manga's cast (character name, native name, billed role, image, favourites), paginated. The AniList id space is shared between anime and manga but the two do not overlap, so an anime id here returns 404 -- use GET /anime/title/{id}/characters for those.
/manga/title/{id}/charactersPath parameters:
id (required) — AniList manga id (numeric), e.g. 30002 (Berserk).Query parameters:
page (optional, default 1) — 1-based page number.per_page (optional, default 10, max 50).Response includes id (echoed back), page, per_page, total, has_next_page, and results[]: id, name, native_name, role (one of MAIN, SUPPORTING, BACKGROUND), image, favourites, site_url.
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| name | 20 | “Guts” and 19 other values |
| native_name | 20 | “ガッツ” and 19 other values |
| role | 20 | SUPPORTING (12), MAIN (8) |
| image | 20 | s4.anilist.co |
| favourites | 20 | 12 to 23,707, median 404 |
| site_url | 20 | anilist.co |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id (path) | string | Yes | AniList manga id | 30002 | |
| 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/manga/title/30002/characters?page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": 30002,
"page": 1,
"per_page": 10,
"total": 500,
"has_next_page": true,
"results": [
{
"id": 39,
"name": "Guts",
"native_name": "ガッツ",
"role": "MAIN",
"favourites": 24372,
"site_url": "https://anilist.co/character/39"
}
]
}
}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/manga/title/30002/characters?page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"