MyAnimeList hub

MyAnimeList Anime Cast API

Every character, voice actor and staff member for one anime, with roles and languages.

GET /v1/myanimelist/anime/{id}/characters

1 credit Failed requests are free A not-found answer is still charged

About this endpoint

GET /v1/myanimelist/anime/{id}/characters returns data.characters and data.staff in one answer. Each character has id, name, url, imageUrl, role, favorites and voiceActors[]; each voice actor carries id, name, language, url and imageUrl. Staff entries carry id, name, url, imageUrl and position, such as Storyboard, Music or Original Creator.

This is the complete cast list, not the preview on the title route. A title with no cast returns lookupStatus: found with empty arrays, which is different from an unknown anime id returning not_found. Long-running series can return hundreds of characters and staff in one large response; cache it rather than polling it on every view.

MyAnimeList Anime Cast API FAQ

Can one character have several voice actors?

Yes. voiceActors is an array and language says which dub each actor belongs to. The array is ordered with the Japanese cast usually first.

Why is the staff list empty?

Manga titles do not have an anime staff list. The manga character route returns data.staff: [] by design, and anime titles with no staff credits also return an empty array.

How many credits does this request cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.

How large can this response be?

It is one response with no cursor. A long-running series can list hundreds of characters and staff, so cache the result and avoid requesting it on every view.

Is this the same cast as the title route?

No. The title route returns a short characters and staff preview. This route returns every cast row, including all voice actors, so use it when you need a complete cast.