# Статус и скачивание

Источник: https://dev.smartpdf.ru/docs/tasks

## Статус

`GET /v1/tasks/{task_id}` — с тем же ключом, что запускал операцию.

```bash
curl https://api.smartpdf.ru/v1/tasks/$TASK_ID -H "X-API-Key: $SMARTPDF_API_KEY"
```

```json
{
  "task_id": "3f2c5b0e-8a41-4d7e-9c1f-5d0b8f2e7a64",
  "status": "done",
  "progress": 100,
  "estimated_seconds": null,
  "input_file_size": 792305,
  "output_file_size": 42841,
  "error": null,
  "stage": null
}
```

| Поле | Что значит |
|---|---|
| `status` | `pending`, `processing`, `done` или `failed` — см. [статусы задачи](https://dev.smartpdf.ru/docs/how-it-works). |
| `progress` | 0–100. У PDF в Word — по страницам во время обработки. |
| `stage` | Этап долгой операции, например «Читаем страницы: 12 из 40»; у остальных — `null`. |
| `input_file_size`, `output_file_size` | Размер исходника и результата в байтах — например, чтобы показать, насколько сжался файл. |
| `error` | Причина при `failed`, понятная человеку: неверный пароль, повреждённый PDF; у технических сбоев — `null`. |

Опрашивайте раз в 1–2 секунды: на опрос статуса с одного IP — до 120 запросов в минуту. Вместо опроса можно получать [вебхуки](https://dev.smartpdf.ru/docs/webhooks).

## Скачивание

`GET /v1/tasks/{task_id}/download` — ссылка на результат:

```json
{
  "download_url": "https://api.smartpdf.ru/v1/tasks/3f2c5b0e-…/file?token=…",
  "expires_at": "2026-10-05T12:00:00Z",
  "filename": "document_smartpdf.pdf"
}
```

Скачайте `download_url` обычным `GET` — ключ не нужен, доступ даёт токен в ссылке. Ссылка действует час (`expires_at`).

- **Бесплатный тариф** — ссылку можно получить один раз: повторный запрос `/download` вернёт `410`. Скачайте файл сразу.
- **Про и Бизнес** — новую ссылку можно запросить, пока результат хранится: 7 и 30 дней.

`/download` до завершения операции — `400`, после срока хранения — `410`.
