---
title: "Start a video export"
method: POST
path: "/v1/videos/{id}/exports"
tags: ["Videos"]
---

# Start a video export

`POST /v1/videos/{id}/exports`

## Request

- Base URL: `https://api.tella.com`
- URL: `https://api.tella.com/v1/videos/{id}/exports`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/withchima/apis/tella-public-api/docs/v1/videos/:id/exports/post.ts> (a function with typed inputs; its response is checked against the schema)

Starts an export of the specified video. Export processing is asynchronous: poll GET /v1/videos/{id}/exports/{exportId} for status and a download URL, or listen for the export.ready webhook. Creators and editors can always export. Viewers can only start an export if the video's download settings allow it: `video` and `clips` granularity require downloads to be enabled; `tracks` and `raw` require both downloads and raw downloads to be enabled.

## Path parameters

- `id` string, required: Unique video identifier

## Request body

- ExportVideoRequest: Request body for exporting a video
  - `fps` '30' | '60': Frames per second. 60 FPS requires the video creator's Premium plan (including Enterprise Premium), or Pro (including Enterprise) for videos up to 5 minutes after cuts. Not available during a free trial.
  - `granularity` 'video' | 'clips' | 'tracks' | 'raw': Export granularity: video (full video), clips (one composed file per clip), tracks (camera and screen files per clip with timeline cuts applied), raw (original recordings without cuts)
  - `resolution` '1080p' | '4k': Export resolution. Default is 1080p. 4K requires the video creator's paid plan and is not available during a free trial.
  - `speed` '1' | '2' | '0.5' | '0.75' | '0.8' | '0.9' | '1.1' | '1.2' | '1.25' | '1.3' | '1.35' | '1.5' | '1.7' | '1.75' | '2.5': Playback speed multiplier. Any speed other than 1 requires the video creator's paid plan and is not available during a free trial.
  - `subtitles` boolean: Burn subtitles into the video

## Response `200`

OK

- ExportVideoResponse: Response containing export status
  - `export` ExportStatus, required: Status of a video export job
    - `downloadUrl` string, uri, nullable, required: Download URL when export is completed, null otherwise
    - `exportId` string, required: Unique identifier for the export job
    - `progress` number, nullable, required: Export progress percentage (0-100), null if not started
    - `status` 'queued' | 'running' | 'completed' | 'failed', required: Current export status
    - `updatedAt` string, date-time, required: ISO 8601 datetime of last status update

## Other responses

- `400`: The request was malformed or contained invalid parameters.
- `401`: Authentication is required. Provide a valid API key.
- `403`: You don't have permission to access this resource.
- `404`: The requested resource was not found.
- `409`: The request conflicts with the resource's current state, e.g. an Idempotency-Key whose first request is still in progress. Retry once it settles.
- `429`: You have exceeded the rate limit. Please slow down.
- `500`: An unexpected error occurred
- `501`: The requested operation is not implemented.
- `503`: A dependency was unavailable and the request was not executed. Safe to resend unchanged after the Retry-After delay.

## Changes

> 72 revisions in range; 1 not diffed.

- **2026-11-07** `0cc3fcd307ad`: 8 info
  - added the new `0.8` enum value to the request property `speed`
  - added the new `0.9` enum value to the request property `speed`
  - added the new `1.1` enum value to the request property `speed`
  - added the new `1.2` enum value to the request property `speed`
  - …4 more
- **2026-09-28** `ac47c99c144f`: 9 warning
  - added the new `edit_conflict` enum value to the `error` response property for the response status `400`
  - added the new `edit_conflict` enum value to the `error` response property for the response status `401`
  - added the new `edit_conflict` enum value to the `error` response property for the response status `403`
  - added the new `edit_conflict` enum value to the `error` response property for the response status `404`
  - …5 more
- **2026-09-09** `6b1132ef42fb`: 14 warning, 2 info
  - added the new `conflict` enum value to the `error` response property for the response status `400`
  - added the new `conflict` enum value to the `error` response property for the response status `401`
  - added the new `conflict` enum value to the `error` response property for the response status `403`
  - added the new `conflict` enum value to the `error` response property for the response status `404`
  - …12 more

[Operation history](https://skmtc.dev/withchima/apis/tella-public-api/changes/v1/videos/:id/exports/post.md)

---

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