---
title: "Get an export job"
method: GET
path: "/v1/projects/{id}/exports/{exportId}"
tags: ["exports"]
---

# Get an export job

`GET /v1/projects/{id}/exports/{exportId}`

## Request

- Base URL: `https://api.cueframe.ai`
- URL: `https://api.cueframe.ai/v1/projects/{id}/exports/{exportId}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.cueframe.ai/api/auth/mcp/authorize`, token URL `https://api.cueframe.ai/api/auth/mcp/token`, scopes: `renders:read`)
  - API key in header `PAYMENT-SIGNATURE`

Required permission: renders:read

## Path parameters

- `id` string, required
- `exportId` string, required

## Response `200`

Export job.

- ExportResponse: NLE export job response.
  - `id` string, required
  - `format` 'fcpxml' | 'premiere', required
  - `status` 'queued' | 'trimming' | 'building' | 'uploading' | 'reconciliation_required' | 'complete' | 'error' | 'cancelled', required
  - `progress` number, required: Fractional progress 0..1 across the trim/build/upload pipeline. Reaches 1 only on `complete`.
  - `outputUrl` string, nullable, required
  - `outputExpiresAt` string, nullable, required
  - `outputSizeBytes` number, nullable, required
  - `outputDurationSec` number, nullable, required
  - `error` ExportError, required
    - `phase` 'trim' | 'build' | 'upload' | 'trigger', required
    - `message` string, required
    - `detail` string
    - `retryable` boolean, required
  - `trimCacheHit` boolean, nullable, required
  - `clipSuggestionId` string, nullable, required
  - `createdAt` string, required
  - `updatedAt` string, required

## Other responses

- `400`: Bad request — validation_error / invalid_cursor / invalid_query.
- `401`: Missing or invalid Authorization header.
- `402`: Payment required. Returned when the caller presents no API key on a priced operation: the body AND the `Payment-Required` header carry the x402 v2 challenge (accepted scheme, network, USDC asset, amount, payTo). Sign the EIP-3009 authorization and retry with a `PAYMENT-SIGNATURE` header. A KEYED caller sees this status instead when their plan lacks or has exhausted the feature (`billing_required`).
- `403`: Forbidden — permission insufficient.
- `404`: Resource not found.
- `422`: Unprocessable — invalid_composition / media_in_use / session_in_use / render_not_cancellable.
- `429`: Rate limited. Retry-After header present.
- `500`: Internal error.

---

[API](https://skmtc.dev/cueframe/apis/cueframe-api.md) · [All operations](https://skmtc.dev/cueframe/apis/cueframe-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cueframe/apis/cueframe-api/revisions/8f9bfe362b4a?raw)
