> ## Documentation Index
> Fetch the complete documentation index at: https://developers.cuttr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Job Status

> Poll a clip job for progress and download links

Check the status of a clip job. When all clips are finished, the response includes permanent download URLs for each clip.

### Headers

<ParamField header="X-API-Key" type="string" required>
  Your API key.
</ParamField>

### Path parameters

<ParamField path="jobId" type="string" required>
  The `job_id` (UUID) returned from [Create Clip](/api-reference/endpoint/create-clip).
</ParamField>

### Response

When the job is still processing:

<ResponseField name="job_id" type="string">
  The job identifier (UUID).
</ResponseField>

<ResponseField name="status" type="string">
  `"processing"` while clips are being generated.
</ResponseField>

<ResponseField name="progress" type="object">
  Progress information.

  <Expandable title="properties">
    <ResponseField name="progress.completed" type="integer">
      Number of clips finished so far.
    </ResponseField>

    <ResponseField name="progress.total" type="integer">
      Total number of clips in the job.
    </ResponseField>
  </Expandable>
</ResponseField>

When all clips are finished:

<ResponseField name="job_id" type="string">
  The job identifier (UUID).
</ResponseField>

<ResponseField name="status" type="string">
  `"completed"` when all clips are done.
</ResponseField>

<ResponseField name="clips" type="object[]">
  Array of clip results.

  <Expandable title="properties">
    <ResponseField name="clips[].clip_id" type="integer">
      Individual clip identifier.
    </ResponseField>

    <ResponseField name="clips[].status" type="string">
      `"completed"` or `"failed"`.
    </ResponseField>

    <ResponseField name="clips[].title" type="string">
      AI-generated clip title (when completed).
    </ResponseField>

    <ResponseField name="clips[].heading" type="string">
      AI-generated viral heading text (when `auto_heading` was enabled). This text appears as a heading overlay on the clip.
    </ResponseField>

    <ResponseField name="clips[].download_url" type="string">
      Presigned download URL (when completed). Valid for 7 days.
    </ResponseField>

    <ResponseField name="clips[].error" type="string">
      Error message (when failed).
    </ResponseField>

    <ResponseField name="clips[].created_at" type="string">
      ISO 8601 timestamp.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Processing theme={null}
  {
    "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "processing",
    "progress": {
      "completed": 1,
      "total": 3
    }
  }
  ```

  ```json Completed theme={null}
  {
    "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "completed",
    "clips": [
      {
        "clip_id": 1234,
        "status": "completed",
        "title": "The Best Moment",
        "heading": "YOU WON'T BELIEVE THIS",
        "download_url": "https://clipster-videos-prod.s3.us-west-2.amazonaws.com/generated-clips/...",
        "created_at": "2026-02-16T12:00:00.000Z"
      },
      {
        "clip_id": 1235,
        "status": "completed",
        "title": "Key Insight",
        "heading": "GAME CHANGING STRATEGY",
        "download_url": "https://clipster-videos-prod.s3.us-west-2.amazonaws.com/generated-clips/...",
        "created_at": "2026-02-16T12:00:00.000Z"
      }
    ]
  }
  ```

  ```json Failed theme={null}
  {
    "job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "completed",
    "clips": [
      {
        "clip_id": 1236,
        "status": "failed",
        "error": "Failed to process video",
        "created_at": "2026-02-16T12:00:00.000Z"
      }
    ]
  }
  ```
</ResponseExample>
