LLMAPI VIDEO
API 调用说明
查看接口能力、请求参数、任务状态与按量计费规则。
GETTING STARTED
先确认接入方式
当前任务接口使用网站登录态,供 llmapi.pro 网页工作台调用。现有 API Key 不能直接用于这些视频接口;下方是当前网页接口说明,不是第三方服务端接入承诺。
公开模型目录可直接查询;创建、余额及任务查询需先登录网站。创建任务按 API 钱包余额计费,不消耗订阅额度。
免费查询可用模型
curl --fail-with-body 'https://llmapi.pro/api/video/catalog'
检查 enabled、models[].enabled 与 prices。prices 中的 cents 是人民币分 / 秒,已包含适用的折扣。
接口列表
https://llmapi.pro/api/video
| 方法 / 路径 | 鉴权 | 行为 |
|---|---|---|
GET /catalog | 公开 | 读取模型、分辨率、每秒价格和可用状态,不扣费。 |
GET /balance | 网站登录态 | 读取 API 钱包总额、冻结额和可用余额。 |
POST /tasks | 网站登录态 | 校验参数、预扣费用并创建异步任务;返回 202。 |
GET /tasks/:id | 网站登录态 | 查询自己的任务;完成后返回视频地址。 |
GET /tasks | 网站登录态 | 最近 30 条任务,按创建时间倒序。 |
创建一次,按任务 ID 查询
每次新创作使用新的 UUID 作为 Idempotency-Key。相同键和相同请求内容会返回原任务,不重复扣费;相同键换内容会返回 409。若提交超时,保留原键和原请求体重试,不要盲目创建新任务。
JavaScript · 网站同域会话示例
const requestKey = crypto.randomUUID();
const payload = {
"model": "MiniMax-H3",
"prompt": "A quiet forest at dawn. A slow camera push, gentle wind, no cuts.",
"resolution": "768P",
"duration": 5,
"ratio": "16:9"
};
// 仅适用于已登录的 llmapi.pro 同域页面。调用后会按量扣费。
// 网络中断后重试时,保留相同的 requestKey 和 payload。
async function submitVideo() {
const res = await fetch('/api/video/tasks', {
method: 'POST', credentials: 'same-origin',
headers: { 'Content-Type': 'application/json', 'Idempotency-Key': requestKey },
body: JSON.stringify(payload)
});
const task = await res.json();
if (!res.ok) throw new Error(task.error || 'request_failed');
return task;
}
// 确认费用后手动调用 submitVideo(),本页不会执行代码。202 响应格式示例
{
"id": "00000000-0000-4000-8000-000000000001",
"model": "MiniMax-H3",
"mode": "text",
"prompt": "A quiet forest at dawn. A slow camera push, gentle wind, no cuts.",
"resolution": "768P",
"duration": 5,
"ratio": "16:9",
"price_cny": 1.5,
"state": "queued",
"error_code": null,
"refunded": false,
"created_at": "2026-10-30T00:00:00.000Z",
"video_url": null
}查询状态与结果
async function getVideo(taskId) {
const res = await fetch('/api/video/tasks/' + encodeURIComponent(taskId), {
credentials: 'same-origin', cache: 'no-store'
});
const task = await res.json();
if (!res.ok) throw new Error(task.error || 'request_failed');
return task;
}
// 建议每 10–15 秒查询一次;succeeded / failed 后停止。
// 仅 succeeded 的 video_url 可用于播放或下载。queued → submitting → pending → succeeded / failed
queued 为排队中,submitting 为提交中,pending 为生成中。提交后的错误可能正在核实,只有终态 failed 才表示失败;请以 refunded 字段确认退款。结果链接应及时下载保存。
请求参数
| 字段 | 类型 | 必填 | 规则 |
|---|---|---|---|
model | string | 可选 | 默认 MiniMax-H3;可用模型以 catalog.models 为准。 |
prompt | string | 必填 | 去除首尾空白后 1–5000 字符。 |
resolution | string | 必填 | 严格匹配所选模型价格表中的键,注意大小写。 |
duration | integer | 必填 | 4–15 秒 |
ratio | string | 必填 | 16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:9 · 有首帧时可用 source |
first_frame | string | 可选 | data:image/(png|jpeg|webp);base64,… |
last_frame | string | 可选 | 与首帧格式相同;必须同时提供 first_frame。 |
模型与分辨率键
MiniMax-H3 — 768P / 2K
seedance-2.0-mini — 480p / 720p
seedance-2.0 — 480p / 720p / 1080p / 4k
图片必须为静态 PNG、JPEG 或 WebP 的 Base64 Data URL,不接受远程图片网址。每张解码后最多 2 MiB,边长至少 256 像素、总像素不超过 16,777,216,宽高比 0.4–2.5。首尾帧比例需一致;指定画幅时需预先裁切,比例误差不超过 1%。请求体上限 6 MB。
未列出的字段会被拒绝。当前不支持 seed、独立运镜字段、参考视频、音频上传、优先通道或 Context-IR。镜头和声音意图写入 prompt。
计费与常见错误
预扣金额 = 请求时长 × 对应分辨率的最终秒价。失败自动退回同一 API 钱包。金额字段 price_cny、balance_cny、frozen_cny、available_cny 的单位均为人民币元;catalog.prices 中 cents 的单位是分。 查看价格与倍率 →
每个账号每分钟最多 10 次创建请求,同一计费账号最多 2 条进行中的任务。
| HTTP | 常见 error | 处理方式 |
|---|---|---|
| 400 | invalid_* / unsupported_parameter / idempotency_key_required | 核对参数、图片与 UUID 请求键。 |
| 401 | login_required | 登录网站;普通 API Key 不能替代登录态。 |
| 402 | insufficient_balance | 充值 API 按量钱包。 |
| 403 | invalid_origin | 仅在本站已登录同域页面调用。 |
| 404 | task_not_found | 检查任务 ID 及所属账号。 |
| 409 | idempotency_conflict | 重试需保持原请求内容;新创作使用新键。 |
| 429 | too_many_requests / too_many_active_tasks | 按 Retry-After 等待,或等待进行中任务结束。 |
| 503 | video_unavailable / model_unavailable / tasks_unavailable | 稍后重试;创建重试继续使用原请求键。 |