接入文档

  1. 创建 Router API Key, 安全保存只显示一次的密钥.
  2. 查看可用额度, 支付通道未配置时无法充值.
  3. 查询可调用模型列表, 使用模型 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 是否存在、到期或已停用.
  • 额度不足: 检查余额、预算和正在处理的请求预占.
  • 服务不可用: 上游或数据库未配置、不可达时, 稍后重试.

重发请求可能造成新的上游执行和费用, 请勿对所有错误无条件自动重试.