Skip to main content
Tasks are AI operations you submit on their own, rather than as part of a composition. There is currently one: TranscribePOST /v1/tasks/transcribe — speech-to-text with word-level timestamps and speaker labels, backed by AssemblyAI. Everything else Framelane does — compositing, effects, motion, captions, encoding — happens inside a render.

How tasks work

Tasks follow the same async pattern as renders:
  1. Submit a POST /v1/tasks/{type} request
  2. Receive 202 Accepted with a task_* job ID
  3. Wait for the task.completed webhook (or poll GET /v1/tasks/{id}, or hold one request open with GET /v1/tasks/{id}?wait=60)
  4. Read the result from the completed job
Where the result lives depends on the task type: transcribe — the only task type today — returns data, so its output is null and /download answers 404. See Transcribe. The task.completed webhook carries status, metadata and error only — never the result body. Fetch the task when it fires.

Common fields

Every task body accepts these optional fields:

Idempotency

Task endpoints accept the same Idempotency-Key header as renders.

Endpoints