Operation

Generate Video

Generate a video with Cannon Studio's supported video models, including prompt-only and image-guided flows.

Operation: video.generate
Submit via POST /api/v1/requests
Credits: dynamic
Seedance 2.0Seedance 2.0 FastWan 2.7Veo 3.1Sora 2GrokNano Banana

Request fields

promptmodeldurationimage_urlfirst_frame_urlsource_video_urlfirst_clip_urlreference_image_urlsend_image_urllast_frame_urlaspect_ratioresolutionaudio_urlnegative_promptprompt_extendwatermarkseednsfw_checker

Example request

{
  "operation": "video.generate",
  "input": {
    "prompt": "A handheld chase through a crowded market at blue hour.",
    "model": "wan27video",
    "duration": 10,
    "aspect_ratio": "16:9",
    "resolution": "1080p",
    "image_url": "https://example.com/start-frame.jpg",
    "audio_url": "https://example.com/drive-track.mp3",
    "negative_prompt": "distorted faces, warping, text overlays"
  }
}
curl -X POST https://www.cannonstudio.app/api/v1/requests \
  -H "Content-Type: application/json" \
  -H "x-api-key: $CANNON_API_KEY" \
  -H "x-idempotency-key: video-generate-001" \
  -d @- <<'JSON'
{
  "operation": "video.generate",
  "input": {
    "prompt": "A handheld chase through a crowded market at blue hour.",
    "model": "wan27video",
    "duration": 10,
    "aspect_ratio": "16:9",
    "resolution": "1080p",
    "image_url": "https://example.com/start-frame.jpg",
    "audio_url": "https://example.com/drive-track.mp3",
    "negative_prompt": "distorted faces, warping, text overlays"
  }
}
JSON

Notes

  • Uses the same standalone video generation stack as the Cannon Studio app.
  • Supports prompt-first and image-guided flows depending on the selected model.
  • Wan 2.7 supports prompt-only renders, first-frame guidance, first-and-last-frame guidance, and source-clip continuation.
  • Wan 2.7 uses `audio_url` for prompt-first renders and `source_video_url` plus `audio_url` for continuation-style runs.
  • Sora 2 uses 4s, 8s, 12s, 16s, or 20s durations plus portrait or landscape output sizes. Sora 2 Pro can request 1080p native sizes.
  • The request object tracks the downstream video task and returns the final hosted video URL on success.

Success output

{
  "task_id": "vid_123",
  "asset_type": "video",
  "status": "succeeded",
  "video_url": "https://storage.googleapis.com/.../video.mp4",
  "provider": "seedance",
  "model": "seedance2",
  "duration": 5,
  "aspect_ratio": "16:9"
}