SpanRouter API 文档 ← 返回主页

API 文档

通过统一、标准的接口协议调用平台上的多种大模型 —— 只需替换一个 Base URL。

快速开始

三步接入,五分钟内跑通第一个请求。

第 1 步:创建令牌

  1. 登录 llmlent.com,进入「控制台」
  2. 打开「令牌」页面,点「添加令牌」
  3. 创建后复制生成的密钥(形如 sk-xxxxxxxx)
密钥只显示一次,请立即保存。不要把它写进前端代码或公开仓库。

第 2 步:记下 Base URL

https://llmlent.com/v1

第 3 步:发起第一个请求

任何 OpenAI 兼容的客户端/SDK 都能直接用,把 base_url 换成上面的地址、密钥换成你的令牌即可。

cURL

curl https://llmlent.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-你的令牌" \
  -d '{
    "model": "deepseek-chat",
    "messages": [
      {"role": "user", "content": "你好,介绍一下你自己"}
    ]
  }'

Python

# pip install openai
from openai import OpenAI

client = OpenAI(
    api_key="sk-你的令牌",
    base_url="https://llmlent.com/v1",
)

resp = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

Node.js

// npm install openai
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-你的令牌",
  baseURL: "https://llmlent.com/v1",
});

const resp = await client.chat.completions.create({
  model: "deepseek-chat",
  messages: [{ role: "user", content: "你好" }],
});
console.log(resp.choices[0].message.content);
模型名从哪来?登录控制台 → 「模型列表」查看当前可用的模型 ID。
上面示例里的 deepseek-chat 只是占位,请替换成你实际要用的模型。

认证

所有请求都通过 HTTP 请求头携带密钥:

Authorization: Bearer sk-你的令牌

接口

平台提供 OpenAI 兼容接口,绝大多数客户端与 SDK 无需改造即可接入。

POST /v1/chat/completions

对话补全 —— 最常用的接口。

参数类型说明
modelstring模型 ID,见控制台「模型列表」
messagesarray对话消息数组,元素含 role 与 content
streamboolean是否流式返回,默认 false
temperaturenumber采样温度,常见范围 0–2
max_tokensinteger限制返回的最大 token 数

GET /v1/models

列出当前令牌可用的模型。

POST /v1/embeddings

文本向量化(需平台支持对应模型)。

视频生成

视频生成是异步任务:先提交任务拿到 task_ 开头的任务号,再轮询状态,完成后下载成片。

POST /v1/videos

提交视频生成任务(OpenAI Videos 风格)。

参数类型说明
modelstring视频模型 ID,见控制台「模型列表」
promptstring提示词,必须放在顶层,不能只写在 content 里
secondsstring / number时长(秒),推荐字段,如 "5" 或 5
resolutionstring480p / 720p / 1080p / 4k
ratiostring画面比例,如 16:9、9:16
generate_audioboolean是否生成音频(模型支持时生效)
contentarray参考素材,可选,见下方示例
时长写法:客户端统一写 seconds。平台会按上游要求自动转换,不需要自己判断用 seconds 还是 duration。

content 支持的素材类型:

参考图片、参考视频必须是公网可访问的 URL。命中「含参考视频」档后单价更低。

带参考图的请求示例:

curl https://llmlent.com/v1/videos \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ***" \
  -d '{
    "model": "doubao-seedance-2-0-260128",
    "prompt": "雨后的城市街道,镜头缓慢向前推进,电影光影",
    "seconds": "5",
    "resolution": "1080p",
    "ratio": "adaptive",
    "content": [
      {"type": "image_url", "image_url": {"url": "https://example.com/first-frame.png"}, "role": "first_frame"},
      {"type": "image_url", "image_url": {"url": "https://example.com/last_frame.png"}, "role": "last_frame"}
    ]
  }'

带参考视频的请求示例:

curl https://llmlent.com/v1/videos \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ***" \
  -d '{
    "model": "doubao-seedance-2-0-260128",
    "prompt": "镜头跟随人物穿过雨后的街道,电影光影",
    "seconds": "5",
    "resolution": "720p",
    "ratio": "adaptive",
    "content": [
      {"type": "video_url", "video_url": {"url": "https://example.com/ref.mp4"}, "role": "reference_video"}
    ]
  }'

GET /v1/videos/{task_id}

查询任务状态。提交成功后会返回 task_ 开头的任务号,用它查询。

{
  "id": "task_xxx",
  "object": "video",
  "status": "in_progress",
  "progress": 50,
  "metadata": { "url": "https://..." }
}

状态值:queued → in_progress → completed;失败为 failed。

GET /v1/videos/{task_id}/content

下载成片。任务 completed 后调用,会返回或跳转到视频文件。

兼容写法:New API 风格

也支持 POST /v1/video/generations 与 GET /v1/video/generations/{task_id},参数相同,查询返回 {code, data} 信封(data.status 为 SUCCESS 等)。两种入口二选一即可。

视频计费

4K 注意:4K 的 token 量约为 720p 的 9 倍。预扣金额看起来不高,但结算会按实际 token 补扣,请确保余额充足。

参考实例(seedance-2.0 系列,720p、5 秒):约 108,900 tokens,实扣约 ¥2.00;480p、4 秒约 40,594 tokens,实扣约 ¥0.75。

计费与额度

错误码

状态码常见原因怎么处理
401密钥无效或已禁用检查 Authorization 头,确认令牌未删除/未过期
403该令牌没有使用此模型的权限在控制台调整令牌的可用模型范围
429请求过于频繁,或额度不足降低并发;检查钱包余额
400请求体格式错误(如模型名写错)核对 model 是否为控制台里的模型 ID
5xx服务端或上游模型异常稍后重试;持续出现请联系客服

常见问题

报错「模型不存在」怎么办?

多半是模型名写错了。请到控制台「模型列表」复制准确的模型 ID,注意大小写和连字符。

能同时用在多个软件里吗?

可以。建议每个软件建一个独立令牌,这样能分别限制额度,出问题也好定位。

支持流式输出(打字机效果)吗?

支持。请求里加 "stream": true 即可,大多数客户端默认就是流式。

调用失败会计费吗?

失败的请求不计费。只有实际返回了内容的调用才会消耗额度。

地址到底要不要带 /v1?

看客户端。填 https://llmlent.com 或 https://llmlent.com/v1 都试一下,能通即可 —— 这是最常见的配置问题。