POST
https://octopusx.ai
/
v1
/
videos
Doubao Video Generation
curl --request POST \
  --url https://octopusx.ai/v1/videos \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "<string>",
  "prompt": "<string>",
  "size": "<string>",
  "seconds": 123
}
'
{
  "id": "video_bbfbc1d2-ab22-44ca-b9dd-bc16983acac2",
  "object": "video",
  "model": "doubao-seedance-1-5-pro_720p",
  "status": "queued",
  "progress": 0,
  "created_at": 1761635478,
  "size": "720x720"
}

Doubao Video Generation

The Doubao channel uses POST /v1/videos to submit tasks, with multipart/form-data.
  • The route entry is POST /v1/videos.
  • Currently submitted as multipart/form-data.
  • Supports text-to-video, first-frame-to-video, and first-and-last-frame-to-video.
  • The first-frame image is uploaded via the first_frame_image field, and the last-frame image is uploaded via the last_frame_image field.
  • After successful submission, the task id and status are returned. Use Task Status Query to poll for the result.

Supported Models

  • doubao-seedance-1-0-pro_480p
  • doubao-seedance-1-0-pro_720p
  • doubao-seedance-1-0-pro_1080p
  • doubao-seedance-1-5-pro_480p
  • doubao-seedance-1-5-pro_720p
  • doubao-seedance-1-5-pro_1080p

Method and Path

POST /v1/videos

Request Example

curl -X POST https://octopusx.ai/v1/videos \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "model=doubao-seedance-1-5-pro_720p" \
  -F "prompt=The cat listens to music and nods its head while rain pours down" \
  -F "size=4:3" \
  -F "seconds=4"

First-Frame Video Generation Example

# Request example with a first-frame image
curl -X POST https://octopusx.ai/v1/videos \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "model=doubao-seedance-1-5-pro_720p" \
  -F "prompt=Have the character walk forward and smile" \
  -F "size=16:9" \
  -F "seconds=5" \
  -F "first_frame_image=@/path/to/first-frame.png"

First-and-Last-Frame Video Generation Example

# Request example with first- and last-frame images
curl -X POST https://octopusx.ai/v1/videos \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "model=doubao-seedance-1-5-pro_720p" \
  -F "prompt=Smooth transition" \
  -F "size=9:16" \
  -F "seconds=5" \
  -F "first_frame_image=@/path/to/first-frame.png" \
  -F "last_frame_image=@/path/to/last-frame.png"

Response Example

{
  "id": "video_bbfbc1d2-ab22-44ca-b9dd-bc16983acac2",
  "object": "video",
  "model": "doubao-seedance-1-5-pro_720p",
  "status": "queued",
  "progress": 0,
  "created_at": 1761635478,
  "size": "720x720"
}

Authentication

Authorization: Bearer YOUR_API_KEY

Body

model
string
required
Model name. Supported values include doubao-seedance-1-0-pro_480p, doubao-seedance-1-0-pro_720p, doubao-seedance-1-0-pro_1080p, doubao-seedance-1-5-pro_480p, doubao-seedance-1-5-pro_720p, and doubao-seedance-1-5-pro_1080p.
prompt
string
required
Prompt. The text description for the generated video, supporting both Chinese and English.
first_frame_image
file
First-frame image. Upload a single image file for first-frame-to-video scenarios. Supported image formats include png, jpeg, jpg, and webp.
last_frame_image
file
Last-frame image. Upload a single image file for first-and-last-frame-to-video scenarios. Supported image formats include png, jpeg, jpg, and webp.
size
string
Video aspect ratio. Optional values include 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, keep_ratio (keeps the same aspect ratio as the uploaded image), and adaptive (automatically selects the most suitable aspect ratio based on the uploaded image ratio).
seconds
integer
Video duration (seconds). Valid range: >= 4 and < 12.

Response

id
string
Task ID.
object
string
Fixed as video.
model
string
Model name.
status
string
Task status. Optional values include queued (in queue), processing (in progress), completed (completed), failed (failed), and cancelled (cancelled).
progress
integer
Progress percentage (0-100).
created_at
integer
Creation time (Unix timestamp).
size
string
Video dimensions, for example 720x720.