API 文档
一个地址、一个密钥、三种请求格式。客户端接入 6bee.ai API 需要知道的内容都在这一页。
接口地址与鉴权
- API 地址
https://api.6bee.ai- OpenAI 格式
- 接口地址
https://api.6bee.ai/v1,Chat Completions 和 Responses 都用它。 - Anthropic 格式
- 接口地址
https://api.6bee.ai,客户端会自己加上/v1/messages。 - 鉴权
Authorization: Bearer <你的密钥>。Anthropic 格式也接受x-api-key: <你的密钥>。- API 密钥
- 在控制台的「API 密钥」页创建。同一个密钥三种格式通用。
连接问题大多出在接口地址上:多写或少写了一个 /v1。记住三条规则就够了:
- 工具要求填 OpenAI 接口地址的,填
https://api.6bee.ai/v1。 - 工具要求填 Anthropic 接口地址的,填
https://api.6bee.ai,不带/v1。 - 工具会自动补
/v1的(例如 Cherry Studio),只填主机地址。每个工具适用哪一条,见接入指南。
密钥只发送到 https://api.6bee.ai。请放在服务器或你自己的工具里,不要写进前端代码或公开仓库。
第一个请求
用已验证的邮箱注册账户,预付费充值后,在控制台的「API 密钥」页创建密钥,并妥善保管。
模型 ID 可以在控制台查看,也可以用 GET https://api.6bee.ai/v1/models 获取。把 <模型 id> 换成其中一个。
curl https://api.6bee.ai/v1/chat/completions \
-H "Authorization: Bearer $SIXBEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "<模型 id>", "stream": true, "max_tokens": 2048,
"messages": [{"role": "user", "content": "给 fizzbuzz 写一个单元测试"}]}' from openai import OpenAI # pip install openai
client = OpenAI(base_url="https://api.6bee.ai/v1", api_key="<你的密钥>")
reply = client.chat.completions.create(
model="<模型 id>", max_tokens=2048,
messages=[{"role": "user", "content": "解释一下这段报错堆栈"}])
print(reply.choices[0].message.content) GET /v1/models
返回当前密钥可用的模型,格式与 OpenAI 的模型列表一致。把其中的 id 填到请求的 model 字段。
curl https://api.6bee.ai/v1/models \
-H "Authorization: Bearer $SIXBEE_API_KEY" {
"object": "list",
"data": [
{ "id": "<模型 id>", "object": "model", "owned_by": "..." }
]
} 每个模型的价格和上下文大小见控制台。
POST /v1/chat/completions
OpenAI Chat Completions 格式。大多数 SDK、聊天客户端和编辑器 Agent 用的都是它。
| 字段 | 说明 |
|---|---|
model | 必填。GET /v1/models 返回的模型 ID。 |
messages | 必填。到目前为止的对话,支持 system、user、assistant、tool 角色。 |
max_tokens | max_tokens 最高到模型的输出上限:按模型不同,为 16,384 至 131,072。超出时自动降到上限,不会拒绝请求。不传时默认 8,192 至 32,768。 |
stream | 设为 true 时通过 SSE 流式返回。 |
temperature、top_p、stop | 原样传给模型。 |
tools、tool_choice | 原样传给模型。模型本身支持工具调用才有效,不同模型表现不同。 |
n | 只能是 1 或不传。其他值返回 400 n_not_supported。 |
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "<模型 id>",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "..." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 21, "completion_tokens": 142, "total_tokens": 163 }
} usage 就是计费依据,控制台的使用日志里显示的是同一组数字。
流式输出
三种格式都通过 SSE(server-sent events)流式返回。设置 stream: true,边到边读。
- Chat Completions 返回
chat.completion.chunk对象,以data: [DONE]结束。 - Messages 和 Responses 返回各自格式的事件,Anthropic SDK、Claude Code 和 Codex 可以照常解析。
- 不支持 WebSocket 模式。
- 流式请求在结束之前一直占用一个并发名额。不再需要的流请及时关闭。
POST /v1/messages
Anthropic Messages 格式,供 Claude Code 和 Anthropic SDK 使用。接口地址不带 /v1。
curl https://api.6bee.ai/v1/messages \
-H "x-api-key: $SIXBEE_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "<模型 id>",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "你好"}]
}' - 用
x-api-key或 Bearer token 鉴权都可以。 - 错误按 Anthropic 的格式返回,Anthropic 客户端可以照常处理。
max_tokens被降到模型上限时,thinking 预算会一并降低。
Claude Code 的配置见 Claude Code 指南。
POST /v1/responses
OpenAI Responses 格式,供 Codex 使用。
curl https://api.6bee.ai/v1/responses \
-H "Authorization: Bearer $SIXBEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<模型 id>",
"input": "你好",
"max_output_tokens": 1024
}' 服务器不保存会话状态,这与「不存储对话」的承诺一致。每一轮都要发送完整输入:
- 不支持
store和previous_response_id。 - 不支持 WebSocket 模式,流式输出使用 SSE。
Codex 的配置见 Codex 指南。
计费与余额预扣
余额按各模型单价、按 token 扣费。每次请求先预扣「输入 + max_tokens 输出」,结束后只按实际用量结算,差额退回余额。
- 预扣。请求发给模型之前,先从余额里预扣「输入 +
max_tokens输出」。 - 结算。请求结束后,按实际用掉的 token 扣费。
- 退回。预扣中没用掉的部分退回余额。
余额不够预扣的请求不会发给模型,直接被拒绝。可以充值,或者调低 max_tokens 让预扣变小。
价格以美元计,按 token、按模型定价,见控制台。
限额
测试期限额按账户计算,同一账户的所有密钥合计。多建密钥不会提高限额。
- 上下文
- 输入加输出不超过模型窗口:按模型不同,为 128K 至 1M token。
- 输出
- max_tokens 最高到模型的输出上限:按模型不同,为 16,384 至 131,072。超出时自动降到上限,不会拒绝请求。不传时默认 8,192 至 32,768。
- 输入
- 滚动每分钟 100 万未命中缓存的 token,缓存命中不计。
- 请求频率
- 每分钟 60 次。
- 并发
- 同时 2 个请求。
- 请求体
- 不超过 8 MiB,n 必须为 1。
超出限额返回 HTTP 429 和 Retry-After;请求放不进上下文时返回 400。输出上限被降低时,响应头 X-6bee-Output-Cap 会注明实际上限;在 /v1/messages 上,thinking 预算会一并降低。
错误
错误使用标准的 HTTP 状态码。表里列出的 code 是固定的,客户端可以据此分支处理。
| 状态码 | code | 含义与处理 |
|---|---|---|
| 400 | context_budget_exceeded | 输入加最大输出放不进模型的上下文窗口。缩短输入、压缩对话,或调低 max_tokens。 |
| 400 | n_not_supported | n 大于 1。请改为分别发送请求。 |
| 401 | 密钥缺失或不正确。 | |
| 413 | 请求体超过 8 MiB。 | |
| 429 | account_concurrency_limit | 账户已经有 2 个请求在进行中。等其中一个结束后重试。 |
| 429 | account_input_tpm_limit | 账户这一分钟的输入 token 已用完。Retry-After 给出需要等待的秒数。 |
| 429 | 一分钟内超过 60 次请求。放慢速度后重试。 | |
| 5xx | 模型的服务方出错或超时。稍等片刻后重试。 |
OpenAI 格式的接口按 OpenAI 的错误格式返回:
{
"error": {
"message": "This account already has 2 requests in progress (limit 2). Retry when one finishes.",
"type": "new_api_error",
"code": "account_concurrency_limit"
}
} 错误信息末尾通常带有请求 ID。联系支持时请附上它。
响应头
| 响应头 | 何时出现 | 值 |
|---|---|---|
X-6bee-Output-Cap | 你传的 max_tokens 超过模型上限并被降低时。 | 实际生效的上限(token 数)。 |
Retry-After | 返回 HTTP 429 时。 | 重试前需要等待的秒数。 |
X-Oneapi-Request-Id | API 响应中。 | 请求 ID,联系支持时使用。 |
无审查模型与使用规则
上架的模型都是经过调优、去除了拒答的开源权重模型。「无审查」说的是模型,不是规则:无论模型愿意生成什么,服务协议里的可接受使用规则始终适用。