JunboTop API 开发者文档

统一图片与视频生成接口

接入 JunboTop API

使用一个令牌调用站内已开放的图片和视频模型。视频采用异步任务:先提交,再查询,成功后获取成片地址。

01 创建令牌

登录控制台,在令牌管理中创建普通 API 令牌。

02 提交任务

请求头携带 Bearer Token,选择带清晰度的模型名。

03 查询结果

使用返回的任务 ID 轮询,完成后读取视频 URL。

模型名必须完整

请使用 doubao-seedance-2.0-720p 这类带清晰度的名称。旧名称 doubao-seedance-2.0 已停止分发。

Authentication

身份认证

HEADER

所有生成和查询请求都需要在请求头中携带令牌。不要把令牌写入前端源码、公开仓库或聊天截图。

HTTP Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Video API

创建视频任务

POST
https://junbotop.cn/v1/videos

成功提交后会返回任务 ID。提交成功不等于生成完成,必须继续查询任务状态。

字段类型必填说明
modelstring模型广场中显示的完整模型名
promptstring视频内容、主体动作、镜头和风格描述
durationinteger视频秒数;可选值受具体模型限制
aspect_ratiostring例如 16:99:161:1
image_urlstring图生视频时可公开访问的 HTTPS 图片地址
video_urlstring运镜模型时Motion Control 使用的参考视频地址
文生视频
curl -X POST "https://junbotop.cn/v1/videos" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2.0-720p",
    "prompt": "电影感镜头,一辆汽车在雨夜城市街道上行驶",
    "duration": 5,
    "aspect_ratio": "16:9"
  }'
Python requests
import requests

response = requests.post(
    "https://junbotop.cn/v1/videos",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "model": "doubao-seedance-2.0-720p",
        "prompt": "电影感镜头,一辆汽车在雨夜城市街道上行驶",
        "duration": 5,
        "aspect_ratio": "16:9",
    },
    timeout=60,
)
response.raise_for_status()
task = response.json()
print(task)
Node.js fetch
const response = await fetch("https://junbotop.cn/v1/videos", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "doubao-seedance-2.0-720p",
    prompt: "电影感镜头,一辆汽车在雨夜城市街道上行驶",
    duration: 5,
    aspect_ratio: "16:9"
  })
});

if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
图生视频请求示例
JSON Body
{
  "model": "kling-3.0-turbo-720p",
  "prompt": "人物缓慢转身看向镜头,保持面部和服装一致",
  "image_url": "https://example.com/input.jpg",
  "duration": 5,
  "aspect_ratio": "16:9"
}

Task API

查询视频任务

GET
https://junbotop.cn/v1/videos/{task_id}

建议每 5–10 秒查询一次,不要高频轮询。状态完成后,从响应中的结果字段读取视频地址。

cURL
curl "https://junbotop.cn/v1/videos/task_xxxxxxxxx" \
  -H "Authorization: Bearer YOUR_API_KEY"
queuedprocessingcompleted failed
兼容返回结构

不同上游模型的状态字段或结果字段可能略有差异。程序应同时兼容 id/task_idstatus/stateurl/video_url

Image API

生成图片

POST
https://junbotop.cn/v1/images/generations

分辨率已经包含在拆分后的模型名中,例如 nano-banana2-2k,无需重复指定。每次默认生成一张。

cURL
curl -X POST "https://junbotop.cn/v1/images/generations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana2-2k",
    "prompt": "极简风格的智能手表产品海报,白色背景,棚拍光线",
    "n": 1
  }'

Live Pricing

模型与价格

正在读取线上最新价格…

视频按秒计费预计费用 = 单价 × 实际生成时长图片按次计费以一次成功请求生成一张为准

Troubleshooting

错误处理

ERROR
状态码或提示原因处理方式
400 prompt is required缺少提示词请求体增加非空 prompt
401 Invalid token令牌缺失、错误或已失效检查 Bearer Token,重新创建令牌
No available channel模型名错误或使用了旧入口从本文档复制完整模型名,特别注意清晰度后缀
402账户额度不足登录控制台充值或联系管理员
429请求频率或并发超限降低并发并采用指数退避重试
500 / 502 / 504上游异常或生成超时保留 Request ID;不要立即重复提交付费任务
failed异步任务最终失败记录任务 ID 和返回原因,再决定是否重试

Production

生产环境建议

CHECKLIST

1服务端保存令牌不要把 API Key 放在浏览器或客户端安装包中。

2保存任务 ID提交后立即持久化,以便断线后继续查询。

3控制轮询频率建议 5–10 秒一次,并设置最长等待时间。

4记录 Request ID出现异常时用于快速定位中转和上游日志。

5区分提交与完成只有最终状态成功并取得文件地址,才算生成完成。