Videos

Create a video (async)

Starts a video generation. Premium accounts are charged credits atomically and rendering starts immediately (status: "processing"). Free accounts receive a one-time preview (status: "preview") with an upgrade link instead of a render.

Send an Idempotency-Key header so network retries can never create or charge a duplicate video. Identical concurrent requests without one are rejected with 409 duplicate_request.

post/v1/videos

Request

Headers

Idempotency-Keystring

Client-chosen key; retries with the same key replay the original response instead of creating a duplicate video.

Request body

OR

Example request

{
  "model": "veo31_fast"
}

Response

Video accepted (processing) or free preview created.

idstring
objectstring
mode'auto' | 'manual'
modelstring
status'queued' | 'processing' | 'completed' | 'failed' | 'preview'
namestring
folder_idstring
created_atstring
credits_chargednumber
poll_interval_secondsinteger
video_urlstring

Present when status=completed.

video_url_no_captionsstring
caption_urlstring
thumbnail_urlstring
duration_secondsnumber

Example response

{
  "object": "video",
  "model": "veo31_fast",
  "poll_interval_seconds": 5,
  "error": {
    "code": "generation_failed"
  },
  "preview": {
    "upgrade_url": "https://app.vivideo.ai/upgrade"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.