Skip to main content
ARouter 的请求和响应模式与 OpenAI Chat API 非常相似,有少量差异。ARouter 对所有模型和提供商的模式进行了统一规范,您只需学习一套即可。

OpenAPI 规范

完整的 ARouter API 使用 OpenAPI 规范进行了文档化: ARouter 目前发布 YAML 规范。您可以使用 Swagger UIPostman 等工具来浏览 API 或生成客户端库。

Base URL

认证

所有端点(/healthz 除外)都需要通过以下方式之一进行认证: 详情请参阅认证指南

请求

请求格式

以下是以 TypeScript 类型表示的请求模式。这将是您向 /v1/chat/completions 端点发起 POST 请求时的请求体。 完整参数列表请参阅参数参考文档。
ARouter 的 OpenAI 兼容聊天端点以 messages 为标准。如果您想发送提供商的原生请求体,请使用该提供商的原生端点或提供商代理

消息类型

工具类型

结构化输出

response_format 参数强制模型返回结构化 JSON 响应。ARouter 支持两种模式:
  • { type: 'json_object' }:基本 JSON 模式 — 模型返回有效的 JSON
  • { type: 'json_schema', json_schema: { ... } }:严格模式 — 模型返回符合您精确模式的 JSON
详细用法和示例请参阅结构化输出 使用 JSON 模式时,您仍应在系统或用户消息中指示模型以 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 统一规范为以下值之一: 上游提供商的原始结束原因可通过 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 自定义。

错误响应

所有错误均遵循统一的 JSON 格式:
完整的错误代码和重试策略请参阅错误处理指南。