全部文档

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。记住三条规则就够了:

  1. 工具要求填 OpenAI 接口地址的,填 https://api.6bee.ai/v1。
  2. 工具要求填 Anthropic 接口地址的,填 https://api.6bee.ai,不带 /v1。
  3. 工具会自动补 /v1 的(例如 Cherry Studio),只填主机地址。每个工具适用哪一条,见接入指南。

密钥只发送到 https://api.6bee.ai。请放在服务器或你自己的工具里,不要写进前端代码或公开仓库。

第一个请求

用已验证的邮箱注册账户,预付费充值后,在控制台的「API 密钥」页创建密钥,并妥善保管。

模型 ID 可以在控制台查看,也可以用 GET https://api.6bee.ai/v1/models 获取。把 <模型 id> 换成其中一个。

shell
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 写一个单元测试"}]}'
app.py
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)

Node.js 和 Anthropic SDK 的写法见 SDK 指南。编程 Agent 和聊天客户端见接入指南。

GET /v1/models

返回当前密钥可用的模型,格式与 OpenAI 的模型列表一致。把其中的 id 填到请求的 model 字段。

shell
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_tokensmax_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。

shell
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 使用。

shell
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 输出」,结束后只按实际用量结算,差额退回余额。

  1. 预扣。请求发给模型之前,先从余额里预扣「输入 + max_tokens 输出」。
  2. 结算。请求结束后,按实际用掉的 token 扣费。
  3. 退回。预扣中没用掉的部分退回余额。

余额不够预扣的请求不会发给模型,直接被拒绝。可以充值,或者调低 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含义与处理
400context_budget_exceeded输入加最大输出放不进模型的上下文窗口。缩短输入、压缩对话,或调低 max_tokens。
400n_not_supportedn 大于 1。请改为分别发送请求。
401密钥缺失或不正确。
413请求体超过 8 MiB。
429account_concurrency_limit账户已经有 2 个请求在进行中。等其中一个结束后重试。
429account_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-IdAPI 响应中。请求 ID,联系支持时使用。

无审查模型与使用规则

上架的模型都是经过调优、去除了拒答的开源权重模型。「无审查」说的是模型,不是规则:无论模型愿意生成什么,服务协议里的可接受使用规则始终适用。

参见这里的「无审查」是什么意思和存储了什么、没存储什么。