1. 获取 API 密钥
创建账号,验证邮箱,然后在
/dashboard 创建一个密钥。密钥只会以
llmr_sk_live_… 的形式显示一次 — 请像保管其他密钥一样妥善保存。
新账号默认使用预付费余额 — 在发送真实流量之前,请先在
/settings/credits 充值。
密钥格式、作用域、单密钥限额,以及测试密钥与正式密钥的区别,见
身份认证。
2. 生成一段视频或一张图片
VideoRouter 的旗舰能力是视频与图像生成 — 一个 API 接入所有开源权重模型供应商(Fal、WaveSpeedAI、Atlas Cloud、Replicate、Novita、MachGen),也包括闭源前沿模型
(Veo、Imagen、Grok Imagine)。视频生成是异步、基于任务的:
POST /v1/videos 创建任务,
然后轮询 GET /v1/videos/{id} 查询状态。
创建任务时即按请求的秒数计费;轮询本身免费。
# 创建任务 — model:"auto" 默认使用 machgen/minimax-h3;指定具体 slug(如 "fal/wan-25-preview")可跳过自动选择
import requests
resp = requests.post(
"https://videorouter.sh/api/v1/videos",
headers={"Authorization": "Bearer llmr_sk_live_...", "Content-Type": "application/json"},
json={"model": "auto", "prompt": "a paper airplane gliding over a city", "duration_secs": 8},
)
job = resp.json()
# -> {"id": "video_...", "status": "pending", ...}
# 轮询
status = requests.get(
f"https://videorouter.sh/api/v1/videos/{job['id']}",
headers={"Authorization": "Bearer llmr_sk_live_..."},
).json()
# -> {"status": "in_progress"} then {"status": "completed", "url": "https://..."}
图像生成则是同步的 —
POST /v1/images 会在同一个请求中直接返回图片(或携带真实
usage.cost 的错误信息),与 OpenRouter 的
/api/v1/images 接口约定一致。文生图与图生图共用同一个端点 —
通过 input_references 传入参考图,而不是调用单独的编辑接口:
curl https://videorouter.sh/api/v1/images \
-H "Authorization: Bearer llmr_sk_live_..." \
-H "content-type: application/json" \
-d '{
"model": "gpt-image-1",
"prompt": "a red panda astronaut floating in space",
"aspect_ratio": "16:9",
"resolution": "2K"
}'
# -> {"data": [{"b64_json": "..."}], "usage": {"cost": 0.0421, ...}}
编辑一张已有图片的方式相同 — 将源图片的 URL(或 base64
data: URI)作为
input_references 传入,编辑指令写在
prompt 中。目录里所有标记为
Image-to-Image 的模型都支持这种方式 —
包括 OpenAI 的 GPT Image 系列、Black Forest Labs 的 Kontext 系列,以及 Qwen Image Edit:
curl https://videorouter.sh/api/v1/images \
-H "Authorization: Bearer llmr_sk_live_..." \
-H "content-type: application/json" \
-d '{
"model": "atlascloud/qwen-image-edit",
"prompt": "remove the freckles from her face",
"input_references": [
{"image_url": {"url": "https://example.com/portrait.jpg"}}
]
}'
# -> {"data": [{"url": "https://..."}], "usage": {"cost": 0.0315, ...}}
完整参数说明、模型目录与价格: 视频生成 · 图像生成。 对已有视频或图片做超分辨率放大(无需提示词)走的是同样的端点: 视频超分辨率 · 图像超分辨率。
3. 对话补全接口同样可用
同一个密钥也能调用兼容 OpenAI 的 POST /v1/chat/completions —
把现有的 OpenAI SDK 指向我们的 base_url 并替换密钥即可,无需引入新的客户端库。设置
model:"auto" 后,我们的路由器会在满足你的提示词质量要求的模型中挑选最便宜的一个;
显式指定模型 id 则会完全跳过路由器。
# model:"auto" — VideoRouter 会挑选满足要求的最便宜模型
curl https://videorouter.sh/api/v1/chat/completions \
-H "Authorization: Bearer llmr_sk_live_..." \
-H "content-type: application/json" \
-d '{
"model": "auto",
"messages": [{"role": "user", "content": "Write a Python web scraper"}]
}'
自动路由模式、OpenAI SDK 示例与流式输出: 对话补全。
选择模型
你可以直接用 slug 调用目录中的任意模型 — 视频/图像模型带供应商前缀(例如
fal/wan-25-preview、
replicate/hunyuan-video-fast),
对话模型同理(例如 anthropic/claude-opus-4.8)—
完整最新列表见 GET /v1/models 或浏览
/models。无论是显式指定还是自动路由,每个模型的计费方式都一样:
供应商挂牌价加统一 2% 平台费,各种模式概莫能外 — 见
/pricing。
不确定该选哪个对话模型?保留 model:"auto" — 路由器会预判你的请求需要什么能力
(推理、代码、工具调用、视觉、上下文长度),并在目录中挑选满足条件的最便宜模型。每次部署都自带自动的供应商故障转移,因此单个上游中断不会导致你的请求失败。
视频与图像生成目前还没有自动路由 — 请直接从目录中选择一个模型 slug(
model:"auto" 用在
/v1/videos 上时仅默认指向
machgen/minimax-h3)。
错误与速率限制
错误格式与 OpenAI 一致:{"error": {"message", "type", ...}}。
| 状态码 | 含义 |
|---|---|
| 401 | API 密钥缺失、无效或已过期 |
| 402 | 预付费余额已 ≤ $0,或该密钥已达到月度支出上限 — 请在 /settings/credits 充值 |
| 429 | 达到单密钥的 RPM/TPM 限制 — 响应头中的 Retry-After 会告知需要等待多久 |
可重试的上游故障(超时、429 或供应商返回的 5xx)不会直接抛给你 — 网关会先自动按顺序尝试该模型的故障转移列表。只有当所有候选都失败时,你才会看到错误。
下一步
视频生成
文生视频、图生视频、参考图生视频,以及视频编辑 — 用文本提示词修改已有片段。
图像生成
文生图与图生图共用一个端点,按图片计费。
身份认证
密钥格式、作用域、单密钥限额、密钥轮换与吊销、测试与正式密钥。
模型与路由
model:"auto" 如何选择模型,以及如何显式指定模型。
模型故障转移
当某个模型宕机或被限流时的跨模型有序故障转移。
供应商选择
兼容 OpenRouter 的 provider 偏好设置,可在单个模型内指定。
流式输出
SSE 格式、用量统计,以及流式过程中的故障转移语义。
工具调用与结构化输出
跨供应商统一的 tools 与 response_format。
错误与速率限制
每个状态码、错误体格式,以及 RPM/TPM/支出上限的行为。
价格与账单
平台费、预付费余额、充值、自动续费与单密钥支出上限。
API 参考
每个端点的请求/响应格式、认证方式与示例。
浏览模型
查看每个可路由模型的上下文长度、能力与实时价格。