---
title: Request status
description: "GET /v1/requests/{request_id}/status — check a generation's status."
---

Check the status of a previously submitted generation by its request_id.

## Playground

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

`GET /v1/requests/:id/status` returns the current generation status, queue position, and execution progress. The endpoint is available to any valid key — no scope required.

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

## Request

<TypeTable
  type={{
    id: { type: 'string', description: 'The request identifier (request_id, uuid) returned by submit.', 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>

**Response `200`**

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

<TypeTable
  type={{
    request_id: { type: 'string', description: 'Generation request identifier (uuid)' },
    status: { type: 'string', description: 'IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED, or CANCELED' },
    queue_position: { type: 'integer | null', description: 'Queue position for IN_QUEUE, otherwise null' },
    progress: { type: 'integer', description: 'Execution progress 0–100 (for IN_PROGRESS)' },
    logs: { type: 'string[]', description: 'Execution logs, if requested' }
  }}
/>

## Fetching the result

The same request without the `/status` suffix — `GET /v1/requests/:id` — returns the final result with an `output` field once the status is terminal, or `202` while the generation is still queued or running.

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

<Callout type="info" title="Which to use">
Use `/status` for lightweight progress polling. Fetch the actual result with media URLs via `GET /v1/requests/:id` (see the Result page). If you passed `webhook_url` at `submit`, you do not need to poll status at all.
</Callout>
