DOCS
接入文档
兼容 OpenAI / Anthropic 协议;本文所有示例把 api.example.com 换成你的域名即可。
基础信息
| Base URL | https://api.example.com/v1 |
|---|---|
| Anthropic 兼容 | https://api.example.com |
| 协议 | HTTPS / HTTP2 |
| 编码 | application/json |
鉴权
所有请求携带 Bearer Token:
Authorization: Bearer sk-xxxxxxxxxxxxxxxx
也兼容 x-api-key(Anthropic 风格)与 x-goog-api-key(Gemini 风格)。
Key 在控制台创建,可设置额度、RPM/TPM、IP 白名单。泄露请立即轮换。
接口列表
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /v1/models | 模型清单 |
| POST | /v1/chat/completions | OpenAI Chat Completions(支持流式) |
| POST | /v1/responses | OpenAI Responses(适配 Codex) |
| POST | /v1/messages | Anthropic Messages(适配 Claude Code) |
| POST | /v1/images/generations | 图像生成(部分上游支持) |
| GET | /v1/usage | 额度与用量(视部署而定) |
对话请求
curl https://api.example.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "GLM-5.2",
"messages": [
{"role": "system", "content": "你是一个简洁的助手"},
{"role": "user", "content": "用一句话解释什么是 API 网关"}
],
"temperature": 0.7,
"max_tokens": 512
}'
响应字段
| 字段 | 说明 |
|---|---|
| choices[0].message.content | 正文 |
| choices[0].message.reasoning_content | 推理模型的思维链(部分模型返回) |
| usage.prompt_tokens / completion_tokens | 输入 / 输出 token 数 |
流式输出
请求体加 "stream": true,服务端按 SSE 返回:
data: {"choices":[{"delta":{"content":"你"},"finish_reason":null}]}
data: {"choices":[{"delta":{"content":"好"},"finish_reason":null}]}
data: [DONE]
模型清单
curl https://api.example.com/v1/models \ -H "Authorization: Bearer $API_KEY"
返回示例:
{
"object": "list",
"data": [
{"id": "GLM-5.2", "object": "model", "owned_by": "GLM"},
{"id": "DeepSeek-V4.1-Flash-1017", "object": "model", "owned_by": "DeepSeek"}
]
}
两个上游的模型命名略有差异(例如 DeepSeek-V4-Pro 与 deepseek-v4-pro),
网关已做别名映射;如果客户端写死了其他名字,联系客服加别名。
错误码
| 状态码 | 含义 | 处理建议 |
|---|---|---|
| 401 | Key 缺失或无效 | 检查 Authorization 头 |
| 403 | 余额不足 / IP 不在白名单 | 充值或在控制台加白名单 |
| 404 | 模型不存在 / 路径错误 | 核对模型 ID 与 base_url |
| 429 | 超出 RPM / TPM / 并发 | 退避重试或提额 |
| 502 / 522 / 524 | 上游异常或超时 | 换模型重试;持续出现请联系客服 |
服务状态
建议客户端做三件事:
- 失败重试:指数退避,最多 2–3 次
- 超时设置:普通模型 60s,推理/代码模型 300s
- 健康探测:每 5 分钟请求一次 /v1/models
推理类模型(带 reasoning)单次响应可能 30–120 秒,客户端超时不要设太短,否则会误判为 522/524。