Skip to content
Sections: Catalog and search

Reference

Catalog and search

GET/v1.3/titles

Search titles by name and pick them from the whole database with filters.

The main list in the API: search, storefronts and selections by any property. Filters, sorting and presets are covered in Filters and sorting; paging and fields in Lists and pagination.

Without sort the catalog goes by popularity, with titles that have no votes last. Pair sorting by a rating with a vote threshold: a handful of people can rate a title too.

Query parameters

  • qstring

    Search by title in any language. Forgives typos: “matrx” finds The Matrix. With q the default order is relevance.

    Example: q=матрица
  • filters

    Any catalog filter with the .any, .all, .not, .gte, .lte operators: kind=anime, country=jp, year.gte=1990, votes_imdb.gte=50000, person=kp:41477. The full list is in Filters and sorting.

  • sortstring

    Order: a key with a sign, - for descending, + for ascending. Two keys are allowed: sort=-rating_imdb,+year. Popularity by default, relevance with q.

    popularityrelevancerelease_dateyearruntimeratingrating_imdbrating_kprating_tmdbrating_krrating_letterboxdrating_rtrating_metacriticrating_criticsvotes_imdbvotes_kpvotes_tmdbvotes_krvotes_letterboxdvotes_totalrating_weighteddivergencebudgetbox_office_usrevenue_worldwins_imdboscars_wonrandom
    Default:

    popularity, relevance with q

    Example: sort=-rating_imdb
  • presetenum

    A ready-made set of filters. Explicit parameters refine it. What each one holds is in Filters and sorting.

    tophidden_gemstrendingnewclassics
    Example: preset=top
  • limitinteger

    Titles per page, from 1 to 50.

    Default:

    50

    Example: limit=20
  • offsetinteger

    How many titles to skip from the start.

    Default:

    0

  • cursorstring

    A cursor for deep paging. Send an empty cursor= first, then the next_cursor value from the response. Doesn’t work with sort=random. Only the catalog has it.

  • fieldscsv

    Which item fields to return: fields=title,year. With a - sign, which to drop: fields=-genres. title keeps title_ru and title_en, poster_url keeps poster_url_ru and poster_url_en. IDs always come back.

    titletitle_originalyearrelease_datekindposter_urlposters_by_sourcerating_kprating_tmdbrating_imdbrating_krrating_letterboxdvotes_kpvotes_tmdbvotes_imdbcountriesgenres
    Example: fields=title,year
  • langru | en

    Keep one language in the response.

Response fields

  • itemsarray

    Titles.

    Show 24 fields
    • imdb_id · kp_id · tmdb_id · tmdb_tv_id · kinorium_idstring | null

      The title’s catalog IDs. Always returned, even with fields.

    • title_ru · title_en · title_originalstring | null

      Titles: Russian, English and in the original language.

    • yearinteger | null

      Release year.

    • release_datestring | null

      First release date, YYYY-MM-DD.

    • kindenum

      Kind of title: movie, series, mini_series, tv_show, anime, cartoon, short.

    • poster_url_ru · poster_url_enstring | null

      Poster for a Russian and an English storefront.

    • posters_by_sourceobject

      Each source’s poster: kp, tmdb, imdb, kinorium.

    • rating_kp · rating_tmdb · rating_imdb · rating_kr · rating_letterboxdnumber | null

      Kinopoisk, TMDB, IMDb, Kinorium and Letterboxd ratings, 0–10 scale.

    • votes_kp · votes_tmdb · votes_imdbinteger | null

      Kinopoisk, TMDB and IMDb votes.

    • countriesarray

      Countries: code, name_ru, name_en.

    • genresarray

      Genres: slug, name_ru, name_en.

  • totalnull

    The catalog doesn’t count the total: an exact count of a filtered set is a second pass over the whole database. Page by has_more.

  • limit · offsetinteger

    Page size and offset. There is no offset when you page with a cursor.

  • has_moreboolean

    Whether there is a next page.

  • next_cursorstring | null

    The next page’s cursor, only if the request had cursor. null means there is nothing more.

Errors

statuscodewhen
400invalid_request

An unknown filter, operator, sort key or fields name; a repeated parameter other than person; an unknown collection in collection; a parameter of another endpoint (such as role or relation); a non-numeric limit; person.role without person; cursor or offset with sort=random; a malformed cursor.

401unauthorized

The X-API-Key header is missing, or the key is unknown or revoked.

429rate_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.

Esc

Loading the index…

    ↑ ↓ to selectEnter to openEsc to close