# Ошибки

> Вызовы в стиле 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/ru/rate-limits/): amodb ограничивает ключ запросами в минуту в скользящем окне 60 секунд: 20, 40 или 120 по тарифу. Читайте заголовки лимита и обрабатывайте 429 с Retry-After.
- [Аутентификация](https://amodb.dev/ru/authentication/): Как передать ключ amodb: api_key в запросе, заголовок Authorization Bearer или apikey для вызовов OMDb. Формат ключа, хранение, ротация и ошибки 401.
- [Быстрый старт](https://amodb.dev/ru/quickstart/): Первый вызов amodb: получите ключ, запросите детали фильма через curl, JavaScript, Python, PHP или Go и загрузите постер с img.amodb.dev. Меньше 2 минут.

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