Помилки

Виклики у стилі TMDB повертають помилки в тілі TMDB: success false, числовий status_code і status_message. Виклики у стилі OMDb повертають Response False з рядком Error. amodb використовує 8 кодів TMDB, від 7 для хибного ключа до 25 для ліміту запитів і 36 для закінченого тарифу. Повторюйте лише 429, 500 і 504.

Оновлено Відкрити в Markdown

Тіло помилки у стилі TMDB

Кожна помилка від https://api.amodb.dev/3 має ту саму форму JSON, що й у TMDB:

JSON
{
  "success": false,
  "status_code": 34,
  "status_message": "The resource you requested could not be found."
}

Коди помилок

HTTPstatus_codestatus_messageЩо робити
4017Invalid API key: You must be granted a valid key.Перевірте ключ і спосіб його надсилання.
40110Suspended API key: Access to your account has been suspended, contact amodb.Напишіть на support@amodb.dev.
40236Your plan has expired. Renew at https://amodb.dev/pricingСплатіть новий період.
40434The resource you requested could not be found.Перевірте id або шлях.
40537This method is not offered by amodb.Використайте ендпоінт читання.
42925Your request count (N) is over the allowed limit of (L).Зачекайте Retry-After секунд.
50011Internal error: Something went wrong, contact amodb.Повторіть за кілька секунд.
50424Your request to the backend server timed out. Try again.Повторіть за кілька секунд.

Тіло помилки у стилі OMDb

Ендпоінт, сумісний з OMDb, зберігає форму та формулювання OMDb:

Виклик OMDb з r=xml повертає HTTP 400. Використовуйте r=json або не вказуйте r.

JSON
{
  "Response": "False",
  "Error": "Movie not found!"
}
jspy
const res = await fetch("https://api.amodb.dev/3/movie/550", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
if (!res.ok) {
  const err = await res.json();
  if (res.status === 429) {
    // wait Retry-After seconds, then retry
  }
  throw new Error(`amodb ${res.status} code ${err.status_code}: ${err.status_message}`);
}
res = requests.get(url, headers=headers, timeout=10)
if not res.ok:
    err = res.json()
    raise RuntimeError(f"amodb {res.status_code} code {err['status_code']}: {err['status_message']}")

Запасні варіанти, які не є помилками

  • Невідомий тег language не спричиняє помилки. amodb віддає для нього англійську.
  • Поле без даних має значення null або є порожнім масивом, як у TMDB.

Запитання та відповіді

Які помилки має повторювати мій клієнт?

Повторюйте 429 через Retry-After секунд, а 500 або 504 із затримкою в кілька секунд. Не повторюйте 401, 402, 404 чи 405: той самий виклик знову завершиться помилкою.

Чому я отримую 405 для ендпоінта TMDB?

amodb не пропонує методи запису TMDB для акаунта, сесії, оцінок і списків. Вони повертають 405 зі status_code 37. Усі ендпоінти читання працюють.