GET /api/v1/titles/{id}/characters
titleCharacters
needs catalog:read
curl https://api.acyka.cc/api/v1/titles/52991/characters?lang=en&limit=10 \
-H "Authorization: Bearer $ACYKA_TOKEN" Asking #
In the address
| field | type | what it is |
|---|---|---|
id | number | the shikimori id |
Narrowing it
| field | type | what it is |
|---|---|---|
lang may be absent | string | undefined | which of a title's three names leads: `en` (romaji), `ru`, `ja`, `uk`, `uz`. Defaults to `en`. |
limit may be absent | number | undefined | how many rows, 1-100; 30 by default |
offset may be absent | number | undefined | where to carry on from |
Answering #
200 Page<TitleCharacter> a page: items, and total beside it
It pages by limit and offset. Every library has a paginator that
walks it — see Paging, which is also where the reason it stops on a
short page rather than on total is written down.
The shapes #
TitleCharacter #
One character in one title.
| field | type | what it is |
|---|---|---|
id | number | |
name | string | |
name_orig may be absent | string | undefined | |
poster may be absent | string | undefined | |
roles | string[] | `Main` or `Supporting`, as the source words it |
voices may be absent | Voice[] | undefined |
Voice #
Somebody who said the lines, and the language they said them in.
**`language` absent means nobody has said, which is not the same as "not japanese".** The pass that fills it asks AniList for the japanese cast, which can confirm a voice and can never rule one out. A client that reads this as a boolean will label a chinese dub actress as the original.
| field | type | what it is |
|---|---|---|
id | number | |
name | string | |
name_orig may be absent | string | undefined | |
poster may be absent | string | undefined | |
seyu | boolean | What this person is. All three can be false — most of a crew is none of them — and several can be true at once. |
mangaka | boolean | |
producer | boolean | |
language may be absent | string | undefined | a BCP-47 tag — `ja` for the original, and the only one written so far |
When it says no #
A refusal is { "message": "errors.something" } — a phrase name and never a
sentence, because one screen can be read in five languages. Every library turns the name into a
type, so you catch the class you can do something about. Errors has
the list.