---
title: "Presign Export Tellers Otio"
method: POST
path: "/project/{project_id}/export_tellers_otio/presign"
tags: ["accepts-api-key"]
---

# Presign Export Tellers Otio

`POST /project/{project_id}/export_tellers_otio/presign`

## 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_tellers_otio/presign`
- Auth: none declared

Presign the URLs of the timeline in the body again, as ``export_tellers_otio`` does.

For a client export that outlives its presigned URLs: it re-signs the
timeline it started with, not the project as it is now — media removed
from the project meanwhile is still re-signed, as long as the caller can
still view the asset. Same rules as ``export_tellers_otio`` otherwise: the
caller needs view rights on the project, and an asset it cannot view keeps
the URL it was sent with. Nothing is saved.

## Path parameters

- `project_id` string, uuid, required

## Query parameters

- `input_rendition` '480p' | '720p' | '1080p' | 'original' | 'highest' | 'lowest': Rendition passed to presign selection (highest player-compatible transcodes, etc.).
- `presign_expires_in` integer: S3 presigned GET lifetime in seconds (minimum 1 hour).
- `use_redirect_urls` boolean: When true, write clip target_url as /asset/url/{asset_id} redirect links instead of direct presigned URLs.

## Headers

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

## Request body

- object: A timeline previously returned by export_tellers_otio for this project, as the caller kept it.

## Response `200`

Successful Response

- object

## 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)
