API 调用文档
这里说明青藤中转站的公开调用方式。文档只描述请求格式、公共字段和错误处理,不展示渠道、上游、成本或内部计费字段。
快速开始
所有接口使用同一个基础地址,鉴权方式为 Bearer Token:
https://qingteng.pw
建议流程:先调用 /v1/models 确认账号可用模型,再根据模型类型调用图片、文本或视频接口。价格和套餐请查看价格表。
WAN3.0 / 可灵4.0 完整接口
更新日期:2026-10-26(北京时间)。本文对应 666 当前对外接口,不是可灵官方 API 文档。模型名、路径和参数按本站适配代码核对。
自检备注: 可灵已有成功任务的两条内容下载路径已返回有效 MP4。WAN 当前两条管理员历史成功任务能查询到完成状态,但主渠道上游的内容接口返回502;本次没有重新付费生成,不能把这些历史任务的下载标为通过。遇到这种情况保留任务号排查,不要反复创建新任务。
1. 接口地址与鉴权
Base URL: https://qingteng.pw Authorization: Bearer YOUR_API_KEY Content-Type: application/json
密钥使用你在 666 创建的 API Key。不要使用上游渠道密钥,也不要把密钥放在前端代码、小程序包或 URL 中。
| 用途 | 方法 | 路径 |
|---|---|---|
| 查看当前密钥可用模型 | GET | /v1/models |
| 创建视频任务 | POST | /v1/videos |
| 查询视频任务 | GET | /v1/videos/{task_id} |
| 查询统一任务信息 | GET | /v1/tasks/{task_id} |
| 查询任务成品列表 | GET | /v1/tasks/{task_id}/artifacts |
| 下载视频成品 | GET | /v1/tasks/{task_id}/artifacts/video/content |
| 视频内容兼容下载入口 | GET | /v1/videos/{task_id}/content |
先调用 /v1/models,确认当前密钥所属分组能使用目标模型。素材上传不是视频创建任务,不能把上传返回的文件 URL 当作任务号。
2. 模型、基础售价和限制
| 对外模型名(必须原样填写) | 输出时长 | 输出分辨率 | 基础售价 | 参考图片上限 | 参考视频上限 | 参考音频上限 |
|---|---|---|---|---|---|---|
wan3.0官转 |
4–30 秒整数 | 仅 720p |
$0.40/计费秒 | 10 | 5 | 5 |
可灵4.0 |
4–30 秒整数 | 720p |
$0.30/计费秒 | 10 | 5 | 3 |
可灵4.0 |
4–30 秒整数 | 1080p |
$0.40/计费秒 | 10 | 5 | 3 |
币种为 USD,不是人民币。上表为基础价,账户分组倍率按站内配置另行计算。可灵价格本次未调整。
不要将 keling、kling-4.0、kling-omni-4.0 或上游 WAN 名称替代上表对外模型名。也不要继续使用已停用的固定15秒/固定30秒旧别名。
计费秒数
reference_video_seconds = 本次全部参考视频的实际时长总和 seconds = output_seconds + reference_video_seconds 基础费用 = seconds × 对应分辨率的每秒售价
output_seconds是要生成的成品时长,4–30 秒。seconds是计费时长;存在参考视频时,可以大于30秒,不代表生成超长成品。- 图片和参考音频不在这个公式中额外增加计费秒数;参考音频仍需符合模型数量与上游校验要求。
- 参考视频的时长按实际秒数累计,建议保留3位小数,不能把视频条数当作秒数。
reference_video_seconds不能漏填、少填或与实际素材不一致。- 现有已提交任务有自己的计费快照;本次调价不重写历史订单与旧任务快照。
- 站内价格接口中的
billing_expr是按秒规则。旧客户端兼容字段model_price不是任意时长任务的固定总价。
| 示例 | WAN 720P | 可灵 720P | 可灵 1080P |
|---|---|---|---|
| 输出4秒,无参考视频 | $1.60 | $1.20 | $1.60 |
| 输出15秒,无参考视频 | $6.00 | $4.50 | $6.00 |
| 输出30秒,无参考视频 | $12.00 | $9.00 | $12.00 |
| 输出15秒+参考视频总长5秒 | $8.00 | $6.00 | $8.00 |
3. 创建任务的参数
发送 JSON 到 POST /v1/videos。
| 字段 | 推荐类型 | 填写规则 |
|---|---|---|
model |
string | wan3.0官转 或 可灵4.0 |
prompt |
string | 非空的画面与动作描述;可附参考素材标记 |
output_seconds |
integer | 实际输出时长,4–30 |
seconds |
string | 计费秒数,例如 "15"、"20"、"19.042";推荐统一用字符串兼容客户端解析 |
reference_video_seconds |
number | 全部参考视频总时长,无参考视频填 0 |
resolution |
string | 小写 720p;可灵还支持 1080p |
ratio |
string | 本文示例与计费尺寸对应使用 16:9 或 9:16 |
aspect_ratio |
string | 兼容比例字段;若同时填写,务必与 ratio 一致 |
size |
string | 按下面的尺寸表填写,避免分辨率、比例和计费尺寸不一致 |
mode |
string | 推荐 reference(参考生视频);纯文生可填 text |
reference_images |
string[] | 图片 HTTPS URL 数组,可不填 |
reference_videos |
object[] | [{"url":"https://.../clip.mp4"}],可不填 |
reference_audios |
object[] | [{"url":"https://.../voice.mp3"}],可不填 |
price_per_second |
number | 旧客户端兼容字段,推荐省略;价格以服务器计费规则为准 |
duration 是兼容输出时长字段,推荐直接使用 output_seconds。如果同时传入,两者应相等,不能把含参考视频的计费秒数填进 duration。
分辨率、比例与 size 对应表
| resolution | ratio / aspect_ratio | size |
|---|---|---|
720p |
9:16 |
720x1280 |
720p |
16:9 |
1280x720 |
1080p(仅可灵) |
9:16 |
1080x1920 |
1080p(仅可灵) |
16:9 |
1920x1080 |
不要只把 resolution 改成1080p而保留720P的 size。本手册的明确示例限定这两种横竖比例;其他比例与1080P计费尺寸组合未在本次完整验收,不建议自行拼接参数。
参考素材标记方式
除了上述数组,也可以把素材按顺序写入 prompt。这是当前站内客户端使用的兼容方式:
保持参考人物外观,人物走进店内,镜头自然跟随。 [REF_IMG]https://YOUR_CDN/person.png[/REF_IMG] [REF_IMG]https://YOUR_CDN/store.jpg[/REF_IMG] [REF_VIDEO]https://YOUR_CDN/reference.mp4[/REF_VIDEO] [AUDIO_URL]https://YOUR_CDN/voice.mp3[/AUDIO_URL] [RATIO]9:16[/RATIO]
同一种素材建议选数组或标记中的一种写法。图片顺序需要与提示词里的“参考图1、参考图2”等对应。同一人物的不同视角应明确说明属于同一个人物。
素材必须是上游能直接访问的 HTTPS 文件地址。不能传本地磁盘路径、localhost、内网地址、需要登录的网盘分享页或把 Base64 整体塞进提示词。请求体本身建议控制在2MB以内,素材文件通过 URL 引用。文件格式、清晰度和具体媒体时长限制还受上游校验影响。
参考音频支持不等于提供“声音克隆”或“文字转语音”API;本接口不承诺只上传一段录音就能获得可复用的克隆音色。人物一致性、口型、原生声音和具体运镜执行程度需以实际模型输出为准。
4. 示例:WAN 15秒竖屏,无参考视频
以下素材 URL 是占位符,必须替换为你的真实 HTTPS 文件地址。
curl --request POST 'https://qingteng.pw/v1/videos' \
--header "Authorization: Bearer $JINGYU_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "wan3.0官转",
"prompt": "保持参考人物与门店外观一致,人物在门口自然介绍店铺,再展示店内环境。\n[REF_IMG]https://YOUR_CDN/person.png[/REF_IMG]\n[REF_IMG]https://YOUR_CDN/store.jpg[/REF_IMG]\n[RATIO]9:16[/RATIO]",
"output_seconds": 15,
"seconds": "15",
"reference_video_seconds": 0,
"resolution": "720p",
"ratio": "9:16",
"aspect_ratio": "9:16",
"size": "720x1280",
"mode": "reference"
}'
基础费用:15 × $0.40 = $6.00,再按账户分组倍率计算。
5. 示例:可灵1080P,输出15秒,参考视频5秒
{
"model": "可灵4.0",
"prompt": "保持参考人物身份与服装,结合参考视频动作自然介绍菜品。",
"output_seconds": 15,
"seconds": "20",
"reference_video_seconds": 5,
"resolution": "1080p",
"ratio": "9:16",
"aspect_ratio": "9:16",
"size": "1080x1920",
"mode": "reference",
"reference_images": ["https://YOUR_CDN/person.png"],
"reference_videos": [{"url":"https://YOUR_CDN/reference-5s.mp4"}],
"reference_audios": [{"url":"https://YOUR_CDN/voice.mp3"}]
}
请求仍发送到 POST /v1/videos。前提是参考视频实际总长为5秒;若实际为4.042秒,则 reference_video_seconds 应为 4.042,seconds 为 "19.042"。不要照抄5秒用于其他视频。
本例基础费用:(15+5) × $0.40 = $8.00。成品输出仍为15秒。
6. 保存任务号与查询进度
创建响应的示意结构如下。字段集合随上游归一化结果可能变化,客户端至少读取 id 或 task_id:
{
"id": "task_EXAMPLE",
"task_id": "task_EXAMPLE",
"object": "video",
"status": "queued"
}
立即保存 666 返回的 task_... 任务号。 查询和下载使用这个号码,不要替换为上游返回的纯数字或其他内部任务号。
curl 'https://qingteng.pw/v1/videos/task_EXAMPLE' \ --header "Authorization: Bearer $JINGYU_API_KEY"
建议每3–5秒查询一次,后台保存任务状态。视频兼容接口通常使用 queued、in_progress/processing、completed、failed 等状态;统一任务接口 /v1/tasks/{task_id} 使用 SUCCESS、FAILURE 等本站任务状态。客户端应兼容两套大小写,不应把非空 URL 或 HTTP 200 直接当作生成成功。
推荐优先依据明确的完成状态,再请求成品列表:
curl 'https://qingteng.pw/v1/tasks/task_EXAMPLE/artifacts' \ --header "Authorization: Bearer $JINGYU_API_KEY"
返回的 artifacts 中查找 key 为 video 的成品,可使用其 content_url。任务未完成、失败或成品已过期时,成品可能不存在。
7. 下载成品和失败后取回
curl --fail --location \ 'https://qingteng.pw/v1/tasks/task_EXAMPLE/artifacts/video/content' \ --header "Authorization: Bearer $JINGYU_API_KEY" \ --output result.mp4
兼容下载地址:
GET https://qingteng.pw/v1/videos/task_EXAMPLE/content
使用有权限访问该任务的账号密钥。下载前检查 HTTP 状态,不能把 JSON 错误响应保存为 .mp4 后当作视频。建议下载到临时文件,校验成功后再改成最终文件名。
ffprobe -v error \ -show_entries stream=codec_type,width,height:format=duration \ -of json result.mp4
“生成成功但下载失败”的处理:保留原任务号,再次 GET 查询和下载,不要重新 POST 创建视频。查询和取回不会新建视频生成任务;原成品已过期则可能无法取回。
8. 超时、报错与重试
- 创建超时:不代表上游没接到任务。不要无条件自动重发;先到本站任务记录核对,拿到明确任务号再查询。当前文档不声明支持幂等键。
- 401/403:检查密钥、分组权限与任务所属账号。
- 参数拒绝:核对模型名、时长、分辨率、参考数量,以及
seconds = output_seconds + reference_video_seconds。 - 素材问题:确认链接直接返回媒体文件,能够公网 HTTPS 访问,没有登录验证或失效签名。
- 429/暂时的网络或5xx错误:查询和下载可以退避重试;创建请求不能套用同样的无条件重试策略。
- 下载返回错误 JSON:记录 HTTP 状态与错误信息,不要标记“已取回”。
9. 本次核对范围
已检查当前启用渠道与适配代码、模型名、时长/分辨率范围、三类参考素材上限、参数转换、计费公式,以及版本与价格展示一致性。使用管理员账号已有的成功任务核对查询和内容下载路径:两种模型的任务查询与成品列表可用,可灵的两条下载路径可用;WAN历史任务的内容下载存在上游502,详见开头备注。未为本次文档重新提交付费视频。
因此,“接口与配置已核对”不等于承诺任意素材都能生成成功;本次未做新价格下的付费端到端出片测试。
鉴权
在每次请求的 HTTP Header 中携带 API Key:
Authorization: Bearer sk-YOUR_API_KEY
- Key 可在 青藤中转站创建和管理。
- Key 泄露后请立即在后台删除并重新创建。
- 401 表示 Key 无效或没有权限;402 通常表示额度不足。
查询模型
/v1/modelscurl https://qingteng.pw/v1/models \ -H "Authorization: Bearer sk-YOUR_API_KEY"
返回结果中的 data[].id 就是请求时使用的 model。模型可用性会调整,实际以本接口返回为准。
当前常见模型示例:
| 模型 ID | 类型 | 说明 |
|---|---|---|
| minimax-H3 | 视频 | H3 特惠,界面显示需推理 |
| SD 2.0 低价特惠 | 视频 | SD 2.0 特惠通道 |
| 满血2.0官方原生933(带官链 主推!) | 视频 | SD 2.0 原生 933 |
| wan3.0官转 | 视频 | 4–30 秒,固定 720P,$0.40/秒,参考视频加时,参考音频不计费 |
| 可灵4.0 | 视频 | 4–30 秒;720P $0.30/秒,1080P $0.40/秒;参考视频加时,参考音频不计费 |
| gpt-image-2.5-sunburst | 图片 | 高质量图片生成 |
| gpt-image-2.5-flare | 图片 | 生成速度优先 |
| gpt-image-2 | 图片 | 通用图片生成 |
| gpt-5.5 | 文本 | 文本对话 |
| gemini-3.1-flash-lite | 文本 | 轻量文本与翻译 |
参考素材与请求限制
视频参考素材推荐使用 JSON 数组字段。不同模型的可接受数量和参数范围可能继续调整,提交时请以模型校验结果为准。
| 字段 | 类型 | 说明 |
|---|---|---|
reference_images | string[] | 参考图片 URL 数组,按数组顺序绑定图位 |
reference_videos | object[] | 参考视频数组,元素格式为 {"url":"https://..."} |
reference_audios | object[] | 参考音频数组,元素格式为 {"url":"https://..."} |
aspect_ratio | string | 建议使用 16:9 或 9:16;部分模型支持其他比例 |
resolution | string | 可灵4.0:720p 或 1080p;WAN3.0:仅 720p |
price_per_second | number | 兼容字段,可省略;New API按 seconds 和生成 size 自动计费 |
output_seconds | integer | 实际输出时长;可灵和 WAN 均为 4–30 |
reference_video_seconds | number | 全部参考视频实际总时长 |
seconds | number | 计费秒数,必须等于 output_seconds + reference_video_seconds |
prompt_extend | boolean | 仅部分渠道兼容,不作为可灵/WAN的必需参数,推荐不传 |
{
"model": "可灵4.0",
"prompt": "保持参考人物外观,人物走进店内,镜头缓慢跟随",
"aspect_ratio": "9:16",
"output_seconds": 15,
"seconds": "20",
"reference_video_seconds": 5,
"resolution": "1080p",
"price_per_second": 0.40,
"reference_images": [
"https://example.com/person.png",
"https://example.com/product.jpg"
],
"reference_videos": [
{"url": "https://example.com/reference.mp4"}
],
"reference_audios": [
{"url": "https://example.com/voice.mp3"}
]
}
| 常用视频模型 | 输出时长 | 参考分辨率 | 图片上限 | 视频上限 | 音频上限 |
|---|---|---|---|---|---|
| minimax-H3 | 15 秒 | 768P | 6 | 0 | 3 |
| 满血2.0官方原生933(带官链 主推!) | 15 秒 | 768P | 9 | 3 | 3 |
| wan3.0官转 | 4–30 秒 | 720P | 10 | 5 | 5 |
| 可灵4.0 | 4–30 秒 | 720P / 1080P | 10 | 5 | 3 |
- 未列出的模型不代表不支持,具体限制以任务校验和
/v1/models返回为准。 - 参考素材必须是上游能够直接访问的公网 HTTP(S) 地址,不支持 localhost、内网地址、登录态地址或本地文件路径。
- 可灵4.0/WAN3.0 的 JSON 参数体请控制在
2MB以内,仅引用公网 HTTPS 素材 URL。素材文件上传及其他接口上限单独计算。 - 没有明确约定的模型,不要把
seconds、分辨率或参考数量自行换算成价格。
文本对话
/v1/chat/completionscurl https://qingteng.pw/v1/chat/completions \
-H "Authorization: Bearer sk-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{"role": "user", "content": "用一句话解释什么是镜头语言。"}
],
"temperature": 0.7
}'
返回格式遵循 OpenAI Chat Completions 兼容结构,正文位于 choices[0].message.content。
图片生成
/v1/images/generationscurl https://qingteng.pw/v1/images/generations \
-H "Authorization: Bearer sk-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-sunburst",
"prompt": "雨夜的东方车站,电影感构图,体积光",
"n": 1,
"size": "1536x864",
"response_format": "b64_json"
}'
图片结果通常位于 data[].b64_json 或 data[].url。如果使用 b64_json,请在上传或展示前自行解码。
图片编辑 / 参考图
/v1/images/edits使用 multipart/form-data。单张参考图字段名为 image,多张参考图使用 image[]。
curl https://qingteng.pw/v1/images/edits \ -H "Authorization: Bearer sk-YOUR_API_KEY" \ -F "model=gpt-image-2.5-sunburst" \ -F "prompt=保持人物身份,改成电影海报光线" \ -F "n=1" \ -F "size=1536x864" \ -F "response_format=b64_json" \ -F "image=@reference.png"
参考图的尺寸、数量和格式支持范围以模型实际返回为准。上传前请压缩到合理大小,避免请求体过大。
视频生成
/v1/videos视频接口是异步任务。参考图、视频和音频可以放在请求体数组中,也可以按以下标记写入 prompt:
curl https://qingteng.pw/v1/videos \
-H "Authorization: Bearer sk-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "SD 2.0 低价特惠",
"prompt": "人物从门口走进店内,镜头缓慢跟随。\n[REF_IMG]https://example.com/character.png[/REF_IMG]\n[REF_VIDEO]https://example.com/reference.mp4[/REF_VIDEO]\n[AUDIO_URL]https://example.com/voice.mp3[/AUDIO_URL]\n[RATIO]9:16[/RATIO]",
"seconds": "15",
"ratio": "9:16",
"resolution": "720p"
}'
[REF_IMG]...[/REF_IMG]:参考图 URL,按顺序绑定图位。[REF_VIDEO]...[/REF_VIDEO]:参考视频 URL,是否支持及数量上限取决于模型。[AUDIO_URL]...[/AUDIO_URL]:参考音频 URL,是否支持取决于模型。[RATIO]9:16[/RATIO]:画面比例,建议同时传请求体ratio。- 参考图必须能被上游通过公网 HTTP(S) 访问,不要传内网地址或登录态地址。
- H3 系列建议先在业务侧完成分镜推理;H3 特惠版最多 6 张参考图。
- H3 的
seconds必须传字符串,例如"15",不能传数字。 - 可灵4.0 可选 4–30 秒、720P/1080P;WAN 3.0 可选 4–30 秒、固定 720P。
price_per_second可省略,New API按最终生成尺寸对应单价结算。参考视频时长计入计费,参考音频只传上游但不计费。
提交成功后会返回任务 ID:
{
"id": "task_xxxxxxxx",
"task_id": "task_xxxxxxxx",
"object": "video",
"status": "queued"
}
task_id 查询,禁止无条件立即重试。失败后重新提交会创建新任务并再次计费。视频任务查询与下载
/v1/videos/{task_id}curl https://qingteng.pw/v1/videos/task_xxxxxxxx \ -H "Authorization: Bearer sk-YOUR_API_KEY"
常见状态包括 queued、processing、running、completed、success、failed 和 cancelled。部分接口会直接返回对象,部分接口会使用 {"data": {...}} 包装,客户端应同时兼容两种情况。
{
"id": "task_xxxxxxxx",
"task_id": "task_xxxxxxxx",
"status": "completed",
"progress": 100,
"video_url": "由接口返回的完整下载地址"
}
video_url、url 或 metadata.url,不要把下方通用地址套用到所有模型。/v1/videos/{task_id}/contentcurl -L https://qingteng.pw/v1/videos/task_xxxxxxxx/content \ -H "Authorization: Bearer sk-YOUR_API_KEY" \ -o result.mp4
任务耗时取决于模型和队列。客户端应使用 3~10 秒起步的指数退避轮询,不要高频请求。获取到完成结果后立即停止轮询并下载返回的 video_url。
错误处理
错误通常返回 JSON,消息位于 error.message 或 message:
{
"error": {
"message": "model is not available",
"type": "invalid_request_error"
}
}
400:请求参数错误,检查模型名、比例、时长、文件大小。401:Key 无效或请求头缺少 Bearer Token。402:额度不足。403:账号没有当前模型权限或请求被拒绝。404:任务不存在或模型不可用。413:请求体超过服务器限制,优先改用公网素材 URL。429:请求过于频繁,降低轮询或提交频率。5xx:服务或上游暂时异常,保留任务 ID 和响应内容再重试。
排查问题时建议同时保留任务 ID、HTTP 状态码、响应正文和发生时间。当前公开文档没有定义取消接口,客户端超时放弃请求不等于服务端已经取消任务。