ТЭ Тэрил

Документация API

Отказы

Все отказы одной формы. Решение принимайте по code; message написан по-русски для человека, который будет читать ваш журнал, и может меняться.

{ "ok": false, "error": {
  "code": "quota_exceeded",
  "message": "Монеты на этот период кончились (израсходовано 1000 из 1000)…",
  "details": { "reason": "out_of_coins" } } }

details есть не у всех отказов.

КодHTTPЧто случилосьЧто делать
unauthorized401Нет ключа, ключ неверен или отозванНе повторять. Проверить ключ у мебельной компании
forbidden403Рабочее место в /handoff не принадлежит этой учётной записиНе повторять. Уточнить название места
not_found404Нет такого разговора, хода или ссылки; либо в разговоре ещё ничего не собраноНе повторять вслепую
invalid_request400Тело не по договору: пустой text, битый b64, больше двух картинокНе повторять. Чинить запрос
conflict_busy409По разговору уже идёт ход; либо ход, который просят остановить, уже кончилсяДождаться вебхука. Повторять просьбу не надо
quota_exceeded402Кончились монеты или подпискаНе повторять. Сообщить мебельной компании
payload_too_large413Картинка больше 5 МБПережать картинку
rate_limited429Слишком много ходов идёт разомПовторить через минуту
png_unsupported501Запрошен format=pngВзять svg и сконвертировать у себя
internal500Беда на нашей сторонеПовторить один раз через минуту; не прошло — написать нам

Повторять или нет

Повторять имеет смысл только rate_limited, internal и сетевые обрывы. Всё остальное повтором не лечится: 401 не станет 200 от третьей попытки, а 409 означает, что работа уже идёт.

Повторяя POST /turns после обрыва сети, обязательно шлите тот же Idempotency-Key: иначе вы купите второй ход за те же деньги.

Подробности у quota_exceeded

"details": { "reason": "out_of_coins" }
reasonЧто это значит
out_of_coinsМонеты периода кончились; можно добрать пакетом
period_overПериод кончился, подписка не продлена
canceledПодписка отменена
no_subscriptionУ учётной записи нет подписки вовсе

Всё это чинится в кабинете мебельной компании, а не вами: вы можете только показать, что работа встала, и кому об этом сказать.

Отказ — не то же, что неудачный ход

Отказ приходит синхронно, кодом HTTP, и означает, что ход не начался. Неудачный ход приходит вебхуком со status: "failed" и означает, что работа шла, но не сошлась. Деньги в первом случае не тратятся вовсе, во втором — тоже не тратятся, но время потрачено.

Эта страница разметкой: /docs/api/errors.md · вся документация одним файлом: /llms-full.txt