Cast and crew
GET/v1.3/titles/{type}/{id}/cast
A title’s actors, dubbing and crew, merged from Kinopoisk, TMDB and Kinorium.
Without parameters the cast comes split into sections by role: directors, actors, writers, producers and so on, 10 people each. To get everyone in one role, narrow the list: role=actor gives a flat, pageable list.
roles describes the whole cast, not the page: how many people each role has and the role labels. Draw tabs from it; they don’t change while you page.
Dubbing is a role of its own, voice: the voice actor, the character they voiced and, in dubs, the original actor. People who appear as themselves (in talk shows, ceremonies, documentaries) have the role self, and archive footage is archive.
Path parameters
typestringrequiredThe catalog the ID comes from: IMDb, Kinopoisk, TMDB (movie or series) or Kinorium.
imdbkptmdbtmdb_tvkinoriumidstringrequiredThe ID in that catalog. IMDb IDs are
ttfollowed by digits (tt1375666); the others are digits (447301).
Query parameters
rolecsvKeep these roles, comma-separated. The list becomes flat and pageable:
role=director,writergives directors and writers in one list.role.notdrops roles and keeps the rest:role.not=self,archiveis the cast without broadcasts and archive footage. Sections stay; for a flat list, addgroup=none.directoractorselfarchivewriterproducercinematographercomposersoundarteditorvoice_directorvoiceauthortranslatorproducer_ussrcrewExample:role=director,writersourceenumKeep the credits this catalog confirmed.
kptmdbkinoriumExample:source=kpgroupenumSplit the list into sections.
nonegives a flat list. How sections work is in Lists and pagination.rolenoneDefault:rolelangru | enKeep one language in the response. Without it, text fields come in
_ruand_enpairs. More in Response languages.Example:lang=enlimitintegerHow many items to return, a whole number from 1. With sections, per section, up to 50. In a flat list, up to 1000. Above the cap isn’t an error: the API lowers it and shows the value in
limit.Default:10 per section, 1000 in a flat list
Example:limit=20offsetintegerHow many items to skip, a whole number from 0. Only in a flat list: with sections it returns
400.Default:0
Response fields
rolesarrayHow many people are in the whole cast, by role:
role, the labelslabel_ruandlabel_en,count. The order follows the credits: directors, actors, self, archive footage, writers, producers and so on.itemsarraySections by role, each with
role, labels,total,has_moreanditems. In a flat list, the credits themselves.Show 12 fields
personobjectThe person. Any of their IDs opens the person card and the filmography.
Show 13 fields
imdb_id · kp_id · tmdb_id · kinorium_idstring | nullThe person’s catalog IDs.
name_ru · name_enstring | nullName in Russian and in English.
name_originalstring | nullThe name in the person’s own language when it is written in neither Latin nor Cyrillic script.
birth_year · death_yearinteger | nullYears of birth and death.
genderenum | nullGender:
maleorfemale.photo_urlstring | nullThe portrait, one of
photos_by_source: the first there is, in the order TMDB, Kinorium, Kinopoisk. As on the person card.photos_by_sourceobjectEach source’s photo:
kp,tmdb,kinorium. TMDB pictures in the cast are 185 px wide (/t/p/w185/); for a larger one, replace that part of the link withh632ororiginal.professionsarrayProfessions as the sources list them, values from the
credit_rolesset.
roleenumRole in this title. Labels are in
/enums, setcredit_roles.character_ru · character_enstring | nullThe character, for actors and dubbing. It carries no source notes: “uncredited” is
uncredited, and “as himself” or “archive footage” is already said by the roleselforarchive. A name the source left untranslated comes incharacter_en.character_originalstring | nullThe character’s name in the original language, when it is neither Russian nor English.
character_photo_urlstring | nullA still showing this character.
job_ru · job_enstring | nullThe crew job.
job_enis how TMDB writes it,job_ruis the Russian translation: “Director of Photography” → «Оператор-постановщик». Rare jobs have no translation, andjob_ruisnull.dubsobject | nullFor dubbing, whom the voice actor dubbed: their IDs (
imdb_id,kp_id,tmdb_id,kinorium_id) and name (name_ru,name_en).ordinteger | nullBilling order: for actors, the order in the credits; for the crew, within their department.
nullwhen the place is unknown: the role comes from the person’s filmography, not the title’s credits.uncreditedbooleantruemeans the title’s credits don’t name the person: the source marked the part “uncredited” («в титрах не указан»).sourcesarrayWhich catalogs confirmed the credit:
kp,tmdb,kinorium. Two or more mean the person was matched, not guessed. The order is alwayskp,tmdb,kinorium. A credit only TMDB has is left out when the title’s Kinopoisk or Kinorium cast exists and doesn’t list the person.
total · limit · offset · has_morePaging, as in every list.
Errors
| status | code | when |
|---|---|---|
| 400 | invalid_request | An unknown role in |
| 404 | not_found | No title found for this ID. |
| 401 | unauthorized | The |
| 429 | rate_limited | The per-second rate limit or the daily quota is used up. |
Every code and what to do about it is on the Errors page.