接入文档
- 创建 Router API Key, 安全保存只显示一次的密钥.
- 查看可用额度, 支付通道未配置时无法充值.
- 查询可调用模型列表, 使用模型 ID 发起请求.
已支持文本、图像、音频、视频、向量、重排序和 Decisions 接口. 请在模型详情中确认输入输出模态、适用端点和价格单位, 不同模型的参数并不相同.
API Key
推理请求通过 Authorization: Bearer YOUR_ROUTER_API_KEY 鉴权. Router Key 与上游供应商 Key 相互独立, 调用方只使用 Router Key.
不要将密钥放入公开仓库或浏览器端代码. 调用应从自己的服务端发起. Key 到期、停用、余额和预算限制都会影响请求是否获准.
模型列表
GET /api/v1/models 不要求 Router API Key, Preview 仍保留平台访问门禁. 模型目录汇总已配置来源, 管理员停用的模型不再开放新调用. 向量、图片和视频还提供各自的模型发现接口, 完整目录可在模型页面查询.
HTTP · 未配置上游时的响应
GET /api/v1/models
{
"object": "list",
"data": []
}聊天补全
POST /api/v1/chat/completions 接受 JSON 请求. 替换域名、密钥和模型 ID 后, 从服务端调用.
JavaScript · 服务端调用
const response = await fetch(
"https://api.mkrouter.com/api/v1/chat/completions",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_ROUTER_API_KEY",
},
body: JSON.stringify({
model: "MODEL_ID_FROM_MODELS_API",
messages: [{ role: "user", content: "你好" }],
max_tokens: 1024,
stream: false,
}),
},
);
if (!response.ok) {
throw new Error(await response.text());
}
const completion = await response.json();
console.log(completion);| 参数 | 要求 | 说明 |
|---|---|---|
model | 必填 | 可调用模型列表中的 ID |
messages | 必填 | 文本消息, 支持 system / user / assistant / tool |
max_tokens | 必填 | 1 到 32768, 用于限制生成长度和预占额度 |
stream | 可选 | 设为 true 接收 SSE 流 |
temperature / top_p | 可选 | 采样参数, 需上游模型支持 |
tools / tool_choice | 可选 | 工具定义和工具选择, 需上游模型支持 |
response_format | 可选 | 输出格式, 需上游模型支持 |
流式响应
设置 stream: true 后按 SSE 读取响应. 客户端需要处理数据事件、错误事件和连接中断, 不能仅凭 HTTP 200 判定生成成功.
取消连接不保证上游立即停止执行或计费. 已输出的流不承诺自动切换模型后继续, 长时间任务也不承诺断点续传.
额度与计费
充值时额外收取 5% 服务费. 例如购买 $100 额度需要支付 $105, 模型调用不会重复收取充值服务费.
请求开始前预占预算, 完成后依据实际用量结算. 非流式结果中的 usage.cost 以美元表示. 上游缺少用量或流中断时可能进入待对账状态, 不能直接视为零费用.
错误处理
错误响应采用 { "error": { "code": "...", "message": "..." } } 格式. 请同时检查 HTTP 状态与错误信息.
- 参数错误: 检查模型 ID、消息结构及该端点要求的参数和输出上限.
- 认证失败: 检查 Key 是否存在、到期或已停用.
- 额度不足: 检查余额、预算和正在处理的请求预占.
- 服务不可用: 上游或数据库未配置、不可达时, 稍后重试.
重发请求可能造成新的上游执行和费用, 请勿对所有错误无条件自动重试.