Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.compose.market/llms.txt

Use this file to discover all available pages before exploring further.

Video generation can complete synchronously or return a provider job ID. The API stores the job state and exposes polling and SSE status routes.
MethodPathDescription
POST/v1/videos/generationsSubmit a video generation.
GET/v1/videos/{id}Poll job status.
GET/v1/videos/{id}/streamStream job status over SSE.
POST/external/v1/videos/generationsExternal video submission.

Submit a job

{
  "model": "sora-2",
  "prompt": "A slow pan across a clean product dashboard",
  "duration": 5,
  "aspect_ratio": "16:9",
  "size": "1280x720",
  "image_url": "data:image/png;base64,..."
}
Accepted async response:
{
  "id": "provider-job-id",
  "object": "video.generation",
  "status": "queued",
  "model": "sora-2"
}

Stream status

GET /v1/videos/{id}/stream?pollIntervalMs=2000&timeoutMs=600000
The stream sends compose.video.status events and then [DONE].