---
title: "Export Preflight"
method: GET
path: "/project/{project_id}/export/preflight"
tags: ["accepts-api-key"]
---

# Export Preflight

`GET /project/{project_id}/export/preflight`

## Request

- Base URL: `https://api.tellers.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tellers.ai/project/{project_id}/export/preflight`
- Auth: none declared

Check a project's source renditions before starting an export.

Always reports all four resolutions — 480p, 720p, 1080p and 4k — so the id
is the only thing to pass. Each says whether every asset already has the
rendition the render would read (``has_all_renditions``), which assets still
need one generated (``state`` ``needs_rendition`` or ``generating``, with the
``suggested_min_dimension`` to downscale to), and whether the render would
pull a 2K-or-larger input (``uses_2k_input``) — the thing that makes an
export slow even when nothing is missing.

Nothing is queued: an asset reported as ``needs_rendition`` stays that way
until a downscale is asked for. An export started regardless still renders —
``source_limited`` assets are upscaled, and ``missing`` ones are left out of
the playlist entirely, so their clips come out empty.

## Path parameters

- `project_id` string, uuid, required

## Headers

- `x-api-key` string, nullable
- `authorization` string, nullable

## Response `200`

Successful Response

- ExportPreflightResponse
  - `project_id` string, required
  - `duration_seconds` number, required
  - `asset_count` integer, required
  - `renditions` ExportRenditionPreflight[], required
    - `rendition` '480p' | '720p' | '1080p' | '4k', required
    - `min_dimension` integer, required
    - `has_all_renditions` boolean, required
    - `uses_2k_input` boolean, required
    - `needs_rendition_count` integer, required
    - `generating_count` integer, required
    - `source_limited_count` integer, required
    - `missing_count` integer, required
    - `estimated_rendition_cost_tellers_tokens` number, required
    - `assets` ExportAssetRenditionStatus[], required
      - `asset_id` string, required
      - `title` string, nullable
      - `file_type` 'video' | 'audio' | 'image' | 'text' | 'pdf' | 'lut' | 'font' | 'placeholder' | 'group_clip' | 'master_clip' | 'aaf' | 'proj_original' | 'folder' | 'project' | 'entity' | 'teller_config'
      - `state` 'ready' | 'needs_rendition' | 'generating' | 'source_limited' | 'missing' | 'not_applicable', required
      - `selected_width` integer, nullable
      - `selected_height` integer, nullable
      - `selected_is_original` boolean
      - `uses_2k_input` boolean
      - `suggested_min_dimension` integer, nullable
      - `estimated_cost_tellers_tokens` number
  - `renditions_needed_for_optimum_export` integer, required
  - `estimated_rendition_cost_tellers_tokens` number, required

## Other responses

- `422`: Validation Error

---

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