---
title: Статус запроса
description: GET /v1/requests/{request_id}/status — лёгкий опрос статуса и прогресса генерации по request_id; отдельное право ключа для него не требуется.
icon: Activity
---

Проверьте статус поставленной генерации по её `request_id`. Запрос лёгкий и подходит для частого опроса, если вы не используете вебхук.

## Песочница

<Callout type="info" title="Для проб — тестовый ключ">
В форму ниже вставляйте ключ `clipia_test_…`: он не списывает кредиты и не вызывает модели, а ответ приходит в том же формате. Форма запоминает ключ в этом браузере, поэтому боевой `clipia_live_…` — серверный секрет — в неё не вводите. Подробнее — [«Тестовый режим»](/ru/docs/getting-started/sandbox).
</Callout>

<ApiPlayground path="/v1/requests/{request_id}/status" method="get" />

`GET /v1/requests/:id/status` возвращает текущий статус генерации и, если он известен, прогресс выполнения. Хватит любого действующего ключа того же аккаунта — отдельное право не нужно.

<Method name="GET" path="/v1/requests/:id/status" />

## Запрос

<TypeTable
  type={{
    id: { type: 'string', description: 'request_id из ответа на отправку: UUID или идентификатор с префиксом cmp_ или prs_ для сборки видео и презентаций из MCP.', required: true }
  }}
/>

<Tabs items={['cURL', 'TypeScript', 'Python']}>
<Tab value="cURL">

```bash
curl https://api.clipia.ai/v1/requests/764cabcf-b745-4b3e-ae38-1200304cf45b/status \
  -H "Authorization: Bearer $CLIPIA_KEY"
```

</Tab>
<Tab value="TypeScript">

```ts
const status = await clipia.queue.status('764cabcf-b745-4b3e-ae38-1200304cf45b');
console.log(status.status, status.progress);
```

</Tab>
<Tab value="Python">

```python
status = client.status("764cabcf-b745-4b3e-ae38-1200304cf45b")
print(status.status, status.progress)
```

</Tab>
</Tabs>

**Ответ `200`**

```json
{
  "request_id": "764cabcf-b745-4b3e-ae38-1200304cf45b",
  "status": "IN_PROGRESS",
  "queue_position": 0,
  "progress": 45
}
```

<TypeTable
  type={{
    request_id: { type: 'string', description: 'Идентификатор запроса' },
    status: { type: 'string', description: 'IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED или CANCELED' },
    queue_position: { type: 'integer', description: 'Устарело: всегда 0, позиция в очереди не считается. Поле сохранено для совместимости; ориентируйтесь на status и progress' },
    progress: { type: 'integer', description: 'Прогресс 0–100. Поля нет, если прогресс неизвестен: не все модели его сообщают' },
    warnings: { type: 'array', description: '[{ code, parameter, message }] — параметры, от которых сервер отступил при исполнении, например audio_dropped: ролик создаётся без звука. Поля нет, когда предупреждать не о чем. Подробнее — в «Результате генерации»' }
  }}
/>

## Ошибки

| HTTP | `code` | `message` | Когда |
|------|--------|-----------|-------|
| 400 | `invalid_request` | `invalid_request_id` | идентификатор не похож на `request_id` |
| 404 | `not_found` | `request_not_found` | запроса нет или он принадлежит другому аккаунту |

<Callout type="info" title="Когда что использовать">
`/status` удобен для частого опроса. Ссылки на медиа забирайте через [`GET /v1/requests/:id`](/ru/docs/api-reference/result). Если при отправке передан `webhook_url`, опрашивать статус не нужно — см. [«Вебхуки»](/ru/docs/api-reference/webhooks). Опрашивайте не чаще раза в секунду: запросы считаются в общем [лимите](/ru/docs/api-reference/rate-limits).
</Callout>
