Skip to main content
Use the Video API to create asynchronous video generation tasks, poll their status, and download the completed MP4 file. Video endpoints use the same base URL and Bearer token authentication as the rest of the LLM7 API.

Discover video models

List the live model catalog:
Video-capable models have model_type: "video", pricing_mode: "second", modalities.output: ["video"], and capabilities.video_generation: true.
Use these fields to validate seconds, size, and reference-image limits before creating a task.

Create a text-to-video task

Send JSON to POST /videos when the request has no reference images.

Request fields

The response contains the asynchronous task ID:

Create an image-to-video task

Use multipart/form-data when sending reference images. Send each reference image with the repeated field name input_reference.
For multiple references:
Reference image count must not exceed 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

Poll GET /videos/{id} until the task reaches completed or failed.
Possible statuses: Only the same authenticated user who created the task can poll it.

Download the completed video

After the task is completed, download the MP4 bytes from GET /videos/{id}/content.
Successful responses return 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:
  • seconds must be listed in capabilities.supported_seconds.
  • size, if provided, must be listed in capabilities.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_image is true, at least one input_reference is required.
  • Use JSON only when there are no reference images.
  • Use multipart/form-data when reference images are present.
Video generation is billed asynchronously with a hold. On POST /v1/videos, the full cost is reserved:
If the video completes successfully, the hold is consumed and the user is charged even if the client never polls the task. If the upstream task fails or task creation is not accepted, the hold is released.