LootX

Ошибки и лимиты

Թարմացվել է 23 սեպտեմբերի, 2026 թ. Այս էջը PDF-ով

Формат ошибки, коды, лимиты запросов и правильная стратегия повторов.

Այս էջը դեռ թարգմանված չէ ձեր լեզվով — ցուցադրում ենք բնօրինակը։

Любая ошибка API возвращается одинаково — HTTP-кодом и телом:

JSON
{
  "error": {
    "code": "insufficient_balance",
    "message": "Недостаточно средств для открытия позиции",
    "details": { "required": "120.00", "available": "84.31" },
    "requestId": "req_01J8X…"
  }
}

Коды

HTTP code Что делать
400 invalid_request Починить тело запроса; повтор не поможет
401 unauthorized Проверить токен и его срок
401 bad_signature Пересчитать HMAC от сырого тела
403 scope_required У ключа нет нужного права
404 not_found Проверить идентификатор
409 duplicate_request Это не ошибка: requestId уже обработан
422 insufficient_balance Уменьшить объём
422 symbol_not_tradable Инструмент недоступен для торговли
429 rate_limited Подождать Retry-After, затем повторить
502 exchange_unavailable Биржа не отвечает — повторить с задержкой
503 maintenance Плановые работы, см. Retry-After

Повторы

TypeScript
async function withRetry<T>(fn: () => Promise<T>, tries = 5): Promise<T> {
  let lastError: unknown;
  for (let i = 0; i < tries; i++) {
    try {
      return await fn();
    } catch (e) {
      lastError = e;
      const status = (e as { status?: number }).status ?? 0;
      if (status && status < 500 && status !== 429) throw e; // чинить, а не повторять
      const base = Math.min(1000 * 2 ** i, 30_000);
      await new Promise((r) => setTimeout(r, base * (0.7 + Math.random() * 0.6)));
    }
  }
  throw lastError;
}