Skip to content

Wan video generation

The wan3.0-video series submits async video tasks with a JSON body. Generation parameters go in the object.

http
POST /v1/videos
  • Supports text-to-video, first-frame video, first-and-last-frame video, reference image/video/audio, reference file, and reference webpage modes.
  • First-and-last-frame mode is mutually exclusive with reference-asset mode; and cannot be used together.
  • Async processing: submission returns id or task_id.

Available models

Headers

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

Request body

NameTypeRequiredDescription
stringYesModel name
stringNoVideo prompt (Chinese or English). Provide at least one of or
objectYesMedia assets and video generation parameters

metadata

NameTypeRequiredDescription
array<object>NoMedia asset list. Each item has and (public URL, temporary OSS URL, or image Base64 Data URL). Provide at least one of this field or top-level
stringNoResolution: , , . Default . Lowercase is auto-uppercased
stringNoAspect ratio: , , , , , . Default
integerNoOutput duration: without a reference video, range , default . Pass for smart duration
booleanNoWhether to generate an audio track. Default
integerNoRandom seed, range
booleanNoSmart prompt rewrite. Default
booleanNoWhether to add a watermark. Default

Media asset types

Max countDescription
1First-frame image, used strictly as the first video frame
1Last-frame image, used strictly as the last video frame
10Reference image
5Reference video; total duration ≤ 15 seconds
5Reference audio; total duration ≤ 15 seconds
1Reference file; cannot be used with
1Public webpage; cannot be used with

Asset limits: images (JPEG/JPG/PNG/BMP/WEBP; PNG transparency not supported; ≤20 MB; each side 240–8000 px; aspect ratio ≤ 8:1); video (MP4/MOV; ≤100 MB; each clip 1–15 s); audio (WAV/MP3; ≤15 MB; each clip 1–15 s); files (DOCX/XLSX/PPTX/PDF/TXT/MD, etc.; ≤100 MB; paginated formats ≤ 50 pages); webpages (public HTTP/HTTPS that do not require login).

Request example

bash
curl -X POST https://octopusx.ai/v1/videos \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "wan3.0-video",
  "prompt": "A kitten runs across a moonlit rooftop with city neon lights in the distance, cinematic quality, smooth camera motion.",
  "metadata": {
    "resolution": "1080P",
    "ratio": "16:9",
    "duration": 5,
    "audio": true,
    "seed": 123456789,
    "prompt_extend": true,
    "watermark": false
  }
}'

Response example

json
{
  "id": "task_1234567890abcdef",
  "object": "video",
  "model": "wan3.0-video-prime",
  "status": "queued",
  "progress": 0,
  "created_at": 1787673600,
  "metadata": {
    "url": ""
  }
}

Response fields

NameTypeDescription
stringTask ID for later polling
stringAlways
stringModel actually used
stringTask status: , , , etc.
integerProgress percentage
integerCreation timestamp
stringResult video URL when complete