Shared titles
GET/v1.3/persons/{type}/{id}/with/{type2}/{id2}
Titles two people both worked on, and what each of them did there.
The two people’s catalogs can differ: /persons/kp/37859/with/imdb/nm0634240 is Leonardo DiCaprio and Christopher Nolan. Each title carries both people’s roles: credits_first for the first person in the path, credits_second for the second.
Roles are set for each person separately. role_first=actor&role_second=director for DiCaprio and Nolan gives exactly Inception: Cobb and the director. role is a role both share: role=actor gives the titles they acted in together, role=self the broadcasts and ceremonies where both were guests. To drop broadcasts and archive footage, exclude those roles: of DiCaprio and Nolan’s 20 shared titles, role.not=self,archive leaves only Inception.
The list runs on the catalog engine: all the filters and sorting work, as do presets, the title search q and fields. Without sort, it runs from newest to oldest; order=asc reverses that. The “English only” example on the right uses this to list the films Keanu Reeves and Laurence Fishburne made together, by IMDb rating, with both people’s roles. The catalog gives the same titles without roles but with a cursor: /titles?person=kp:37859&person=imdb:nm0634240.
If both people in the path are the same person, the response is 400 with a hint to open the filmography.
Path parameters
typestringrequiredThe catalog the ID of the first person comes from: IMDb, Kinopoisk, TMDB or Kinorium.
imdbkptmdbkinoriumidstringrequiredThe ID of the first person in that catalog. IMDb IDs are
nmfollowed by digits (nm0634240); the others are digits (41477).type2stringrequiredThe catalog the ID of the second person comes from: IMDb, Kinopoisk, TMDB or Kinorium.
imdbkptmdbkinoriumid2stringrequiredThe ID of the second person in that catalog. IMDb IDs are
nmfollowed by digits (nm0634240); the others are digits (41477).
Query parameters
role_firstcsvThe first person’s role. Several, comma-separated, mean any of them.
role_first.notdrops the titles where the person had only such roles.directoractorselfarchivewriterproducercinematographercomposersoundarteditorvoice_directorvoiceauthortranslatorproducer_ussrcrewExample:role_first=actorrole_secondcsvThe second person’s role. Several, comma-separated, mean any of them.
role_second.notdrops the titles where the person had only such roles.directoractorselfarchivewriterproducercinematographercomposersoundarteditorvoice_directorvoiceauthortranslatorproducer_ussrcrewExample:role_second=directorrolecsvA role both of them had. Several, comma-separated, mean any of them.
role.notdrops the titles where either of them had only such roles.directoractorselfarchivewriterproducercinematographercomposersoundarteditorvoice_directorvoiceauthortranslatorproducer_ussrcrewExample:role=actorfilters, q and sortThe catalog’s filters, search and sorting:
kind=movie,q=matrix,sort=-rating_imdb. Details in Filters and sorting.Default:sort=-yearorderenumThe direction of the default order:
order=ascruns from oldest to newest. Whensortis set, its sign decides the direction.ascdescDefault:
Example:descorder=ascfieldscsvWhich item fields to return, as in the catalog, plus
credits_firstandcredits_second. IDs always come back.Example:fields=title,year,credits_first,credits_secondlangru | enKeep one language in the response. Without it, text fields come in
_ruand_enpairs. More in Response languages.Example:lang=enlimitintegerHow many titles to return, a whole number from 1 to 1000.
Default:1000
Example:limit=20offsetintegerHow many titles to skip, a whole number from 0.
Default:0
Response fields
itemsarrayThe shared titles: the same card as in the catalog, with both people’s roles.
Show 26 fields
imdb_id · kp_id · tmdb_id · tmdb_tv_id · kinorium_idstring | nullThe title’s catalog IDs. Always returned, even with
fields.title_ru · title_en · title_originalstring | nullTitles: Russian, English and in the original language.
yearinteger | nullRelease year.
release_datestring | nullFirst release date,
YYYY-MM-DD.kindenumKind of title:
movie,series,mini_series,tv_show,anime,cartoon,short.poster_url_ru · poster_url_enstring | nullPoster for a Russian and an English storefront.
posters_by_sourceobjectEach source’s poster:
kp,tmdb,imdb,kinorium.rating_kp · rating_tmdb · rating_imdb · rating_kr · rating_letterboxdnumber | nullKinopoisk, TMDB, IMDb, Kinorium and Letterboxd ratings, 0–10 scale.
votes_kp · votes_tmdb · votes_imdbinteger | nullKinopoisk, TMDB and IMDb votes.
countriesarrayCountries:
code,name_ru,name_en.genresarrayGenres:
slug,name_ru,name_en.credits_first · credits_secondarrayThe first and the second person’s roles on this title, with the same fields as a role in the filmography.
Show 9 fields
roleenumThe role. Labels are in
/enums, setcredit_roles.character_ru · character_enstring | nullThe character, for actors and dubbing, without the source’s notes, as in the cast. For
self, what the person appears as: “Guest”, «гость».job_ru · job_enstring | nullThe crew job: “Executive Producer”, «Исполнительный продюсер».
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.sourcesarrayWhich catalogs confirmed the credit:
kp,tmdb,kinorium, always in this order.uncreditedbooleantruemeans the title’s credits don’t name the person: the source marked the part “uncredited” («в титрах не указан»).disputedbooleantruemeans only TMDB has the credit, and the title’s Kinopoisk or Kinorium cast doesn’t list the person. The title’s cast leaves such credits out; in a list of work, hide them by checkingdisputed.
totalinteger | nullHow many shared titles match the request.
nullwith aqsearch.limit · offset · has_morePaging, as in every list.
Errors
| status | code | when |
|---|---|---|
| 400 | invalid_request | The path names the same person twice; an unknown role, filter, |
| 400 | invalid_request | The catalog is not |
| 404 | not_found | No person found for one of the IDs. |
| 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.