API Reference
ZetaAPI 端点、认证、兼容格式、错误码与速率限制。OpenAI 与 Anthropic 双格式透传,无需改 SDK。
更新于 2026-04-17
Base URL
https://api.staging.cosmos-router.com
- OpenAI 兼容端点位于
/v1/* - Anthropic 兼容端点位于
/v1/messages - 两类格式共用同一套 API Key
认证
所有请求需携带 Authorization: Bearer sk-xxxxx:
curl https://api.staging.cosmos-router.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxxxx" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-4o", "messages": [{"role": "user", "content": "hi"}]}'
Anthropic 格式也支持 x-api-key(与官方一致):
curl https://api.staging.cosmos-router.com/v1/messages \
-H "x-api-key: sk-xxxxx" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model": "claude-sonnet-4-6", "max_tokens": 1024, "messages": [{"role": "user", "content": "hi"}]}'
端点概览
| 端点 | 协议 | 说明 |
|---|---|---|
POST /v1/chat/completions | OpenAI | 对话补全,支持 SSE 流式 |
POST /v1/completions | OpenAI | 传统文本补全(旧版模型用) |
POST /v1/embeddings | OpenAI | 向量嵌入 |
POST /v1/messages | Anthropic | Claude 原生格式,支持 prompt cache |
GET /v1/models | OpenAI | 当前账户可用模型列表 |
GET /api/v1/key/quota | ZetaAPI | 查询这把 Key 的剩余额度与可用状态 |
支持的模型族
- Claude:
claude-opus-4-8、claude-opus-4-7、claude-sonnet-4-6 - GPT:
gpt-5.5、gpt-5.3-chat、gpt-5.3-codex、gpt-5.2-codex、gpt-4o、o3、o4-mini - Gemini:
gemini-3-pro-preview、gemini-2.5-pro、gemini-3-flash-preview、gemini-flash-latest - DeepSeek / Qwen / Kimi / MiniMax 等开源与国产模型
模型与价格随部署更新,上表仅为代表性示例;完整型号列表与最新价格倍率以 价格页 为准。
流式响应(SSE)
在请求里设置 "stream": true 即可:
stream = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "写一段 Python 快排"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)
SSE 返回 data: {...}\n\n 格式,最后以 data: [DONE] 结束。与 OpenAI / Anthropic 官方完全一致。
Prompt Cache
OpenAI 模型
自动缓存,无需额外参数。重复前缀会自动按 cache hit 计费(输入价的 50% 或更低,取决于模型)。
Claude(Anthropic 格式)
需在 system 或 messages 的 block 上显式标注:
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"system": [
{
"type": "text",
"text": "长系统提示...",
"cache_control": { "type": "ephemeral" }
}
],
"messages": [...]
}
缓存命中费率为输入价的 10%,与官方一致。详见 Prompt Cache 成本实测。
查询额度
用 Key 本身即可查询它还能花多少钱、以及当前能不能用:
curl https://api.staging.cosmos-router.com/api/v1/key/quota \
-H "Authorization: Bearer sk-xxxxx"
{
"success": true,
"data": {
"available_usd": 12.5,
"available_quota": 6250000,
"usable": true,
"blockers": [],
"message": "可用。",
"account_balance_usd": 12.5,
"key": {
"name": "生产环境",
"unlimited_quota": false,
"remaining_usd": 50.0,
"used_usd": 3.2,
"status": "enabled",
"expires_at": null
}
}
}
该看哪个字段
判断和展示都用 available_usd。 它是「这把 Key 实际还能花多少钱」,已经同时考虑了账户余额和该 Key 的独立额度上限,取两者中较小的那个。
| 字段 | 含义 |
|---|---|
available_usd | 实际还能花的金额(账户余额与 Key 剩余额度取小) |
available_quota | 同一个数的整数形式(500000 = $1),用于精确比较,不受浮点误差影响 |
account_balance_usd | 账户钱包余额,所有 Key 共享 |
key.remaining_usd | 这把 Key 的独立额度剩余;未设上限时为 null |
上面的例子里账户有 $12.5、Key 上限还剩 $50,实际能花的是 $12.5 —— 只看 key.remaining_usd 会高估。
不可用时
usable 为 false 时,blockers 会列出全部原因(不止第一个,避免你修好一个仍然发不出请求):
| blocker | 含义 | 怎么办 |
|---|---|---|
insufficient_account_balance | 账户余额不足 | 前往控制台充值 |
key_quota_exhausted | 这把 Key 的独立额度用尽 | 在控制台调高该 Key 的额度上限 |
key_expired | Key 已过期 | 调整有效期或新建 Key |
key_disabled | Key 已被禁用 | 在控制台启用,或改用其它 Key |
account_suspended | 账号被停用 | 联系客服 |
额度耗尽、已过期、已禁用的 Key 依然能调用本接口查询原因 —— 最需要知道「为什么不能用」的时候正是它不能用的时候。只有 Key 不存在或已删除才返回 401。
限流:每把 Key 120 次/分钟。建议轮询间隔不低于 30 秒。
⚠️ 不要用
/v1/dashboard/billing/subscription查余额。 那是 OpenAI 兼容的历史端点,hard_limit_usd表示「已授予额度总量」而非剩余额度,且对未设上限的 Key 返回一个固定占位值;它也不反映账户余额。查余额请用本节的/api/v1/key/quota。
错误码
| HTTP | Code | 说明 | 建议 |
|---|---|---|---|
| 400 | invalid_request_error | 参数错误(缺字段、格式错、模型名错) | 检查请求体 |
| 401 | authentication_error | Key 无效或已吊销 | 重新生成 Key |
| 402 | insufficient_quota | 账户余额不足 | 前往控制台充值;可用 GET /api/v1/key/quota 程序化查询剩余额度 |
| 403 | permission_error | 该 Key 无权访问该模型 | 检查 Key 限权 |
| 404 | not_found_error | 模型名拼写错误 | 参考 /v1/models |
| 429 | rate_limit_error | 触发速率限制 | 指数退避重试 |
| 500 | internal_error | 平台内部异常 | 计入服务异常统计,可按规则申请赔付 |
| 502 / 503 | upstream_error | 上游故障,正在切换渠道 | 客户端可立即重试 |
| 504 | timeout_error | 上游超时 | 客户端可立即重试 |
错误响应体格式与 OpenAI 一致:
{
"error": {
"type": "invalid_request_error",
"message": "model 'gpt-4-vision' not found",
"code": null
}
}
速率限制
- 默认:600 RPM / 300k TPM(按 Key 维度,不按账户)
- 企业或重度用户可在控制台申请提额
- 超限返回
429+Retry-After头(秒)
故障自动切换
当上游渠道可用率异常下跌,平台会自动将流量切换到备用渠道,绝大多数场景客户端无感知。
SLA 赔付按自然月 + SKU 大类计算;当前为申请制(人工审核核算),申请方式与档位见 服务补偿申请(设计背景:赔付规则作为产品)。
SDK 支持
- Python:
openai、anthropic官方 SDK 直接用,改base_url即可 - Node.js:
openai/@anthropic-ai/sdk同上 - Go / Rust / Java:任何支持自定义 base URL 的 OpenAI 兼容库均可