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.