支持平台与接口
Sub2API 的“客户端协议”和“上游平台”是两个独立维度。客户端可以发送 Anthropic Messages,请求却被转换到 OpenAI Responses;也可以使用 OpenAI Chat Completions,最终调用其他兼容平台。
入口路由矩阵
| 路径 | 方法 | 客户端期望格式 | 主要用途 |
|---|---|---|---|
/v1/messages | POST | Anthropic Messages | Claude SDK、Claude Code、兼容客户端 |
/v1/messages/count_tokens | POST | Anthropic | Token 预估 |
/v1/models | GET | OpenAI list 或 Codex manifest | 模型发现 |
/v1/usage | GET | 网关用量 | 客户端查询配额 |
/v1/responses | POST | OpenAI Responses | Codex、新版 OpenAI SDK |
/v1/responses/* | POST | OpenAI Responses | compact 等子路径 |
/v1/responses | GET | WebSocket | Responses 实时连接 |
/v1/chat/completions | POST | OpenAI Chat | 传统 SDK 与兼容客户端 |
/v1/embeddings | POST | OpenAI Embeddings | 向量请求 |
/v1/images/generations | POST | OpenAI Images | 图片生成 |
/v1/images/edits | POST | OpenAI Images | 图片编辑 |
/v1/images/batches | POST/GET | Sub2API 扩展 | 批量图片任务 |
/v1/videos/generations | POST | OpenAI 风格扩展 | Grok 视频任务 |
/v1beta/models/* | GET/POST | Gemini 原生 | Gemini SDK 与 CLI |
此外还有无 /v1 的 Responses、Chat、Embeddings、Images 别名,以及 /backend-api/codex/* 和 /antigravity/* 专用路由。
根据分组平台自动路由
/v1/messages
| 分组平台 | 处理方式 |
|---|---|
anthropic | 选择 Anthropic、Bedrock、Vertex 等兼容账号 |
gemini | 转换为 Gemini 请求,响应再转换回 Messages |
antigravity | 使用 Antigravity Gateway |
openai | 转换为 OpenAI Responses |
grok | 使用 OpenAI 兼容处理,能力按 Grok 限制 |
/v1/responses 与 /v1/chat/completions
- OpenAI/Grok 分组优先走 OpenAI Gateway。
- 其他平台走通用 Gateway 的协议桥接。
- 分组可以限制 Messages dispatch、OAuth only 和默认目标模型。
Anthropic 能力
常见账号类型:
- OAuth。
- Setup Token。
- 官方或兼容 API Key。
- 自定义 upstream Base URL。
- AWS Bedrock。
- Google Vertex Service Account。
需要关注:
- Claude Code only 分组会校验客户端特征和最低版本。
anthropic-beta、工具调用、thinking 和 prompt cache 需要正确透传或转换。- Bedrock 通过 SigV4 或 Bedrock API Key 认证,流事件格式与官方 API 不同。
- 自定义上游是否使用原生 Messages,取决于账号类型和配置。
OpenAI 与 Codex 能力
OpenAI Gateway 包含:
- Responses HTTP/SSE。
- Responses WebSocket 与连接池。
- Chat Completions。
- Embeddings。
- Images generations/edits。
- Count Tokens 的兼容实现。
- Claude Messages → Responses 转换。
- Codex 模型 manifest、previous response 和 compact 子路径。
OpenAI API Key 账号和 OAuth/Codex 账号行为并不相同。例如 API Key 账号可能使用标准 /v1/responses,OAuth 账号则需要 ChatGPT/Codex 端点、客户端 metadata 和特殊头。
Gemini 能力
账号形式包括:
- AI Studio API Key。
- Google OAuth / Code Assist。
- Google One 或 Gemini CLI 相关 OAuth 模式。
- Vertex AI Service Account。
Gemini 原生入口支持模型列表、模型详情,以及 generateContent、streamGenerateContent 等 model action。通过 Messages 或 Responses 访问时,系统会转换 system、contents、tools、thinking 和流式 usage。
Vertex 与 AI Studio 的 URL、认证和模型能力不同,不能只替换 API Key。
Antigravity
Antigravity 可以通过普通分组参与兼容调度,也提供强制平台路由:
/antigravity/v1/messages/antigravity/v1/messages/count_tokens/antigravity/v1/models/antigravity/v1beta/models/*
强制路由用于排除其他平台账号,便于测试或给客户端提供独立入口。
Grok
Grok 使用 OpenAI 兼容请求路径,但本地能力门禁会限制不同端点:
- Responses 与 Chat Completions。
- 图片生成与编辑。
- 视频生成与状态查询。
- Embeddings 当前不按 Grok 分组开放。
不要因为 URL 兼容 OpenAI 就假定所有 OpenAI 参数和工具都可用。
模型列表不等于调度能力
/v1/models 的结果可能来自:
- 分组自定义 models list 配置。
- 账号可用模型汇总。
- Codex 客户端专用 manifest。
- 平台内置候选列表。
模型出现在列表中,只表示对客户端可展示;真正请求时仍要通过账号模型范围、映射、平台能力和临时运行状态过滤。
客户端接入示例
Anthropic SDK
export ANTHROPIC_BASE_URL=https://api.example.com
export ANTHROPIC_API_KEY=sk-your-sub2api-keyOpenAI SDK
export OPENAI_BASE_URL=https://api.example.com/v1
export OPENAI_API_KEY=sk-your-sub2api-keyGemini
Gemini 客户端对 Base URL 和 Key 参数的支持方式不完全一致。目标客户端必须能够把请求发到:
https://api.example.com/v1beta如果客户端固定访问 Google 域名,需要使用支持自定义 endpoint 的版本或中间适配层。
接口验证顺序
GET /health验证服务。GET /v1/models验证 API Key、分组和模型发现。- 非流式最小文本请求。
- 流式文本请求。
- 工具调用与 thinking。
- 图片、视频或 WebSocket 等扩展能力。
不要用最复杂的 Agent 请求作为第一次连通性测试。