# Ошибки

Ошибка приходит в виде `{"detail": "текст", "code": "код"}`. По полю `code` удобно решать в программе, что делать дальше. Ошибка в параметре или поле тела приходит иначе — у имени поля: `{"channels": ["Номера каналов через запятую."]}`.

| Ответ | `code` | Что случилось |
|---|---|---|
| 400 | — | Неверный параметр или поле тела: ошибка — у имени поля |
| 401 | `not_authenticated` | Нет ключа |
| 401 | `authentication_failed` | Ключ неверный или отозван, доступ участника приостановлен, организация в архиве — причина в тексте |
| 403 | `tariff_required` | Метод или период закрыт тарифом — в тексте нужный тариф |
| 403 | `closed_channel` | Посты закрытого канала через API не отдаются |
| 403 | `read_only_key` | Метод что-то меняет, а ключ только для чтения |
| 403 | `limit_reached` | Предел тарифа исчерпан (например, число вебхуков) |
| 403 | `manager_required` | Ключ участника: менять вебхуки может только владелец или администратор организации |
| 404 | `not_found` | Канала, поста или вебхука нет, или ключ его не видит |
| 405 | `method_not_allowed` | Метод HTTP не подходит к адресу (например, POST к списку каналов) |
| 409 | `conflict` | Действие невозможно сейчас (проверка выключенного вебхука, включение вебхука, выключенного сотрудником) |
| 429 | `quota_exceeded` | Запросы за период закончились |
| 429 | `rate_limited` | Больше запросов в секунду, чем по тарифу |
| 429 | `throttled` | Слишком много неверных ключей с одного адреса (30 в минуту) или, пока тарифы API не продаются, больше 50 запросов в секунду на организацию |
| 503 | `timeout` | Запрос не уложился во время — сузьте выборку |
| 503 | — | Сайт на обслуживании (обычно несколько минут): ответ — страница HTML, а не JSON; повторите позже |

!!! note
    При ответе 429 смотрите заголовок `Retry-After` — через сколько секунд можно повторить. Остаток запросов — в заголовках `X-RateLimit-*` и `X-Quota-*`: они приходят, когда лимиты тарифа действуют (у «Корпоративного» лимиты по договору — заголовков нет).

Какие ошибки бывают у конкретного метода — на его странице в [справочнике методов](/api/methods/).
