API 快速开始

创建并轮询一个图生视频任务。

export SEEDANCE_BASE_URL="https://api.seedance2video.io/v1"
export SEEDANCE_API_KEY="sd_live_replace_me"

Key 只保存在服务端 Secret Manager 或 n8n Credential 中。

curl --request POST "$SEEDANCE_BASE_URL/videos" \
  --header "Authorization: Bearer $SEEDANCE_API_KEY" \
  --header "Idempotency-Key: order-10086-shot-1" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "seedance-2.0-pro",
    "mode": "image-to-video",
    "prompt": "主体缓慢转向镜头,背景保持稳定。",
    "inputs": [{
      "type": "image",
      "url": "https://media.example.com/reference.png"
    }],
    "parameters": {
      "duration_seconds": 5,
      "resolution": "720p",
      "aspect_ratio": "16:9",
      "generate_audio": true
    }
  }'

输入域名需要提前加入该客户的白名单。接口返回 202、任务 idstatus_url 和实际的 billing.cost_credits

curl "$SEEDANCE_BASE_URL/generations/GENERATION_ID" \
  --header "Authorization: Bearer $SEEDANCE_API_KEY"

状态为 queuedprocessing 时按 retry_after_seconds 继续轮询;完成后读取 output.video_urloutput.image_urls

轮询时同时遵循响应中的 Retry-After

创建请求超时时,必须使用完全相同的请求体和 Idempotency-Key 重试,不能自动换新 Key 再创建一次。

创建成功受理时返回 202 Accepted。完成响应保持以下结构和 same_as_pc 策略:

{
  "status": "completed",
  "output": {
    "urls": ["https://.../completed-video.mp4"],
    "video_url": "https://.../completed-video.mp4"
  },
  "billing": {
    "unit": "credits",
    "cost_credits": 355,
    "policy": "same_as_pc"
  }
}

首个视频地址位于 output.video_url