# Статус задачи

Базовый URL `https://api.accessful.de/api/v1/upload-service`. Каждому запросу нужен заголовок `X-API-Key` — см. [Аутентификация](https://docs.accessful.de/ru/authentication/).

```http
GET /job-status/{caseId}
```

**`200 OK`**

```json
{ "jobStatus": "completed", "stage": "finished", "score": 87 }
```

`score` — это качество доступности результата, **0–100** (окончательно после `completed`).
`404` возвращается для неизвестного `caseId`.

В ответе два независимых поля: **`jobStatus`** — это общий итог (используйте его,
чтобы определить, когда задача завершена), а **`stage`** — это детальная фаза
конвейера выполняющегося кейса, показывающая, *на каком этапе* он находится.

| `jobStatus` | Значение | |
| --- | --- | --- |
| `queued` | Ожидает в очереди. | |
| `running` | Обрабатывается в данный момент. | |
| `completed` | Готово — результат готов к скачиванию. | конечный |
| `failed` | Обработка не удалась. | конечный |
| `analyzer_failed` | Шаг анализа доступности не удался. | конечный |
| `canceled` | Задача была отменена. | конечный |
| `quota_pending` | Ожидает асинхронной проверки квоты. | |
| `quota_exceeded` | Отклонено — договорная квота исчерпана. | конечный |

При опросе останавливайтесь, как только `jobStatus` достигнет **конечного** состояния.

`stage` указывает фазу конвейера. `jobStatus: "completed"` всегда совпадает с
`stage: "finished"` — момент, когда `score` становится окончательным.

| `stage` | Значение |
| --- | --- |
| `queued` | Принято; ожидает первого анализа. |
| `analyzing` | Выполняется первоначальный анализ доступности. |
| `resolving` | Выполняется ИИ-исправление. |
| `revalidating` | Исправленный файл повторно анализируется; `score` пересчитывается. |
| `finished` | Готово — `score` отражает итоговый исправленный файл. |
| `failed` | Обработка остановлена из-за ошибки. |