ОбзорБыстрый стартСправочник по APIЦеныЖурнал измененийСтатусПолучить ключ API
РазработчикиБыстрый стартСправочник по APIКонсольТарифыЖурнал изменений APIСтатус сервиса
ОбзорФильмыСериалыПомощьУсловия использованияПолитика конфиденциальностиСкачать приложениеПолитика cookiesТарифыВозвраты и отмена подпискиПолитика допустимого использованияПравообладателямСтатус сервисаПроверить уведомление об удаленииЧто нового
·

© 2026 Wambesha

v0.110.0
Обзор

Discovery

  • SearchGET
  • DiscoverGET
  • LookupGET
  • GenresGET
  • Similar titlesGET

Titles

  • Batch titlesGET
  • Title recordGET
  • SeasonsGET
  • EpisodesGET
  • CreditsGET
  • ImagesGET
  • Where a title is heldGET

People

  • PersonGET
  • FilmographyGET

Changes

  • Change feedGET
  • ChangelogGET

Account

  • Plan and usageGET
  • Usage historyGET
  • Recent requestsGET
  • KeysGET
  • Rotate keyPOST

Эндпоинты: 21 из 21

Справочник по API доступен только на английском языке.

Discovery/discover

GET/v1/discover

Только квота вызововПагинация по курсору

Browse the catalogue by genre, year range, country, type and minimum rating, in one of four fixed sort orders. Returns title ids. Spends no verification.

Параметры

  • genrestring[]необязательный

    A genre slug from /v1/genres. Repeat to require several (ANDed).

    Ещё⌄

    Repeatable. Multiple genres are ANDed.

  • year_fromintegerнеобязательный

    Earliest release year, inclusive, 1874-2200.

    Ещё⌄

    Inclusive lower bound of a RANGE. Supplying only one end is fine - the other is filled from the bounds below. An inverted range (year_from after year_to) is a 400, and so is a year outside 1874-2200.

  • year_tointegerнеобязательный

    Latest release year, inclusive, 1874-2200; not before year_from.

    Ещё⌄

    Inclusive upper bound of the same range. See year_from.

  • countrystring[]необязательный

    A production country code. Repeat for several (any of them).

    Ещё⌄

    Only titles produced in this country, given as the country code the title record's countries field uses. Repeatable; several match ANY of them. An unknown code matches nothing rather than failing.

  • typemovie | tv_movie | short | series | mini_series | specialнеобязательныйпо умолчанию: all types

    One title type, e.g. movie. Omit for every type.

    Ещё⌄

    One title type. Omit for every type. Case-insensitive; shown here in lowercase. An unlisted value is a 400 naming these.

  • min_ratingstringнеобязательный

    Lowest aggregate rating, 0-10. Decimals allowed.

    Ещё⌄

    Only titles whose aggregate rating is at least this value, on a 0-10 scale; decimals allowed (7.5). Anything else is a 400 naming the field min_rating.

  • sortnewest | rating | popularity | alphabeticalнеобязательныйпо умолчанию: popularity

    newest, rating, popularity (default) or alphabetical.

    Ещё⌄

    One of newest, rating, popularity, alphabetical. Each carries a fixed direction; there is no descending form, and a leading minus is a 400 rather than an order this API cannot actually produce. An unrecognised token is a 400 naming the accepted set. Case-insensitive; shown here in lowercase.

  • languagestringнеобязательный

    Response language, a supported BCP-47 tag. Default en. Not an original-language filter.

    Ещё⌄

    A supported BCP-47 tag. Defaults to en. An UNSUPPORTED tag is a 400 naming the accepted set, never a silent fallback - the catalogue stores match the 17 tags as exact strings, so degrading would answer an empty 200 that an integrator would ship before noticing.

  • limitintegerнеобязательныйпо умолчанию: 20

    Ids per page, 1-50. Default 20.

    Ещё⌄

    Out of range is a 400, never a silent clamp - silent clamping hides client bugs until they surface as a support ticket.

  • cursorstringнеобязательный

    The previous page's next_cursor. Bound to every filter and the sort.

    Ещё⌄

    Opaque and FILTER-BOUND. Replaying a cursor after any filter changes is a 400 CURSOR_INVALID, never a silently wrong page.

