CokeAPI
文本对话系列

Anthropic Messages 兼容

Anthropic Messages API (/v1/messages) 兼容,可直接作为 Claude Code / Anthropic SDK 后端,支持流式 SSE 与 tool use。

完全兼容 Anthropic Messages API。请求与响应字段按 Anthropic 规范处理,可直接用 Anthropic 官方 SDK 或 Claude Code 指向本网关。

平台内部会把 Anthropic Messages 请求翻译成统一管线,因此 model 不局限于 Claude——任何 文本模型(含 GPT / Grok / Gemini 系列)都能通过此端点调用。

鉴权

支持两种鉴权头,任选其一:

  • Authorization: Bearer sk-xxxxxxxx(OpenAI 风格)
  • x-api-key: sk-xxxxxxxx(Anthropic 原生 SDK 默认)

用于 Claude Code

cc switch / 环境变量指向本网关即可。注意 ANTHROPIC_BASE_URL 已含 /v1,Claude Code 会自动拼 /messages:

export ANTHROPIC_BASE_URL="https://cokeapi.com/v1"
export ANTHROPIC_AUTH_TOKEN="sk-xxxxxxxx"
export ANTHROPIC_MODEL="sonnet-4.6"        # 用 /v1/models 里存在的模型 ID

ANTHROPIC_MODEL 是 Claude Code 实际发请求用的主模型 ID,会覆盖其它默认项。务必填 模型一览 里真实存在的 ID,否则报 "model may not exist or you may not have access"。

调用示例

curl https://cokeapi.com/v1/messages \
  -H "x-api-key: sk-xxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sonnet-4.6",
    "max_tokens": 1024,
    "system": "你是简洁的助手",
    "messages": [
      {"role": "user", "content": "用一句话介绍 CokeAPI"}
    ]
  }'
curl -N https://cokeapi.com/v1/messages \
  -H "x-api-key: sk-xxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sonnet-4.6",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "讲一个三句的笑话"}],
    "stream": true
  }'
from anthropic import Anthropic

client = Anthropic(
    base_url="https://cokeapi.com",
    api_key="sk-xxxxxxxx",
)

msg = client.messages.create(
    model="sonnet-4.6",
    max_tokens=1024,
    system="你是简洁的助手",
    messages=[{"role": "user", "content": "用一句话介绍 CokeAPI"}],
)
print(msg.content[0].text)
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://cokeapi.com",
  apiKey: process.env.COKEAPI_KEY,
});

const msg = await client.messages.create({
  model: "sonnet-4.6",
  max_tokens: 1024,
  system: "你是简洁的助手",
  messages: [{ role: "user", content: "用一句话介绍 CokeAPI" }],
});
console.log(msg.content[0].text);

Anthropic 官方 SDK 会自己拼 /v1/messages,所以 base_url 填到域名根 https://cokeapi.com(不带 /v1)。

请求参数

参数类型必填默认值说明
modelstring模型 ID,见 /docs/text/models
max_tokensint最大生成 token 数(Anthropic 规范要求必填)
messagesarray对话历史,content 支持字符串或 block 数组
systemstring | array系统提示,字符串或 text block 数组
streamboolfalsetrue 时返回 Anthropic 风格 SSE 事件流
temperaturenumber采样温度
top_pnumber核采样
stop_sequencesarray自定义停止序列
toolsarray工具定义 [{ name, description, input_schema }]
tool_choiceobject{type: auto|any|tool|none}

响应示例

非流式

{
  "id": "msg_01HX...",
  "type": "message",
  "role": "assistant",
  "model": "sonnet-4.6",
  "content": [
    { "type": "text", "text": "CokeAPI 是 OpenAI/Anthropic 兼容的 AIGC 网关。" }
  ],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": { "input_tokens": 28, "output_tokens": 20 }
}

流式 (SSE)

事件序列遵循 Anthropic 规范:

event: message_start
data: {"type":"message_start","message":{"id":"msg_...","type":"message","role":"assistant","model":"sonnet-4.6","content":[],"usage":{"input_tokens":28,"output_tokens":0}}}

event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Coke"}}

event: content_block_stop
data: {"type":"content_block_stop","index":0}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"output_tokens":20}}

event: message_stop
data: {"type":"message_stop"}

Tool use

toolstool_use / tool_result block 完全按 Anthropic 规范处理:

  • 助手返回的工具调用以 content 里的 tool_use block 给出,流式时通过 input_json_delta 增量传 input
  • 你把工具结果作为 user 消息里的 tool_result block 回传(tool_use_id 对应)。

计费

input_tokensoutput_tokens 分别计算,与 Chat Completions 同一套单价。完整单价见 模型列表

错误码

错误响应为 Anthropic 风格 { "type": "error", "error": { "type, message } }:

error.type含义HTTP
invalid_request_error参数错误400
authentication_errorAPI Key 无效401
permission_errorKey 无 chat 权限403
rate_limit_error限流429
api_error上游不可用502

注意事项

  • max_tokens 在 Anthropic 规范下必填,缺失会被上游或网关拒绝。
  • 用非 Claude 模型(GPT/Grok/Gemini)走此端点时,平台做协议翻译,tool_use 行为以对应上游能力为准。
  • 还提供 POST /v1/messages/count_tokens 做输入 token 粗估(供客户端预算上下文用)。

本页目录