Theme
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/videosSubmission 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
| Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | Request authentication. Use a Bearer Token, for example: | |
| string | Yes | Request content type. Must be set to |
Request body
| Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | Model name | |
| string | Yes | Prompt describing the video to generate | |
| string | No | Size string. Common values are or ; used to derive Veo resolution and aspect ratio | |
| string | integer | No | Target duration. Submit via ; the gateway also accepts and | |
| string | array<string> | No | Reference image input. JSON requests may use URL, base64, or Data URI; the Veo adapter also supports multipart file upload | |
| object | No | Extended config. The Veo path maps it to upstream ,,, and related fields | |
| boolean | No | HD 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
| Name | Type | Description |
|---|---|---|
| string | Task ID for later polling | |
| string | Always | |
| string | Model actually used | |
| string | Task status, commonly ,, | |
| integer | Progress 0–100 | |
| integer | Creation timestamp | |
| string | Requested duration | |
| string | Requested size |
Generation rules
| Item | Rule |
|---|---|
| Request format | JSON |
| Reference image format | Supports URL, base64, and Data URI; also compatible with multipart files |
| Image-to-video mode | Aspect 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.