Ошибки API используют единый JSON-формат:

{
  "message": ["Human-readable detail"],
  "error": "Error name",
  "statusCode": 400
}

В программной логике опирайтесь на HTTP-статус и контракт метода, а не на точный текст message.

Коды состояния

СтатусЗначение
400Неверные входные данные, недоступная операция или недопустимое состояние ресурса
401API-ключ отсутствует, неверен, некорректно оформлен или не связан с организацией
404Указанный ресурс не найден
409Ресурс уже существует
429Достигнут лимит запросов; повторите запрос позже с задержкой
500Неожиданная ошибка сервера

ID запросов

Каждый ответ содержит заголовок x-request-id. Записывайте его вместе с методом, путём, временем и статусом запроса. Передавайте его поддержке, чтобы запрос можно было найти без раскрытия учётных данных.

Политика повторов

Повторяйте ответы 429 и временные ошибки 5xx с ограниченной экспоненциальной задержкой и джиттером. Учитывайте Retry-After, если он присутствует.

const retryable = response.status === 429 || response.status >= 500;
const delayMs = Math.min(30_000, 500 * 2 ** attempt) + Math.random() * 250;

Не повторяйте ошибки валидации, аутентификации или отсутствующего ресурса без изменения запроса либо учётных данных.