Videos

Create a video generation job

Creates a video generation job using the OpenAI-compatible Videos API. Mirrors the OpenAI POST /v1/videos request body. Video generation is asynchronous at every provider: this operation returns a VideoJob immediately, the client polls GET /videos/{video_id} until status is completed, then downloads the bytes from GET /videos/{video_id}/content.

The request is sent as multipart/form-data so reference media can be uploaded as binary. The non-standard audio field drives a talking-avatar render: when present, the model lip-syncs input_reference to the clip and the video lasts as long as the audio.

Not every provider implements the Videos API. Requests routed to a provider that does not support it return 400 Bad Request with an explanatory error message.

post/videos

Query parameters

provider'ollama' | 'ollama_cloud' | 'groq' | 'llamacpp' | 'openai' | 'cloudflare' | 'cohere' | 'anthropic' | 'deepseek' | 'elevenlabs' | 'google' | 'mistral' | 'minimax' | 'moonshot' | 'nvidia' | 'zai'

Specific provider to use (default determined by model)

Response

The created video generation job.

idstring required

Identifier of the video generation job. Opaque to clients - it may encode the provider - and must be sent back verbatim to GET /videos/{video_id}.

object'video' required

The object type, which is always video.

modelstring required

The model used to generate the video.

status'queued' | 'in_progress' | 'completed' | 'failed' required

Current status of the job.

progressinteger

Completion percentage of the render.

created_atinteger required

Unix timestamp (in seconds) of when the job was created.

completed_atinteger nullable

Unix timestamp (in seconds) of when the job finished, null while it is still running.

secondsstring

Duration of the generated video in seconds, as a string.

sizestring

Resolution of the generated video as widthxheight.

Changes