# Задания и повторы

## Проверьте статус

`GET /v1/jobs` возвращает до 50 заданий владельца ключа в его проекте. Для продолжения передайте `after=next_cursor`. `GET /v1/jobs/ID` возвращает одно задание. Нужен ключ с правом `jobs:read`.

Сохраните ID из ответа на генерацию в `KVANTORA_JOB_ID`. Запрос ниже только читает статус и не запускает генерацию повторно.

```bash
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 означает, что списание не подтверждено; не считайте его нулевой стоимостью.

## Получите результат или отмените задание

После `succeeded` используйте `output.file_id` по [инструкции для файлов](/docs/files.md). До этого состояния не считайте результат готовым. При `unknown` продолжайте проверять прежнее задание и сохраняйте его ID для поддержки.

POST /v1/jobs/ID/cancel отменяет только задание до отправки запроса модели. После возможной платной отправки ответ 409; это не повод повторять генерацию с новым ID. Повтор отмены безопасен.

Сервис сохраняет результат и связь с приватным файлом. После перезапуска он продолжает проверять то же задание, не отправляя платный запрос заново. Подробнее об уведомлениях: [webhooks](/docs/webhooks.md).
