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