# GET /api/v1/status/{job\_id}

## Purpose

Return the current state of a generation job created with the same API key. When `status` is `completed`, the response includes short-lived download URLs for `.pptx` output.

## Request

| Item            | Value                                                 |
| --------------- | ----------------------------------------------------- |
| Method and path | `GET {PERCEPTIS_API_BASE_URL}/api/v1/status/{job_id}` |
| Auth            | `Authorization: Bearer <api-key>`                     |
| Path parameter  | `job_id` from the generate response                   |

## Status values

| Status       | Meaning                                     |
| ------------ | ------------------------------------------- |
| `pending`    | The job has been accepted.                  |
| `processing` | The job is being generated.                 |
| `completed`  | The PowerPoint output is ready to download. |
| `failed`     | Generation failed. See the `error` object.  |

## Responses

| HTTP  | Meaning                                                                                                                                                                |
| ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `200` | Status payload returned.                                                                                                                                               |
| `401` | Missing, invalid, or revoked API key.                                                                                                                                  |
| `403` | Organization is not eligible for API access. Perceptis API usage requires a paid Business or Enterprise plan; Free, Starter, and trial organizations are not eligible. |
| `404` | Unknown job, or the job was not created with this API key.                                                                                                             |
| `429` | Polling too quickly. Use `Retry-After` and back off.                                                                                                                   |

Example completed response:

```json
{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "output_type": "single_slide",
  "downloads": [
    {
      "url": "https://app.perceptis.ai/downloads/550e8400-e29b-41d4-a716-446655440000.pptx?expires=3600&signature=...",
      "format": "pptx",
      "variant": 1
    }
  ],
  "error": null
}
```

Download URLs are short-lived. For completed jobs, poll this endpoint again whenever you need fresh links. Downloads can be refreshed while the generated files remain available, but only with the same API key that created the job.

## See also

* [Errors, rate limits, and billing](/perceptis-api-v1/errors-and-limits.md)
* [Quickstart: single slide](/perceptis-api-v1/quickstart-single-slide.md) (polling example)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.perceptis.ai/api-reference/get-status.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
