API 文档
v3
根地址—

快速开始

API 根地址—
认证方式Bearer Token,请求头携带 Authorization: Bearer YOUR_API_KEY(可在「密钥管理」中查看)
数据格式请求与响应均为 application/json,字符编码 UTF-8
接口协议视频生成为异步任务式:先创建任务拿到任务 ID,再轮询查询获取视频地址

调用流程#

1
创建任务
POST /v3/contents/generations/tasks
提交生成参数,立即返回任务 id(不是视频本身)
2
轮询查询
GET /v3/.../tasks/{id}
建议提交后 20~30 秒首查,之后每 10~20 秒查一次
3
获取视频
状态变为 succeeded 后,从 content.video_url 下载视频,链接 24 小时过期,请及时转存

创建视频生成任务

POST /v3/contents/generations/tasks

支持模型#

模型 ID说明分辨率时长范围
doubao-seedance-2-5-260628Seedance 2.5,最新旗舰,支持 30 秒长片、视频编辑与延长480p / 720p / 1080p4~30 秒 或 -1(智能选时长)
doubao-seedance-2-0-260128Seedance 2.0 标准版480p / 720p / 1080p4~15 秒
doubao-seedance-2-0-fast-260128Seedance 2.0 Fast 极速版,出片更快480p / 720p4~15 秒
doubao-seedance-2-0-mini-260615Seedance 2.0 Mini 轻量版,价格更低480p / 720p4~15 秒
平台实际可用的模型、分辨率与价格以「模型广场」为准,管理员可在后台动态上下架模型。

请求参数#

参数类型必填默认值说明
modelstring必填-模型 ID,见上表
contentarray必填-输入内容数组,由 text / image_url / video_url / audio_url 组成,决定生成模式(见下方)
resolutionstring可选720p分辨率档位:480p / 720p / 1080p(1080p 仅 2.5 与 2.0 标准版支持),同档位全比例同价
ratiostring可选16:9宽高比:21:9 / 16:9 / 4:3 / 1:1 / 3:4 / 9:16 / adaptive(按输入素材自动适配,图生视频推荐)
durationint可选5视频时长(整数秒)。2.5 支持 4~30,2.0 系支持 4~15;2.5 可传 -1 由模型智能选择时长(按实际产出计费,建议显式指定)
generate_audiobool可选true是否生成与画面同步的音频(人声/音效/配乐,单声道)。不需要声音请显式传 false
watermarkbool可选false是否在画面右下角添加「AI 生成」水印
seedint可选-1随机种子,取值 [-1, 2³²-1]。相同 seed 生成相似(不保证完全一致)的结果,可用于复现风格
return_last_framebool可选false是否返回视频尾帧 PNG(无水印),可用作下一段任务的首帧,实现多段视频接力
execution_expires_afterint可选172800任务过期阈值(秒),超时任务标记为 expired,取值 [3600, 259200]
output_formatstring可选mp4仅 2.5:mp4(通用)/ mov(色彩还原更好,适合后期,部分播放器不兼容)
omni_reference_task_typestring可选auto仅 2.5:auto / edit(视频编辑)/ extend(视频延长),显式指定可在提交时前置校验参数

生成模式#

由 content 数组的组合决定,三种图生场景互斥。

模式content 组成role 取值
文生视频1 个 text(提示词)-
图生视频 - 首帧text(可选)+ 1 个 image_urlfirst_frame 或不填
图生视频 - 首尾帧text(可选)+ 2 个 image_url必填 first_frame / last_frame
多模态参考生视频text + 参考素材(2.0 系:最多 9 图 + 3 视频 + 3 音频,且至少含 1 图或 1 视频;2.5:最多 30 图 + 10 视频 + 10 音频,音频可单独使用)reference_image / reference_video / reference_audio
视频编辑(仅 2.5)text(须含「增加/删除/修改/替换」等编辑意图词,用 @视频1 指代素材)+ 至少 1 个 video_url(时长 4~30 秒)reference_video,需 ratio=adaptive、duration=-1
视频延长(仅 2.5)text(须含「向后延长/续写/延续」等意图词)+ 至少 1 个 video_urlreference_video,需 ratio=adaptive
素材说明:图片支持公网 URL、Base64(data:image/png;base64,...),格式 jpeg/png/webp/bmp/tiff 等,单张 < 30MB,宽高比 (0.4, 2.5),边长 (300, 6000)px;参考音频支持 wav/mp3,单段 2~15 秒。不支持含真人人脸的输入素材。
不支持 Seedance 1.x 的 frames、camera_fixed 参数,传入会被忽略或报错。

请求示例#

① 文生视频

bash
curl -X POST {{BASE}}/v3/contents/generations/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2-0-260128",
    "content": [
      {"type": "text", "text": "无人机航拍视角飞越秋天的山谷,金黄色的森林和蜿蜒的河流,电影感"}
    ],
    "resolution": "720p",
    "ratio": "16:9",
    "duration": 5,
    "generate_audio": true
  }'

② 首尾帧图生视频

json
{
  "model": "doubao-seedance-2-0-260128",
  "content": [
    {"type": "text", "text": "画面从第一帧平滑过渡到最后一帧,镜头缓慢推进"},
    {"type": "image_url", "image_url": {"url": "https://example.com/first.jpg"}, "role": "first_frame"},
    {"type": "image_url", "image_url": {"url": "https://example.com/last.jpg"}, "role": "last_frame"}
  ],
  "resolution": "720p",
  "ratio": "adaptive",
  "duration": 5
}

③ 多模态参考生视频

