Video generation API
Image-to-video, first and last frame, reference images, avatars and lip-sync over one asynchronous /v1/videos API, priced per second of output in USD.
Every video model runs on the same asynchronous endpoint, POST /v1/videos: create a task, poll it, download the file. A 202 response means the task was accepted, not that the video is ready. Prices are per second of output in USD and shown in the model directory; failed and cancelled tasks are not charged.
What the lineup covers
Image to videoAnimate a still with a prompt. Pass the first frame as image.
First & last frameAdd last_frame on models that support it to control where the shot ends.
Reference imagesKeep characters and products consistent with reference_images on models that take references.
Avatars & lip-syncA portrait or video of one person plus a voice track gives a talking clip.
Video toolsUpscale and restyle existing videos on the same endpoint.
Video models and prices · Image models for first frames
How a task runs
- Optional: get a price first with dry_run: true.
- Create a task with an Idempotency-Key header so a retry never creates a second video:
POST /v1/videos - Poll the status every 5 to 15 seconds:
GET /v1/videos/{id} - Download the result:
GET /v1/videos/{id}/content
Video generation guideInputs per mode, avatar and tool models, limits, pricing and errors.
Read the guideAI short drama