可灵 3.0 采用异步任务模式,接口对标可灵官方 3.0 路径式 API:先提交任务拿到 id,再轮询 GET /tasks 获取成片。模型名写在 URL 路径里(/text-to-video/kling-3.0),请求体用 settings / options / contents 三个字段组织参数。
接入前请注意以下要点:
  1. Base URL 为 https://api.looprouter.com,端点是 /text-to-video/{model} 等;路径可选加 /v1 前缀(如 /v1/text-to-video/{model}),带与不带行为完全一致,方便可灵 SDK 直接接入。
  2. 鉴权用 LoopRouter 令牌:Authorization: Bearer sk-...。
  3. model 写在路径中:kling-3.0 / kling-3.0-turbo 走文生 / 图生端点,kling-3.0-omni 走 /omni-video。
  4. settings.resolution 取 720p / 1080p / 4k;settings.duration 为整数秒。
  5. 成功状态是 succeeded;成片 outputs[].url 为限时链接,请尽快转存。
  6. 回调(options.callback_url)当前不投递,请通过轮询 GET /tasks 获取结果。

创建视频任务

三个提交端点共用同一套请求体结构(prompt + settings + options + contents),仅 contents 的组合不同。

请求参数速查

settings 字段

仅传入的字段会覆盖网关默认值,省略的字段沿用模型档位默认。multi_shot 用指针区分「未设置」与「显式 false」,需要关闭多镜头时请显式传 false。

options 字段

contents 数组

每个元素由 type 决定读取哪些字段。图生视频用 first_frame / last_frame;Omni 可组合多种素材:
Omni 生成时,网关会按 contents 中素材出现的顺序把它们绑定进提示词,你只需在 prompt 中自然描述即可,无需手动书写素材占位符。
element 引用的 element_id 来自自定义主体(主体管理):用参考图 / 参考视频显式创建一个可复用主体,查询成功后拿到数字 element_id,即可让同一主体在多次生成中保持一致。这与 refer_image 传图后由网关临时创建主体不同——后者一次性,前者可复用。

三类生成端点

提交成功返回统一的 ack 信封,data.id 为网关任务 ID(后续查询用它):

动作控制

POST /motion-control/{model} · 模型 kling-3.0-motion-control 动作控制(Motion Control)用一段参考视频驱动图片中的角色 / 主体做出对应动作。它是专用端点,计费模型由端点自动绑定(路径里的 {model} 仅作占位,写 kling-3.0 或 kling-3.0-motion-control 均可)。请求体支持两种形态:官方 contents + settings(推荐,与可灵官方一致),或扁平结构(顶层直接放 image_url / video_url / mode 等,作兼容别名,走 POST /videos/motion-control)。两者并存时以 contents / settings 优先。
官方形态 —— contents[] 按内容顺序给出角色图片、参考视频与描述,settings 控制朝向、原声与分辨率: 扁平形态(兼容别名,POST /videos/motion-control):
输出时长由参考视频决定、提交时未知,网关按最大计费时长 30 秒预扣,任务完成后按实际时长回收多退少补(见计费规则),因此提交时请保证余额充足。上游以 model_name: "kling-v3" 提交。
动作控制是视频任务,提交成功返回与文 / 图 / Omni 一致的 ack 信封(data.id 为网关任务 ID、data.status),后续统一走 GET /tasks 查询:

数字人

POST /videos/avatar/image2video · 模型 kling-3.0-avatar 数字人(Avatar)用一段音频驱动人像图片开口说话(口型对齐)。同为专用端点、请求体扁平结构(不使用 settings / contents),计费模型由端点自动绑定。
cURL
输出时长跟随驱动音频(约 2–300 秒)、提交时未知,网关按最大计费时长 300 秒预扣,完成后按实际时长回收多退少补。pro(1080p)单价更高,请预留足够余额。上游数字人请求体不带 model_name 字段。
数字人的提交与查询不走视频任务那套 ack / GET /tasks,而是专属信封:提交返回 data.task_id / data.task_status,成功态是 succeed(注意——不是视频端点的 succeeded),并用专属查询端点拉取结果。提交响应:
用专属端点查询(不要用 GET /tasks): GET /videos/avatar/image2video/{task_id}
cURL
成功时 task_status 为 succeed,成片在 data.task_result.videos[](id / url / duration):
声音复刻(kling-3.0-voice)是非视频的独立任务,请求体、计费与查询方式都不同(同样是 task_id / succeed 专属信封 + 专属查询端点),详见声音复刻 API。

查询任务

GET /tasks 批量查询任务,task_ids 与 external_task_ids 二选一(一次只认一种,task_ids 优先),均支持逗号分隔批量。文生 / 图生 / Omni / 动作控制四类视频任务都用它查询,任务状态机:submitted → processing → succeeded / failed。数字人与声音复刻不在此列 —— 它们各有专属查询端点(GET /videos/avatar/image2video/{task_id}、GET /general/custom-voices/{task_id}),成功态是 succeed。
按任务 ID 查询
按业务 ID 查询
响应 data 恒为数组,每个元素结构如下: outputs[] 元素: 成功响应示例:
处理中 / 失败示例(outputs 为空数组):
outputs[].url 为限时下载链接,请及时转存;下载时请求中不要携带 Authorization 头。

错误响应

参数错误、鉴权失败或上游异常时返回错误信封:
429 与 5xx 建议指数退避重试(2s → 4s → 8s)。任务本身的失败不体现为 HTTP 错误,而是查询时 status 为 failed。

在线调试(试一试)

在 API 参考中可对每个端点直接发起真实请求:

文生视频

POST /text-to-video/

图生视频

POST /image-to-video/

Omni 多模态生成

POST /omni-video/

动作控制

POST /motion-control/

数字人提交

POST /videos/avatar/image2video

数字人查询

GET /videos/avatar/image2video/

任务查询

GET /tasks

相关文档

能力总览与定价

模型清单、技术规格、计费规则

快速开始

三步跑通第一个任务