acyka api

GET /api/v1/characters/{id}/voices

characterVoices

needs catalog:read

curl https://api.acyka.cc/api/v1/characters/52991/voices?lang=en \
  -H "Authorization: Bearer $ACYKA_TOKEN"

Asking #

In the address

fieldtypewhat it is
id numberthe shikimori id

Narrowing it

fieldtypewhat it is
lang may be absentstring | undefinedwhich of a title's three names leads: `en` (romaji), `ru`, `ja`, `uk`, `uz`. Defaults to `en`.

Answering #

200 Page<Voice> a page: items, and total beside it

The shapes #

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.

fieldtypewhat it is
id number
name string
name_orig may be absentstring | undefined
poster may be absentstring | undefined
seyu booleanWhat 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 absentstring | undefineda 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.