Konergy
API Docs
Dashboard
  • Начало работы
  • Обзор

    Быстрый старт

  • API
  • Аутентификация

    Обработка ошибок

    Лимиты запросов

    Квоты и лимиты

  • Справочник API
  • Inference API

    Management API

  • Руководства
  • Чек-лист к продакшену

    Ротация ключей

    Обработка ошибок API

    Синхронный режим (Prefer: wait)

    Безопасность

    FAQ

  • Организации и биллинг
  • Организации

    Биллинг и цены

  • Журнал изменений
  • Все изменения

  • Справка
  • Глоссарий

    Поддержка

  1. Docs
  2. /
  3. Руководства

  4. /
  5. Обработка ошибок API

Обработка ошибок API

Правильная обработка ошибок Konergy API: retry-стратегии, backoff, debugging.

Формат ответа об ошибке

Все ошибки API возвращаются в стандартном формате:

{
  "request_id": "550e8400-e29b-41d4-a716-446655440000",
  "error": {
    "code": "PAYMENT_REQUIRED",
    "message": "Insufficient wallet balance. Please top up your wallet."
  }
}
Обработка по типам ошибок
401 Unauthorized

API-ключ невалиден, отозван или истёк. Проверьте правильность ключа. Если ключ недавно ротировался — убедитесь, что сервис использует новый ключ. Retry бесполезен.

402 Payment Required

Недостаточно средств на кошельке (PAYMENT_REQUIRED) или превышен spend limit организации (SPEND_LIMIT_EXCEEDED). Проверьте error.code для определения причины. Пополните кошелёк или увеличьте лимит. Retry бесполезен до устранения причины.

429 Rate Limited

Превышен лимит запросов в минуту. Используйте exponential backoff с учётом заголовка Retry-After. Не отправляйте запросы до истечения указанного периода.

503 Service Unavailable

Сервис временно недоступен. Retry с exponential backoff. Если ошибка сохраняется — проверьте страницу статуса.

Retry-логика (псевдокод)
async function callWithRetry(request, maxRetries = 3) {
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
    const response = await fetch(request);

    if (response.ok) return response;

    const status = response.status;

    // Non-retryable errors
    if ([401, 402, 403, 422].includes(status)) {
      throw new ApiError(status, await response.json());
    }

    // Retryable errors: 429, 500, 503
    if (attempt < maxRetries) {
      const retryAfter = response.headers.get('Retry-After');
      const delay = retryAfter
        ? parseInt(retryAfter, 10) * 1000
        : Math.min(1000 * 2 ** attempt, 30000);
      await sleep(delay);
    }
  }
  throw new Error('Max retries exceeded');
}
Использование request_id для отладки

Все ответы API содержат request_id. Логируйте его вместе с error.code и error.message — это ускоряет диагностику при обращении в поддержку.

const response = await fetch(url, options);
const body = await response.json();

if (!response.ok) {
  console.error('API error', {
    request_id: body.request_id,
    code: body.error?.code,
    message: body.error?.message,
  });
}
Ротация ключейСинхронный режим (Prefer: wait)

© 2026 Konergy

Основной сайтЛичный кабинет