# Помилки

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

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

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

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

## Коди помилок

| HTTP | status_code | status_message                                                               | Що робити                                |
| ---- | ----------- | ---------------------------------------------------------------------------- | ---------------------------------------- |
| 401  | 7           | Invalid API key: You must be granted a valid key.                            | Перевірте ключ і спосіб його надсилання. |
| 401  | 10          | Suspended API key: Access to your account has been suspended, contact amodb. | Напишіть на <support@amodb.dev>.         |
| 402  | 36          | Your plan has expired. Renew at <https://amodb.dev/pricing>                  | Сплатіть новий період.                   |
| 404  | 34          | The resource you requested could not be found.                               | Перевірте id або шлях.                   |
| 405  | 37          | This method is not offered by amodb.                                         | Використайте ендпоінт читання.           |
| 429  | 25          | Your request count (N) is over the allowed limit of (L).                     | Зачекайте `Retry-After` секунд.          |
| 500  | 11          | Internal error: Something went wrong, contact amodb.                         | Повторіть за кілька секунд.              |
| 504  | 24          | Your request to the backend server timed out. Try again.                     | Повторіть за кілька секунд.              |

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

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

```json
{
  "Response": "False",
  "Error": "Movie not found!"
}
```

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

## Обробка помилок у коді

```js
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}`);
}
```

```python
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. Усі ендпоінти читання працюють.

## Пов'язані сторінки

- [Ліміти запитів](https://amodb.dev/uk/rate-limits/): amodb обмежує кожен ключ запитами на хвилину в ковзному вікні 60 секунд: 20, 40 або 120 за тарифом. Читайте заголовки ліміту й обробляйте 429 із Retry-After.
- [Автентифікація](https://amodb.dev/uk/authentication/): Як надсилати ключ amodb: api_key у запиті, заголовок Authorization Bearer або apikey для викликів OMDb. Формат ключа, зберігання, заміна та помилки 401.
- [Швидкий старт](https://amodb.dev/uk/quickstart/): Перший виклик amodb: отримайте ключ, запросіть деталі фільму в curl, JavaScript, Python, PHP чи Go і завантажте постер з img.amodb.dev. Менш ніж за 2 хвилини.

Оновлено: 2026-10-18. Source: https://amodb.dev/uk/errors/
