API ReferenceVideo APIsSeedance

Seedance 1 API

ReachAPI 当前通过公开模型 ID seedance-1-0-pro 与 seedance-1-0-pro-fast 对外提供 Seedance 1 系列能力。

本文说明如何在 ReachAPI 中调用 Seedance 1 模型,包括请求参数、约束和示例。

重要说明:

  • 提交任务:POST /v1/vids/create
  • 查询任务:GET /v1/tasks/{task_id}
  • 模型 ID:seedance-1-0-pro、seedance-1-0-pro-fast
  • 执行方式:异步任务
  • 所有请求现在都必须显式传 input.content
  • ReachAPI 不再根据旧的 prompt、image_url 等便捷字段自动组装 input.content

1. 接口概览

  • 请求方法:POST
  • 请求路径:/v1/vids/create
  • Content-Type:application/json
  • 结果获取方式:
    • 提交时先返回任务受理结果
    • 最终结果通过轮询 /v1/tasks/{task_id} 或 callback_url 获取

2. 认证与请求头

请求头示例:

Authorization: Bearer YOUR_REACH_API_KEY
Content-Type: application/json

请求头说明:

请求头必填说明
Authorization是平台 API Key,格式:Bearer sk-xxxxxx
Content-Type是固定为 application/json

3. 模型能力摘要

模型时长分辨率比例input.content说明
seedance-1-0-pro2-12s480p、720p、1080p21:9、16:9、4:3、1:1、3:4、9:16必填支持文本、首帧图、尾帧图
seedance-1-0-pro-fast2-12s480p、720p、1080p21:9、16:9、4:3、1:1、3:4、9:16必填支持文本、首帧图;不支持尾帧图

计费与用量

Seedance 视频任务采用返回 token 用量计费,而非按时长计费。预估价格 = token 单价 × token 消耗量。最终账单使用 ReachAPI 任务响应中的 usage.output_tokens,该值由 BytePlus usage.completion_tokens 映射而来。

模型Token 单价说明
seedance-1-0-pro$2.50 / 100 万 token仅成功生成视频时计费
seedance-1-0-pro-fast$1.00 / 100 万 token仅成功生成视频时计费

4. 提交任务

请求体示例:

{
  "model": "seedance-1-0-pro",
  "callback_url": "https://your-domain.com/callback",
  "input": {
    "content": [
      {
        "type": "text",
        "text": "A cinematic drone shot passing over a coastline at sunrise"
      }
    ],
    "duration_seconds": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }
}

4.1 顶层参数

字段类型必填说明
modelstring是只能是 seedance-1-0-pro 或 seedance-1-0-pro-fast
callback_urlstring否任务终态回调地址。仅支持 https,最大长度 2048,禁止本地或内网目标
inputobject是视频生成参数

4.2 input 参数

字段类型必填说明
contentarray<object>是显式输入内容,必须为非空数组
duration_secondsinteger否输出时长,范围 2-12
resolutionstring是输出分辨率。可选值:480p、720p、1080p
aspect_ratiostring否输出比例。可选值:21:9、16:9、4:3、1:1、3:4、9:16

5. input.content 结构

支持的 type:

  • text
  • image_url

支持的 role:

  • first_frame
  • last_frame

字段说明:

字段类型必填说明
content[].typestring是只能是 text 或 image_url
content[].textstringtype = text 时必填文本提示词
content[].rolestring条件必填只能是 first_frame 或 last_frame。单张首帧图可省略,省略时按 first_frame 处理
content[].image_url.urlstringtype = image_url 时必填图片 URL、Base64 图片或已上传的素材 ID

约束:

  • content 至少要有 1 个元素
  • 最多 1 个 text
  • 最多 2 个 image_url
  • 最多 1 个 first_frame
  • 最多 1 个 last_frame
  • 传 last_frame 时必须同时传 first_frame
  • seedance-1-0-pro-fast 不支持 last_frame

6. 不再支持的旧字段

下面这些旧字段不再参与任何自动拼装;如果继续传,会直接返回 400:

  • input.prompt
  • input.image_url
  • input.image_urls
  • input.last_image_url
  • input.video_urls
  • input.audio_urls

