POST
https://octopusx.ai
/
v1
/
video
/
create
Create Video
curl --request POST \
  --url https://octopusx.ai/v1/video/create \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "images": [
    {}
  ],
  "model": "<string>",
  "orientation": "<string>",
  "prompt": "<string>",
  "size": "<string>",
  "duration": 123,
  "aspect_ratio": "<string>",
  "enable_upsample": true
}
'
{
  "id": "video_8b8232a3-847b-40e2-a3a3-912813b7ac60",
  "object": "video",
  "model": "veo3.1-fast-components",
  "status": "queued",
  "progress": 0,
  "created_at": 1768489641,
  "size": "1280x720",
  "detail": {
    "input": {
      "aspect_ratio": "16:9",
      "images": [
        "https://example.com/frame-1.png",
        "https://example.com/frame-2.png"
      ],
      "model": "veo3.1-fast-components",
      "prompt": "The cow flew into the sky"
    }
  },
  "status_update_time": 1768489641
}

Create Video

The Veo unified video entry point uses POST /v1/video/create, and the request body is JSON. Unlike OpenAI-format Veo video generation, this endpoint uses fields such as images, orientation, and aspect_ratio to represent reference images and aspect ratio.
  • The route entry point is POST /v1/video/create.
  • Reference images are passed as a list of URLs through the images array.
  • Common model examples include veo3.1-fast-components; use the models actually available in the current channel as the reference.
  • After a successful submission, a task object containing id, status, and progress is returned. Use Query Task to poll for the result afterward.

Method and Path

POST /v1/video/create

Request Example

curl -X POST https://octopusx.ai/v1/video/create \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "prompt": "The cow flew into the sky",
    "model": "veo3.1-fast-components",
    "images": [
      "https://example.com/frame-1.png",
      "https://example.com/frame-2.png"
    ],
    "orientation": "landscape",
    "size": "1280x720",
    "duration": 8,
    "aspect_ratio": "16:9",
    "enable_upsample": false
  }'

Response Example

{
  "id": "video_8b8232a3-847b-40e2-a3a3-912813b7ac60",
  "object": "video",
  "model": "veo3.1-fast-components",
  "status": "queued",
  "progress": 0,
  "created_at": 1768489641,
  "size": "1280x720",
  "detail": {
    "input": {
      "aspect_ratio": "16:9",
      "images": [
        "https://example.com/frame-1.png",
        "https://example.com/frame-2.png"
      ],
      "model": "veo3.1-fast-components",
      "prompt": "The cow flew into the sky"
    }
  },
  "status_update_time": 1768489641
}

Authentication

Authorization: Bearer YOUR_API_KEY

Body

images
array
required
An array of image URLs. Pass a list of reference image URLs.
model
string
required
The model name. For example, veo3.1-fast-components.
orientation
string
required
The frame orientation. portrait means vertical, and landscape means horizontal.
prompt
string
required
Prompt. The text describing the video content.
size
string
required
Output size. Defaults to 720x1280. Available values: 720x1280, 1280x720.
duration
integer
required
Video duration in seconds. Veo defaults to 8 seconds.
aspect_ratio
string
required
Aspect ratio. 16:9 or 9:16.
enable_upsample
boolean
Whether to enable HD upsampling (landscape only).

Response

id
string
Task ID, passed as the id parameter in subsequent queries.
object
string
Object type, commonly video.
model
string
The actual model used.
status
string
Task status. Common values include queued, processing, completed, failed, and cancelled.
progress
integer
Task progress percentage.
created_at
integer
Creation time (Unix timestamp).
size
string
Output size.
detail
object
Submission details, usually containing the echoed input field.
status_update_time
integer
Most recent status update time (Unix timestamp).