OpenAPI 规范
完整的 ARouter API 使用 OpenAPI 规范进行了文档化: ARouter 目前发布 YAML 规范。您可以使用 Swagger UI 或 Postman 等工具来浏览 API 或生成客户端库。Base URL
认证
所有端点(/healthz 除外)都需要通过以下方式之一进行认证:
| 方式 | Header / 参数 | 使用场景 |
|---|---|---|
| Bearer Token | Authorization: Bearer <key> | OpenAI SDK、大多数客户端 |
| API Key Header | X-Api-Key: <key> | Anthropic SDK |
| 查询参数 | ?key=<key> | Gemini SDK |
请求
请求格式
以下是以 TypeScript 类型表示的请求模式。这将是您向/v1/chat/completions 端点发起 POST 请求时的请求体。
完整参数列表请参阅参数参考文档。
messages 为标准。如果您想发送提供商的原生请求体,请使用该提供商的原生端点或提供商代理。
消息类型
工具类型
结构化输出
response_format 参数强制模型返回结构化 JSON 响应。ARouter 支持两种模式:
{ type: 'json_object' }:基本 JSON 模式 — 模型返回有效的 JSON{ type: 'json_schema', json_schema: { ... } }:严格模式 — 模型返回符合您精确模式的 JSON
可选请求 Header
ARouter 支持以下可选 header 来标识您的应用程序:HTTP-Referer:您的应用 URL,用于在控制台中进行来源追踪X-Title:您的应用显示名称,用于 ARouter 分析
模型路由
使用provider/model 格式指定模型。ARouter 解析提供商前缀并路由到正确的上游。
如果省略 model 参数,将使用租户配置的默认模型。完整路由逻辑请参阅模型路由指南,包括使用 models[] 和 route 的有序候选模型列表。
流式传输
设置stream: true 可通过 Server-Sent Events 逐 Token 接收响应。SSE 流除 data: 载荷外还可包含注释行,客户端应忽略这些注释。SSE 格式、使用量块、取消和错误处理请参阅流式传输指南。
非标准参数
如果所选模型不支持某个请求参数(例如非 OpenAI 模型中的logit_bias,或 OpenAI 的 top_k),该参数将被静默忽略。其余参数将转发给上游模型 API。
助手预填充
ARouter 支持让模型补全部分响应。在messages 数组末尾添加一条 role: "assistant" 的消息:
响应
响应格式
ARouter 对所有模型和提供商的模式进行了统一规范,以符合 OpenAI Chat API 标准。choices 始终是一个数组。如果请求了流式传输,每个 choice 包含 delta 属性;否则包含 message 属性。
Choice 类型
用量
响应示例
结束原因
ARouter 将每个模型的finish_reason 统一规范为以下值之一:
| 值 | 描述 |
|---|---|
stop | 模型自然完成 |
length | 达到 max_tokens 限制 |
tool_calls | 模型需要调用工具 |
content_filter | 内容审核触发 |
error | 生成过程中发生错误 |
native_finish_reason 获取。
端点组
OpenAI 兼容
/v1/chat/completions, /v1/embeddings, /v1/models可与任何 OpenAI 兼容 SDK 配合使用。支持 provider/model 路由。Anthropic 原生
/v1/messages, /v1/messages/batches, /v1/messages/count_tokens与 Anthropic SDK 直接兼容。Gemini 原生
/v1beta/models/{model}:generateContent与 Google Gemini SDK 直接兼容。API Key 管理
/api/v1/keys创建、列出、更新和删除 API key。账单
/api/v1/balance, /api/v1/transactions查询账户余额和交易历史。提供商代理
/{provider}/{path}将请求直接代理到任何受支持的提供商。速率限制
速率限制按 API key 应用。默认限制可通过控制台或管理 API 按 key 自定义。| Header | 描述 |
|---|---|
X-RateLimit-Limit | 每个窗口期的最大请求数 |
X-RateLimit-Remaining | 剩余请求数 |
X-RateLimit-Reset | 窗口期重置时间(Unix 时间戳) |