当前 Reach Seedance 网关也不支持下面这些字段:

  • input.negative_prompt
  • input.parameters
  • input.instances
  • input.service_tier
  • input.execution_expires_after
  • input.safety_identifier
  • input.seed
  • input.frames
  • input.camera_fixed
  • input.draft
  • input.content[].draft_task
  • 任何未文档化的自定义字段

7. 请求示例

7.1 文生视频

curl -X POST "https://direct.reachapi.ai/v1/vids/create" \
  -H "Authorization: Bearer YOUR_REACH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-1-0-pro",
    "input": {
      "content": [
        {
          "type": "text",
          "text": "A paper boat floating through a neon-lit rainy street at night"
        }
      ],
      "duration_seconds": 4,
      "resolution": "720p",
      "aspect_ratio": "16:9"
    }
  }'

7.2 首帧图生视频

curl -X POST "https://direct.reachapi.ai/v1/vids/create" \
  -H "Authorization: Bearer YOUR_REACH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-1-0-pro-fast",
    "input": {
      "content": [
        {
          "type": "text",
          "text": "A product shot transitions into a dramatic rotating hero reveal"
        },
        {
          "type": "image_url",
          "role": "first_frame",
          "image_url": {
            "url": "https://cdn.example.com/product.png"
          }
        }
      ],
      "duration_seconds": 3,
      "resolution": "720p",
      "aspect_ratio": "1:1"
    }
  }'

7.3 首尾帧图生视频

curl -X POST "https://direct.reachapi.ai/v1/vids/create" \
  -H "Authorization: Bearer YOUR_REACH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-1-0-pro",
    "input": {
      "content": [
        {
          "type": "text",
          "text": "The character slowly turns toward the camera and smiles"
        },
        {
          "type": "image_url",
          "role": "first_frame",
          "image_url": {
            "url": "https://cdn.example.com/first-frame.png"
          }
        },
        {
          "type": "image_url",
          "role": "last_frame",
          "image_url": {
            "url": "https://cdn.example.com/last-frame.png"
          }
        }
      ],
      "duration_seconds": 5,
      "resolution": "1080p",
      "aspect_ratio": "9:16"
    }
  }'

8. 提交响应

示例响应:

{
  "code": 200,
  "msg": "",
  "status": "queued",
  "task_id": "task_xxx",
  "data": []
}

9. 查询任务状态

请求示例:

curl -X GET "https://direct.reachapi.ai/v1/tasks/task_xxx" \
  -H "Authorization: Bearer YOUR_REACH_API_KEY"

成功响应示例:

{
  "code": 200,
  "msg": "",
  "status": "success",
  "task_id": "task_xxx",
  "data": [
    {
      "url": "https://cdn.example.com/generated/video-1.mp4"
    }
  ],
  "usage": {
    "input_tokens": 0,
    "output_tokens": 102960,
    "total_tokens": 102960
  },
  "cost": {
    "spend": 0.12
  }
}

说明:

  • data 为视频结果数组
  • ReachAPI 对成功视频结果至少保证返回 data[].url

失败响应示例:

{
  "code": 400,
  "msg": "Field `input.content` is required",
  "status": "failed",
  "task_id": "task_xxx",
  "data": [],
  "error_code": "RJ_INVALID_REQUEST_BODY",
  "cost": {
    "spend": 0
  }
}

10. 回调说明

如果提交任务时传了 callback_url,任务进入终态后,网关会向该地址发送 POST 请求。回调 body 与任务查询响应一致。

回调约束:

  • 仅支持 https
  • 最大长度 2048
  • 禁止 localhost、.local 以及明显的内网或本地 IP
  • 单次请求超时 10s
  • 失败后最多重试 2 次,总共最多投递 3 次

11. 约束与说明

  • input.content 为必填
  • resolution 为必填
  • duration_seconds 必须在 2-12 之间
  • seedance-1-0-pro-fast 不支持 last_frame
  • 输入素材值不能为空;使用 URL 时必须保证服务端可访问

On this page