Discover video models
List the live model catalog:model_type: "video", pricing_mode: "second", modalities.output: ["video"], and capabilities.video_generation: true.
seconds, size, and reference-image limits before creating a task.
Create a text-to-video task
Send JSON toPOST /videos when the request has no reference images.
Request fields
The response contains the asynchronous task ID:
Create an image-to-video task
Usemultipart/form-data when sending reference images. Send each reference image with the repeated field name input_reference.
capabilities.max_reference_images, and each file must not exceed capabilities.max_reference_image_bytes. If capabilities.requires_reference_image is true, include at least one input_reference.
Poll task status
PollGET /videos/{id} until the task reaches completed or failed.
Only the same authenticated user who created the task can poll it.
Download the completed video
After the task iscompleted, download the MP4 bytes from GET /videos/{id}/content.
Content-Type: video/mp4 with binary MP4 bytes. If the task is not completed yet, the endpoint returns an error.
Validation and billing
Validation is based on the selected model record from/v1/models:
secondsmust be listed incapabilities.supported_seconds.size, if provided, must be listed incapabilities.supported_sizes.- Reference image count must not exceed
capabilities.max_reference_images. - Each reference image must not exceed
capabilities.max_reference_image_bytes. - If
capabilities.requires_reference_imageistrue, at least oneinput_referenceis required. - Use JSON only when there are no reference images.
- Use
multipart/form-datawhen reference images are present.
POST /v1/videos, the full cost is reserved:
