Kling 3.0
根据文本或一到两帧画面,生成 std 或 pro 档、时长 3–15 秒的视频,支持多镜头分镜和可复用的元素;按秒计费。
- 异步:创建请求返回任务 ID,任务成功后才能拿到视频。
- 三种输入方式:纯文本、一张首帧图,或首帧加尾帧。该模型不接受参考图、参考视频或音频。
resolution是档位:std以 720p 渲染,pro(默认)以 1080p 渲染。- 多镜头:基于一张首帧图,最多五个镜头,每个镜头有各自的提示词和时长。各镜头时长之和必须等于
duration。 - 元素:用
elements一次性定义最多三个有名字的主体。 - 按所选档位下的视频秒数计费。失败的任务不收费。
在调试窗口里打开本模型,填入你的 BeatAPI API 密钥即可创建任务。调用是真实的,费用从你自己的余额中扣除。
接口与鉴权
POST https://api.beatapi.io/v1/videos/tasks
Authorization
string
必需
你的 BeatAPI API 密钥,以 Bearer <BEATAPI_API_KEY> 形式发送。在控制台创建密钥。密钥只能保存在你的服务端,不要放进浏览器或移动端应用。
请求体使用 JSON,并设置 Content-Type: application/json。Idempotency-Key 为可选:每个逻辑请求发送一个唯一值(最长 255 个字符),仅在重试完全相同的请求体时复用。24 小时内,用相同的键和请求体重试会再次返回第一次的响应,并带上 Idempotent-Replayed: true;相同的键搭配不同的请求体则返回 409 idempotency_conflict。非 2xx 的响应不会被保存,因此 400 或 402 之后的重试会重新执行。
请求流程
等待任务完成
调用 GET /v1/tasks/{task_id},两次调用之间等待 data.poll_after_seconds 秒(图片 5 秒,视频 8 秒),直到 status 为 succeeded 或 failed。也可以为 task.succeeded 和 task.failed 注册 Webhook;仍需保留轮询作为兜底,因为因处理超时而终止的任务不会发送事件。
输入模式
请求参数
model
string
必需
要运行的模型。
取值:kling-v3
取值有误时
- 未传:
"model" is required - 把图片模型发到了这个端点:
"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
prompt
string
必需
视频里发生什么:主体、动作、运镜和风格。
长度:1–5000 个字符
- 长度按字符数计算(一个中日韩字符算一个字符)。
- 所有模式都必须传,包括多镜头;多镜头时,每个镜头还要在
multi_prompt中各有自己的提示词。
取值有误时
- 未传:
"prompt" is required - 为空或超过长度上限:
"prompt" has an unsupported length
images
string[]
可选
一张首帧,或一张首帧加一张尾帧。
数量:1–2
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 一个链接:视频从这张图开始。两个链接:
images[0]是首帧,images[1]是尾帧。 - 多镜头(
multi_shots: true)只接受恰好一张图片。 - 该模型没有参考图字段;某个主体的图片请放在
elements中。
取值有误时
- 多于两个链接:
"images" accepts at most 2 items - 空数组:
"images" requires at least 1 item - 不是 https:// 链接:
"images[0]" must be a public HTTPS URL multi_shots: true但没有图片或有两张图片:Kling V3 multi-shot mode requires exactly one image
duration
integer
可选默认值: 5
视频时长,单位为秒,须为整数。计费以它为准。
默认值:5
范围:3–15
- 不传时使用并按
5计费。 - 使用
multi_shots: true时,multi_prompt中各镜头的duration之和必须恰好等于这个数。若不传duration,则之和必须为 5。
取值有误时
- 超出范围、不是整数,或以字符串传入:
"duration" is outside its supported range - 多镜头时长之和不等于
duration:Kling V3 shot durations must sum to duration
aspect_ratio
string
可选默认值: 16:9
视频的宽高比(宽:高)。
可选值:16:9, 9:16, 1:1
默认值:16:9
- 默认值为
16:9。
取值有误时
- 取值不在列表中:
"aspect_ratio" must be one of: [16:9 9:16 1:1]
resolution
string
可选默认值: pro
画质档位:std 以 720p 渲染,pro 以 1080p 渲染。pro 每秒价格更高。取值是 std 和 pro,不是像素尺寸。
可选值:std, pro
默认值:pro
- 不传时使用并按
pro计费。 - 不接受
4K、720p和1080p:请传std或pro。
取值有误时
- 取值不在列表中(例如
720p或4K):"resolution" must be one of: [std pro]
sound
boolean
可选
视频是否带有生成的配乐。
- 不传时,声音跟随
multi_shots:多镜头请求开启,其他情况关闭。传true或false可自行决定。
取值有误时
- 不是 true 或 false:
"sound" must be a boolean
multi_shots
boolean
可选默认值: false
开启分镜模式:视频由 multi_prompt 中列出的镜头组成。默认值为 false。
默认值:false
- 需要在
images中恰好有一张图片,并且multi_prompt的各镜头时长之和等于duration。没有multi_shots: true时,multi_prompt会被拒绝。 - 检查按以下顺序进行:先看是否恰好一张图片,再看有没有
multi_prompt,最后看时长。
取值有误时
- 不是 true 或 false:
"multi_shots" must be a boolean - 没有图片或多于一张图片:
Kling V3 multi-shot mode requires exactly one image multi_prompt缺失:Kling V3 multi-shot mode requires multi_prompt- 各镜头时长之和不等于
duration:Kling V3 shot durations must sum to duration
multi_prompt
object[]
可选
多镜头视频的各个镜头,按顺序排列:一到五个对象,每个都有自己的提示词和时长。
数量:1–5
- 每个镜头是一个对象,有两个必填字段,不接受其他字段:
multi_prompt[].prompt(字符串,必填):这个镜头里发生什么,1 到 500 个字符。multi_prompt[].duration(整数,必填):这个镜头的时长,单位为整数秒,1 到 12。- 各镜头时长之和必须等于请求的
duration(不传duration时为 5),且总和不超过 15。 - 仅在
multi_shots: true时有效。
取值有误时
- 没有
multi_shots: true却传了:"multi_prompt" requires multi_shots=true - 多于五个镜头:
"multi_prompt" accepts at most 5 items - 空数组:
"multi_prompt" requires at least 1 item - 某个镜头缺少
prompt:"prompt" is required in "multi_prompt[0]" - 某个镜头缺少
duration:"duration" is required in "multi_prompt[0]" - 某个镜头的提示词为空或超过 500 个字符:
"multi_prompt[0].prompt" has an unsupported length - 某个镜头时长不在 1 到 12 之间或不是整数:
"multi_prompt[0].duration" is outside its supported range - 出现
prompt和duration之外的键:field "name" is not supported in "multi_prompt[0]" - 各镜头时长之和不等于
duration:Kling V3 shot durations must sum to duration
elements
object[]
可选
最多三个有名字的主体(角色、产品、道具),每个用图片一次性定义。
数量:≤ 3
- 最多三个对象的数组。每个对象接受以下键,不接受其他键:
elements[].name(字符串,必填):元素的名字,至少 1 个字符。elements[].description(字符串,可选):这个元素是什么。不传则用name作为描述。elements[].element_input_urls(字符串数组,必填):1 到 4 个展示该元素的公开 HTTPS 链接。elements[].element_input_audio_urls(字符串数组,可选):该元素恰好一个公开 HTTPS 音频链接。elements[].start_time和elements[].end_time(整数,可选):时间,单位为毫秒,各自为 0 到 30000 的整数。要么都传,要么都不传。end_time必须大于start_time,且end_time - start_time必须在 3000 到 8000 之间(3 到 8 秒)。- 链接数量的限制对每个元素分别适用:每个条目都可以有自己的四个链接和一个音频链接。
取值有误时
- 多于三个元素:
"elements" accepts at most 3 items - 元素不是对象:
"elements[0]" must be an object - 元素缺少
name:"name" is required in "elements[0]" - 元素缺少
element_input_urls:"element_input_urls" is required in "elements[0]" name为空:"elements[0].name" has an unsupported length- 多于四个链接:
"elements[0].element_input_urls" accepts at most 4 items element_input_urls为空数组:"elements[0].element_input_urls" requires at least 1 item- 链接不是 https://:
"elements[0].element_input_urls[1]" must be a public HTTPS URL - 多于一个音频链接:
"elements[0].element_input_audio_urls" accepts at most 1 items start_time或end_time不在 0 到 30000 之间,或不是整数:"elements[0].start_time" is outside its supported range- 元素中出现不接受的键:
field "color" is not supported in "elements[0]" - 只传了
start_time和end_time之一、end_time不晚于start_time,或片段短于 3 秒或长于 8 秒:Kling V3 element segment must provide a 3-8 second start_time/end_time range
输入素材限制
网关会在创建任务之前读取每一项输入,超出这些限制的输入会被拒绝,并返回点名该输入的 400 bad_request。不扣费。
- 网关在创建任务前只检查每张图片、元素链接和音频链接是否为公开 HTTPS 链接,不会检查大小、格式或尺寸。因此模型无法使用的输入会在提交后导致任务失败;失败信息会说明需要修改什么,并全额退还预扣费用。
- 只有本地文件?先用
POST /v1/files上传,再传入返回的data.url。
多镜头规则
创建任务时按以下顺序检查;违反任一规则的请求会被 400 bad_request 拒绝,且不收费。
- 不支持纯文本的多镜头:多镜头视频总是从一张图片开始。
- 多镜头请求按
duration秒计费,即各镜头时长之和。
该模型不接受的字段
传入下列字段会在扣费前被拒绝,而不是被忽略:
reference_images、reference_videos、reference_audios、generate_audio、seed、quality、watermark、task_type、output_format→field "reference_images" is not supported by model kling-v3(其中是你传入的字段名)。- 其他任何未知字段 →
unknown field: <name>。
请求示例
文生视频
pro 档(1080p)、带声音的 5 秒片段。
首帧
视频从这张图开始。
首帧和尾帧
视频从第一张图过渡到第二张图,使用更便宜的 std 档(720p)。
多镜头
基于一张首帧图的两个 3 秒镜头。镜头时长之和(3 + 3)等于 duration(6)。
可复用的元素
用两张图片定义一个有名字的元素。该元素名为 product,描述是可选的。
响应
创建任务(201)
任务对象。任务成功之前 output 为 null。标注“运行中”的字段会在任务结束后消失。
任务完成
GET /v1/tasks/{task_id} 返回 HTTP 200 和 status: "succeeded",结果在 data.output 中。
输出字段
任务失败
失败的任务在 GET /v1/tasks/{task_id} 上仍然是 HTTP 200:失败信息在响应体里。预扣金额会全额退回,因此不会扣费。
完整示例
创建任务,按服务端给出的轮询提示等待,然后打印结果链接。请在环境变量中设置 BEATAPI_API_KEY 并安装 requests。
计费
sound不影响价格:价格只取决于duration和resolution,因此无论是否开启声音,都适用下方的价格行。- 按所选档位下的视频秒数计费:下方列表显示的是 8 秒片段的价格,除以 8 即为每秒单价(
std约 0.13)。 - 秒数即
duration,不传则为 5;多镜头请求则是各镜头时长之和,也就等于duration。任务上的usage.billable_duration_seconds会显示该值。 - 价格在创建任务时预扣,视频生成完成后结算。任务失败(包括提交后被内容审核拒绝)会全额退款。
常见错误
HTTP 错误速查
任务生成之前的错误会以非 2xx 响应返回,不扣费。请根据 error.code 或 error.retryable 判断处理方式;message 会指出问题所在。完整列表和重试策略见错误码。
身份验证
Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.
请求头
请求体使用 JSON,并设置 Content-Type: application/json。Idempotency-Key 为可选:每个逻辑请求发送一个唯一值(最长 255 个字符),仅在重试完全相同的请求体时复用。24 小时内,用相同的键和请求体重试会再次返回第一次的响应,并带上 Idempotent-Replayed: true;相同的键搭配不同的请求体则返回 409 idempotency_conflict。非 2xx 的响应不会被保存,因此 400 或 402 之后的重试会重新执行。
请求
要运行的模型。
取值:kling-v3
取值有误时
- 未传:
"model" is required - 把图片模型发到了这个端点:
"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
视频里发生什么:主体、动作、运镜和风格。
长度:1–5000 个字符
- 长度按字符数计算(一个中日韩字符算一个字符)。
- 所有模式都必须传,包括多镜头;多镜头时,每个镜头还要在
multi_prompt中各有自己的提示词。
取值有误时
- 未传:
"prompt" is required - 为空或超过长度上限:
"prompt" has an unsupported length
视频的宽高比(宽:高)。
可选值:16:9, 9:16, 1:1
默认值:16:9
- 默认值为
16:9。
取值有误时
- 取值不在列表中:
"aspect_ratio" must be one of: [16:9 9:16 1:1]
视频时长,单位为秒,须为整数。计费以它为准。
默认值:5
范围:3–15
- 不传时使用并按
5计费。 - 使用
multi_shots: true时,multi_prompt中各镜头的duration之和必须恰好等于这个数。若不传duration,则之和必须为 5。
取值有误时
- 超出范围、不是整数,或以字符串传入:
"duration" is outside its supported range - 多镜头时长之和不等于
duration:Kling V3 shot durations must sum to duration
最多三个有名字的主体(角色、产品、道具),每个用图片一次性定义。
数量:≤ 3
- 最多三个对象的数组。每个对象接受以下键,不接受其他键:
elements[].name(字符串,必填):元素的名字,至少 1 个字符。elements[].description(字符串,可选):这个元素是什么。不传则用name作为描述。elements[].element_input_urls(字符串数组,必填):1 到 4 个展示该元素的公开 HTTPS 链接。elements[].element_input_audio_urls(字符串数组,可选):该元素恰好一个公开 HTTPS 音频链接。elements[].start_time和elements[].end_time(整数,可选):时间,单位为毫秒,各自为 0 到 30000 的整数。要么都传,要么都不传。end_time必须大于start_time,且end_time - start_time必须在 3000 到 8000 之间(3 到 8 秒)。- 链接数量的限制对每个元素分别适用:每个条目都可以有自己的四个链接和一个音频链接。
取值有误时
- 多于三个元素:
"elements" accepts at most 3 items - 元素不是对象:
"elements[0]" must be an object - 元素缺少
name:"name" is required in "elements[0]" - 元素缺少
element_input_urls:"element_input_urls" is required in "elements[0]" name为空:"elements[0].name" has an unsupported length- 多于四个链接:
"elements[0].element_input_urls" accepts at most 4 items element_input_urls为空数组:"elements[0].element_input_urls" requires at least 1 item- 链接不是 https://:
"elements[0].element_input_urls[1]" must be a public HTTPS URL - 多于一个音频链接:
"elements[0].element_input_audio_urls" accepts at most 1 items start_time或end_time不在 0 到 30000 之间,或不是整数:"elements[0].start_time" is outside its supported range- 元素中出现不接受的键:
field "color" is not supported in "elements[0]" - 只传了
start_time和end_time之一、end_time不晚于start_time,或片段短于 3 秒或长于 8 秒:Kling V3 element segment must provide a 3-8 second start_time/end_time range
一张首帧,或一张首帧加一张尾帧。
数量:1–2
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 一个链接:视频从这张图开始。两个链接:
images[0]是首帧,images[1]是尾帧。 - 多镜头(
multi_shots: true)只接受恰好一张图片。 - 该模型没有参考图字段;某个主体的图片请放在
elements中。
取值有误时
- 多于两个链接:
"images" accepts at most 2 items - 空数组:
"images" requires at least 1 item - 不是 https:// 链接:
"images[0]" must be a public HTTPS URL multi_shots: true但没有图片或有两张图片:Kling V3 multi-shot mode requires exactly one image
多镜头视频的各个镜头,按顺序排列:一到五个对象,每个都有自己的提示词和时长。
数量:1–5
- 每个镜头是一个对象,有两个必填字段,不接受其他字段:
multi_prompt[].prompt(字符串,必填):这个镜头里发生什么,1 到 500 个字符。multi_prompt[].duration(整数,必填):这个镜头的时长,单位为整数秒,1 到 12。- 各镜头时长之和必须等于请求的
duration(不传duration时为 5),且总和不超过 15。 - 仅在
multi_shots: true时有效。
取值有误时
- 没有
multi_shots: true却传了:"multi_prompt" requires multi_shots=true - 多于五个镜头:
"multi_prompt" accepts at most 5 items - 空数组:
"multi_prompt" requires at least 1 item - 某个镜头缺少
prompt:"prompt" is required in "multi_prompt[0]" - 某个镜头缺少
duration:"duration" is required in "multi_prompt[0]" - 某个镜头的提示词为空或超过 500 个字符:
"multi_prompt[0].prompt" has an unsupported length - 某个镜头时长不在 1 到 12 之间或不是整数:
"multi_prompt[0].duration" is outside its supported range - 出现
prompt和duration之外的键:field "name" is not supported in "multi_prompt[0]" - 各镜头时长之和不等于
duration:Kling V3 shot durations must sum to duration
开启分镜模式:视频由 multi_prompt 中列出的镜头组成。默认值为 false。
默认值:false
- 需要在
images中恰好有一张图片,并且multi_prompt的各镜头时长之和等于duration。没有multi_shots: true时,multi_prompt会被拒绝。 - 检查按以下顺序进行:先看是否恰好一张图片,再看有没有
multi_prompt,最后看时长。
取值有误时
- 不是 true 或 false:
"multi_shots" must be a boolean - 没有图片或多于一张图片:
Kling V3 multi-shot mode requires exactly one image multi_prompt缺失:Kling V3 multi-shot mode requires multi_prompt- 各镜头时长之和不等于
duration:Kling V3 shot durations must sum to duration
画质档位:std 以 720p 渲染,pro 以 1080p 渲染。pro 每秒价格更高。取值是 std 和 pro,不是像素尺寸。
可选值:std, pro
默认值:pro
- 不传时使用并按
pro计费。 - 不接受
4K、720p和1080p:请传std或pro。
取值有误时
- 取值不在列表中(例如
720p或4K):"resolution" must be one of: [std pro]
视频是否带有生成的配乐。
- 不传时,声音跟随
multi_shots:多镜头请求开启,其他情况关闭。传true或false可自行决定。
取值有误时
- 不是 true 或 false:
"sound" must be a boolean
响应
任务对象。任务成功之前 output 为 null。标注“运行中”的字段会在任务结束后消失。