Поля ответа

  • itemsstring[]
  • next_cursorstringможет быть null
  • totalinteger · int64может быть null

    How many items the query matches in total, when that is known. Null when it is not known; it is never an estimate.

Заголовки ответа

  • X-Request-ID

    The id of this request, on every response - success or error. Quote it to support: it is how we find your request in our logs. An X-Request-ID you send is honoured and echoed back, so you can use your own; otherwise we generate one. /v1 error bodies carry no trace id of their own.

  • X-Quota-Reset

    RFC 3339 instant at which the billing period rolls. Present on every response to a request whose key was metered - every 2xx, every error a handler returned, and the quota 429. Absent on a refusal that happens before metering: a missing or unknown key (401), a restricted key or a plan that does not carry the endpoint (403), a public demo-key gate refusal, and the pre-authentication flood throttle.

  • X-Calls-Remaining

    Requests left in the period after this one, never below 0. Present whenever X-Quota-Reset is (see there for when a response carries no quota headers).

  • X-Verifications-Remaining

    How many verifications you can still make before a limit stops you. The daily limit and the monthly allowance are counted separately; this is whichever of the two runs out first. Sent whenever X-Quota-Reset is.

  • X-Quota-Grace

    true when THIS request fell inside the 10% grace band above a monthly ceiling. A grace request is served and is not billed; treat true as "back off now", not as headroom. Always true or false, never absent when the other quota headers are present.

  • Retry-After429

    Seconds to wait before retrying. On every 429 - the quota hard stop, the public demo key's limits, and the pre-authentication flood throttle (which carries this header alone, because no key has been read yet).

  • X-Demo-Challenge-ModeТолько с демо-ключом

    Sent only on responses to the public demo key. The value interactive asks the documentation page to show the visible verification widget - it is sent once a browser has made more than five runs in ten minutes or has received a 429. The page then repeats the header, X-Demo-Challenge-Mode: interactive, on its next request, with the widget's token in X-Demo-Challenge. Requests made with your own key never receive it.

Ошибки

  • validation-failed

  • validation-failed

  • validation-failed

  • validation-failed

  • validation-failed

  • validation-failed

  • cursor-invalid

  • cursor-invalid

  • cursor-invalid

  • validation-failed

  • unauthenticated

  • forbidden

  • plan-required

  • challenge-required

  • validation-failed

  • quota-exhausted

  • rate-limited

  • upstream-unavailable

Подробности⌄

Spends no verification, for the same reason as search: the caller is querying the index, not asking us to confirm a page.

Unknown FACET VALUES are dropped rather than rejected, so a shared discover URL still works next month. A MALFORMED value is still a 400 - year_from=banana is not a stale facet value, it is a broken request.

НазадSearchДалееLookup

Попробуйте

Загрузка демо-ключа…

A genre slug from /v1/genres. Repeat to require several (ANDed).

Earliest release year, inclusive, 1874-2200.

Latest release year, inclusive, 1874-2200; not before year_from.

A production country code. Repeat for several (any of them).

One title type, e.g. movie. Omit for every type.

Lowest aggregate rating, 0-10. Decimals allowed.

newest, rating, popularity (default) or alphabetical.

Response language, a supported BCP-47 tag. Default en. Not an original-language filter.

Ids per page, 1-50. Default 20.

curl "https://api.wambesha.com/v1/discover" \
  -H "Authorization: Bearer YOUR_API_KEY"

Пример

{
  "items": [
    "sr_Q91QNGVMFW",
    "mv_QZVKC8WZVX"
  ],
  "next_cursor": "djF8MmU3NzkzYmYwNTU3M2Y4Znxwb3B1bGFyaXR5fDI",
  "total": 6
}