json
{
  "model": "doubao-seedance-2-5-260628",
  "content": [
    {"type": "text", "text": "以参考图的角色和风格,生成角色在雨夜街头行走的镜头"},
    {"type": "image_url", "image_url": {"url": "https://example.com/character.png"}, "role": "reference_image"}
  ],
  "resolution": "720p",
  "ratio": "16:9",
  "duration": 5
}

创建成功响应

仅返回任务 ID,需再轮询查询接口获取视频。

json
{
  "id": "cgt-20260606160057-xxxxx"
}

查询视频生成任务

GET /v3/contents/generations/tasks/{task_id}

任务状态机#

queued排队中 → running生成中 → succeeded成功 ✓
或进入终态: failed失败 expired过期

轮询建议:视频生成是分钟级任务(720p 5 秒约 90~150 秒),首次查询建议在提交后 20~30 秒,之后每 10~20 秒查询一次;超过 10 分钟未到终态可视为异常。

任务成功响应示例

json
{
  "id": "cgt-20260606160057-xxxxx",
  "model": "doubao-seedance-2-0-260128",
  "status": "succeeded",
  "content": {
    "video_url": "https://xxx.tos-cn-beijing.volces.com/xxx.mp4?X-Tos-Expires=86400..."
  },
  "usage": { "completion_tokens": 108900, "total_tokens": 108900 },
  "created_at": 1780732857,
  "updated_at": 1780732991,
  "seed": 97151,
  "resolution": "720p",
  "ratio": "16:9",
  "duration": 5,
  "generate_audio": true
}
视频地址在 content.video_url(不在顶层),为签名直链,24 小时过期,请在任务成功后立即下载转存;下载直链时不要携带 Authorization 头。
传入 duration: -1 或 ratio: adaptive 时,实际时长与比例以响应中的 duration / ratio 字段为准。

Python 完整示例(创建 → 轮询 → 下载)#

python
import time, requests

BASE = "{{BASE}}/v3/contents/generations/tasks"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"}

# 1. 创建任务
task_id = requests.post(BASE, json={
    "model": "doubao-seedance-2-0-260128",
    "content": [{"type": "text", "text": "海浪拍打礁石,夕阳把海面染成金色,慢镜头"}],
    "resolution": "720p", "ratio": "16:9", "duration": 5
}, headers=HEADERS, timeout=60).json()["id"]

# 2. 轮询直到终态
while True:
    time.sleep(20)
    task = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30).json()
    if task.get("status") in ("succeeded", "failed", "expired"):
        break

# 3. 下载视频(24 小时过期,成功后立即转存)
if task["status"] == "succeeded":
    video = requests.get(task["content"]["video_url"], stream=True, timeout=300)
    with open(f"{task_id}.mp4", "wb") as f:
        for chunk in video.iter_content(1 << 20):
            f.write(chunk)

账户接口

查询账户信息

GET /v1/me

返回当前 API Key 的账户信息:

json
{
  "code": 0,
  "data": {
    "client_name": "客户名称",
    "balance": 95.50,          // 账户余额(元)
    "total_recharge": 100.00,  // 累计充值(元)
    "total_consumed": 4.50,    // 累计消费(元)
    "status": 1,
    "created_at": "2026-01-01 12:00:00"
  }
}

查询调用记录

GET /v1/usage?page=1&page_size=20

可选筛选参数:date_from / date_to(格式 YYYY-MM-DD)、status(pending / running / succeeded / failed)。返回分页的调用记录列表(含任务 ID、模型、状态、费用、时间)。

计费说明

平台与火山方舟官方保持一致,按 token 计费,单价单位为 元 / 百万 token。计费公式:

费用 = token 用量 ÷ 1,000,000 × 单价(元/百万token)

token 用量按官方公式估算:token ≈(输入视频时长 + 输出视频时长)× 宽 × 高 × 帧率 ÷ 1024(帧率默认 24)。分辨率档位对应的标准像素面积如下:

分辨率标准尺寸(宽×高)分辨率标准尺寸(宽×高)
480p854 × 4801080p1920 × 1080
720p1280 × 7202K / 4K2560 × 1440 / 3840 × 2160

同一模型「含视频输入」与「不含视频输入」为两档不同单价,各分辨率的具体单价以「模型广场」价格表为准。

计费流程:创建任务时按预估 token 用量预扣押金;任务到达终态后,以上游返回的真实 usage.completion_tokens(见「查询任务」响应)× 单价快照重新结算,多退少补——预估高于实际退回差额,低于实际补扣差额。任务失败 / 过期不产生视频费用,预扣押金全额退回。实际扣费金额可在「调用记录」中查询。

错误码说明

错误码说明处理建议
400请求参数错误(如模型不支持该分辨率、duration 超出范围、非法 ratio)根据返回的 msg 修正参数,参数错误不扣费
401API Key 无效或已被禁用检查 Authorization 头,或到「密钥管理」确认 Key 状态
402账户余额不足到「财务管理」提交充值申请
404任务不存在确认任务 ID 是否正确、是否属于当前 API Key
502上游服务请求失败稍后重试,持续失败请联系平台客服
503当前无可用通道平台通道繁忙,请稍后重试

智能对话 API

聊天模型采用 OpenAI 兼容协议,可直接使用 DeepSeek 或 OpenAI SDK。视频生成接口仍保持原有异步任务协议。

GET/v1/models
POST/v1/chat/completions
bash
curl -X POST {{BASE}}/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"deepseek-chat","messages":[{"role":"user","content":"你好"}],"max_tokens":1024}'

设置 "stream": true 即可获得标准 SSE 流式响应。首期仅支持 system/user/assistant 纯文本消息;tools、vision 和 JSON mode 会明确返回参数错误。费用按输入与输出 token 分别计价,响应中的 usage 为最终结算依据。