Skip to content

Veo video generation

Veo submits async video tasks through an OpenAI-style endpoint and returns a task object with id, status, and progress. Poll results with the task query endpoint.

http
POST /v1/videos

Submission is async: create success does not mean generation is finished. Poll with the returned task ID, then read the video URL from the result when complete.

Available models

Headers

NameTypeRequiredDescription
stringYesRequest authentication. Use a Bearer Token, for example:
stringYesRequest content type. Must be set to

Request body

NameTypeRequiredDescription
stringYesModel name
stringYesPrompt describing the video to generate
stringNoSize string. Common values are or ; used to derive Veo resolution and aspect ratio
string | integerNoTarget duration. Submit via ; the gateway also accepts and
string | array<string>NoReference image input. JSON requests may use URL, base64, or Data URI; the Veo adapter also supports multipart file upload
objectNoExtended config. The Veo path maps it to upstream ,,, and related fields
booleanNoHD upscale. Note: not a common top-level DTO field; prefer and for clarity or resolution

Request example

bash
curl -X POST https://octopusx.ai/v1/videos \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "veo_3_1-fast",
  "prompt": "Dancing in the center of the square",
  "size": "720x1280",
  "seconds": "8",
  "input_reference": "data:image/png;base64,BASE64_IMAGE"
}'

Response example

json
{
  "id": "video_abc123",
  "object": "video",
  "model": "veo_3_1-fast",
  "status": "queued",
  "progress": 0,
  "created_at": 1735689600,
  "seconds": "8",
  "size": "720x1280"
}

Response fields

NameTypeDescription
stringTask ID for later polling
stringAlways
stringModel actually used
stringTask status, commonly ,,
integerProgress 0–100
integerCreation timestamp
stringRequested duration
stringRequested size

Generation rules

ItemRule
Request formatJSON
Reference image formatSupports URL, base64, and Data URI; also compatible with multipart files
Image-to-video modeAspect ratio is forced to
Parameter mapping is further mapped to Veo and

Other formats and modes

Remix (/v1/videos/{video_id}/remix)

Submit a new remix task from a completed or available Veo task; the response is still an OpenAI-style video object. Path parameter is the source video task ID; the JSON body must include (a common remix example is ; check what your channel currently supports) and . The new task response sets to the source video ID.