Медиа и файлы
Задания и повторы
Статус, отмена, восстановление и списание.
Проверьте статус
GET /v1/jobs возвращает до 50 заданий владельца ключа в его проекте. Для продолжения передайте after=next_cursor. GET /v1/jobs/ID возвращает одно задание. Нужен ключ с правом jobs:read.
Сохраните ID из ответа на генерацию в KVANTORA_JOB_ID. Запрос ниже только читает статус и не запускает генерацию повторно.
curl "$KVANTORA_BASE_URL/v1/jobs/$KVANTORA_JOB_ID" \
-H "Authorization: Bearer $KVANTORA_API_KEY"| status | Что происходит |
|---|---|
| queued | Принято, средства зарезервированы |
| running | Отправлено или ожидает внешнего результата |
| storing | Результат сохраняется и проверяется |
| succeeded | Приватный результат и списание подтверждены |
| cancelled | Отменено до отправки, резерв освобождён |
| failed | Задание завершилось ошибкой; проверяйте billing |
| unknown | Исход отправки или доставки результата уточняется; без результата резерв вернётся на баланс автоматически |
Billing содержит estimated_cost_microrub и cost_microrub. Null в cost_microrub означает, что списание не подтверждено; не считайте его нулевой стоимостью.
Восстановление потерянного результата
Если модель уже ответила, а результат не дошёл до вас (сбой хранилища или проверки файла, истёкшая ссылка), платформа восстанавливает его сама из сохранённых данных и повторного опроса того же задания. Платная генерация второй раз не отправляется, повторять запрос не нужно. Пока идёт восстановление, в задании есть поле recovery (status: recovering, attempts, next_attempt_at, deadline_at), а списания нет.
Если срок восстановления вышел (до часа для изображений, звука и текста, до трёх часов для видео и 3D), деньги возвращаются автоматически. Задание получает status: failed, error.code: result_not_delivered и billing.status: released: результат не доставлен по вине платформы, платить за него не нужно.
Платите только за то, что получили. Если вы заказали 10 изображений, а доставлено 9, спишется стоимость 9 по тарифу карточки, а остаток резерва вернётся на баланс в той же операции. Если не доставлено ничего, резерв возвращается полностью.
Получите результат или отмените задание
После succeeded используйте output.file_id по инструкции для файлов. До этого состояния не считайте результат готовым. При unknown продолжайте проверять прежнее задание и сохраняйте его ID для поддержки.
POST /v1/jobs/ID/cancel отменяет только задание до отправки запроса модели. Если резерв истёк до отправки (через 15 минут), задание само становится cancelled с error.code: request_expired. После возможной платной отправки ответ 409; это не повод повторять генерацию с новым ID. Повтор отмены безопасен.
Сервис сохраняет результат и связь с приватным файлом. После перезапуска он продолжает проверять то же задание, не отправляя платный запрос заново. Подробнее об уведомлениях: webhooks.