Claude Messages
用一个 BeatAPI 密钥,通过同一个 Anthropic Messages 端点调用 Claude Fable 5.1、Opus 5.5、Sonnet 5.5 和 Haiku 5.5。
- 一个端点
POST /v1/messages覆盖当前所有 Claude 模型,改model即可切换。 - 支持文本与图片输入、文本输出、流式输出、工具调用、扩展思考和提示缓存。
- 兼容 Anthropic SDK:把 base URL 设为
https://direct.beatapi.io(不带/v1),换成 BeatAPI 密钥即可。 - Claude 模型只用 Anthropic Messages。调用
/v1/responses会返回400。
文本请求建议使用 https://direct.beatapi.io 作为 base URL:它不受 Cloudflare 100 秒限制,长时间的非流式请求不会被中途切断。https://api.beatapi.io 同样可用;如果你的网络访问不了 direct.beatapi.io,请改用它作为备用。两个域名的密钥、模型和价格完全一致。图片和视频 API 只使用 https://api.beatapi.io。
在调试窗口里打开本接口,填入你的 BeatAPI API 密钥即可发送。调用是真实的,费用从你自己的余额中扣除。
模型
把下列 ID 之一作为 model 发送。它们是各自独立的模型,不是互相的别名。
- 价格为基础档,已计入折扣。长上下文档、缓存命中输入价和缓存写入价不在本表内,见价格表。
—表示目录未公布该数字。
本系列仍可调用的旧 ID 见旧型号。
快速开始
在服务端安装 anthropic 包,把密钥放在 BEATAPI_API_KEY,不要把它写进浏览器代码。以下是请求示例,不是真实的模型输出记录。
从 content 里的 text 块读取答案,再检查 stop_reason 和 usage。HTTP 200 不能证明答案满足你的任务,请在应用里校验内容。文本请求直接返回,不要为它们轮询 /v1/tasks。
端点与鉴权
POST https://direct.beatapi.io/v1/messages
x-api-key
string
必需
你的 BeatAPI 密钥。也接受 Authorization: Bearer <BEATAPI_API_KEY>。
请求要带 anthropic-version 头,例如 anthropic-version: 2023-06-01。密钥放在 x-api-key,或放在 Authorization: Bearer <key>,两种都行,所以现有的 Anthropic 客户端只需要改 base URL。
Claude 模型只用 Anthropic Messages。调用 /v1/responses 会返回 400。
请求参数
接受标准的 Anthropic Messages 字段。请求格式兼容不代表每个 beta 功能或服务端工具都受支持,请测试你依赖的选项。
model
string
必需
准确的模型 ID。
可选值:claude-fable-5-1, claude-opus-5-5, claude-sonnet-5-5, claude-haiku-5-5
- 仍可调用的旧 ID(
claude-opus-5、claude-sonnet-5、claude-haiku-4-5-20251001)见旧型号。 - 用你的密钥调用
GET /v1/models,确认该密钥已开通哪些模型。
max_tokens
integer
必需
生成 token 数的上限,包含思考。
- 请始终显式传入。缺省或为
0时会套用一个默认上限,这个默认值可能比你预期的小。 - 接受的最大值是 1,073,741,823,更大的值返回
400 bad_request。请保持在上表中该模型的最大输出以内。 max_tokens还用来估算请求需要的余额。过大的值即使实际输出很短,也可能被402 insufficient_credits拒绝。按实际需要设置。
messages
object[]
必需
对话内容,最早的消息在前。每条消息有 role(user 或 assistant)和 content。content 可以是字符串,也可以是内容块数组。
- 常用的块类型:
text、image(base64 或 URL 来源)、tool_use(在 assistant 消息里)和tool_result(在 user 消息里)。 messages为空或缺失会返回400 bad_request。
示例
system
string | object[]
可选
系统提示词。可以是字符串,也可以是 text 块数组。在块上加 cache_control,可以缓存一段较长且稳定的前缀。
示例
stream
boolean
可选默认值: false
以服务端推送事件的形式返回答案。见下文的流式输出一节。
默认值:false
stop_sequences
string[]
可选
遇到这些自定义字符串就停止生成。此时响应里 stop_reason 为 "stop_sequence"。
tools
object[]
可选
模型可以调用的工具。每个工具有 name、description 和 input_schema(JSON Schema)。模型调用工具时,响应里 stop_reason 为 "tool_use";运行工具后,在下一条消息的 tool_result 块里返回结果。
示例
tool_choice
object
可选
是否以及如何必须使用 tools。
可选值:{"type":"auto"}, {"type":"any"}, {"type":"tool","name":"..."}, {"type":"none"}
auto由模型决定,any强制使用某个工具,tool强制使用指定名称的工具,none禁止使用工具。
示例
thinking
object
可选
扩展思考。用 type 打开或关闭。思考 token 计入 max_tokens,并按输出 token 计费。
可选值:adaptive, enabled, disabled
thinking.type取上面的值之一。enabled需要同时传thinking.budget_tokens(整数,至少 1,024,且小于max_tokens)。thinking.display取summarized或omitted。较新的模型除非你要求summarized,否则可能不返回思考文本。- 自适应思考的深度用
output_config.effort设置。
各模型说明
claude-fable-5-1:用{"type":"adaptive"},深度用output_config.effort设置;budget_tokens会被拒绝。claude-opus-5-5:用{"type":"adaptive"},深度用output_config.effort设置;budget_tokens会被拒绝。claude-sonnet-5-5:用{"type":"adaptive"},深度用output_config.effort设置;budget_tokens会被拒绝。
示例
output_config.effort
string
可选
模型的推理强度。建议从 high 开始,再在你自己的负载上评估低一档和高一档的效果。
可选值:low, medium, high, xhigh, max
cache_control
object
可选
提示缓存。放在 system、messages 或 tools 的块上,缓存到该块为止的全部内容;也可以放在请求顶层。ttl 取 5m(默认)或 1h。
可选值:{"type":"ephemeral"}
- 缓存读取、5 分钟缓存写入和 1 小时缓存写入分别计量;命中缓存的前缀按缓存读取收费,不按新输入收费。
- 命中情况见
usage.cache_read_input_tokens和usage.cache_creation_input_tokens。
示例
工具调用循环
当 stop_reason 为 tool_use 时,把 assistant 消息原样追加到 messages,运行工具,再把结果放进下一条 user 消息的 tool_result 块里。再次发送同样的 tools。
响应
非流式调用返回一个 JSON 对象。以下是精简后的示例。
响应字段
流式输出
设置 "stream": true。响应是 Anthropic 格式的服务端推送事件流,与 Anthropic SDK 兼容。
- 事件依次为
message_start、ping、content_block_start、content_block_delta、content_block_stop、message_delta和message_stop。 - 文本在
text_delta里,工具入参在input_json_delta里(把片段拼起来再解析),思考文本在thinking_delta里。 stop_reason和最终的输出 token 数在message_delta里。- 流式响应是
text/event-stream,非流式是application/json。调用模型之前发生的失败,以带 HTTP 状态码的普通 JSON 错误返回,不会作为流事件出现。 - 请设置明确的超时,并安全地重连流式响应。
错误
HTTP 错误速查
认证、路由、限速和未知模型这几类失败发生在调用模型之前,返回 BeatAPI 信封:error.code、error.message、retryable、request_id。其余失败保持 Anthropic 格式 {"type": "error", "error": {"type", "message"}}:错误码在 error.type,request id 附在 message 末尾。详见错误码。
完整的错误码表和重试策略见错误码。
注意事项
- Claude 模型只用 Anthropic Messages,不在 OpenAI Responses 上提供。
- 思考 token 按输出 token 计费,并计入
max_tokens。请为思考和答案一起预留足够的输出额度。 - 密钥只放在可信的服务端,记录响应里的请求 ID,只对
429、500和503重试。
身份验证
Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.
请求
准确的模型 ID。
仍可调用的旧 ID(claude-opus-5、claude-sonnet-5、claude-haiku-4-5-20251001)见旧型号。
用你的密钥调用 GET /v1/models,确认该密钥已开通哪些模型。
claude-fable-5-1, claude-opus-5-5, claude-sonnet-5-5, claude-haiku-5-5
生成 token 数的上限,包含思考。
请始终显式传入。缺省或为 0 时会套用一个默认上限,这个默认值可能比你预期的小。
接受的最大值是 1,073,741,823,更大的值返回 400 bad_request。请保持在上表中该模型的最大输出以内。
max_tokens 还用来估算请求需要的余额。过大的值即使实际输出很短,也可能被 402 insufficient_credits 拒绝。按实际需要设置。
对话内容,最早的消息在前。每条消息有 role(user 或 assistant)和 content。content 可以是字符串,也可以是内容块数组。
常用的块类型:text、image(base64 或 URL 来源)、tool_use(在 assistant 消息里)和 tool_result(在 user 消息里)。
messages 为空或缺失会返回 400 bad_request。
系统提示词。可以是字符串,也可以是 text 块数组。在块上加 cache_control,可以缓存一段较长且稳定的前缀。
以服务端推送事件的形式返回答案。见下文的流式输出一节。
遇到这些自定义字符串就停止生成。此时响应里 stop_reason 为 "stop_sequence"。
模型可以调用的工具。每个工具有 name、description 和 input_schema(JSON Schema)。模型调用工具时,响应里 stop_reason 为 "tool_use";运行工具后,在下一条消息的 tool_result 块里返回结果。
是否以及如何必须使用 tools。
auto 由模型决定,any 强制使用某个工具,tool 强制使用指定名称的工具,none 禁止使用工具。
{"type":"auto"}, {"type":"any"}, {"type":"tool","name":"..."}, {"type":"none"}
扩展思考。用 type 打开或关闭。思考 token 计入 max_tokens,并按输出 token 计费。
thinking.type 取上面的值之一。enabled 需要同时传 thinking.budget_tokens(整数,至少 1,024,且小于 max_tokens)。
thinking.display 取 summarized 或 omitted。较新的模型除非你要求 summarized,否则可能不返回思考文本。
自适应思考的深度用 output_config.effort 设置。
claude-fable-5-1: 用 {"type":"adaptive"},深度用 output_config.effort 设置;budget_tokens 会被拒绝。
claude-opus-5-5: 用 {"type":"adaptive"},深度用 output_config.effort 设置;budget_tokens 会被拒绝。
claude-sonnet-5-5: 用 {"type":"adaptive"},深度用 output_config.effort 设置;budget_tokens 会被拒绝。
adaptive, enabled, disabled
提示缓存。放在 system、messages 或 tools 的块上,缓存到该块为止的全部内容;也可以放在请求顶层。ttl 取 5m(默认)或 1h。
缓存读取、5 分钟缓存写入和 1 小时缓存写入分别计量;命中缓存的前缀按缓存读取收费,不按新输入收费。
命中情况见 usage.cache_read_input_tokens 和 usage.cache_creation_input_tokens。
{"type":"ephemeral"}
响应
非流式调用返回一个 JSON 对象。以下是精简后的示例。
消息 ID。请与请求 ID 一起记录,便于支持排查和账单核对。
实际回答的模型。
end_turn 表示答案完整;max_tokens 表示达到了 max_tokens;还有 stop_sequence;模型调用工具时为 tool_use。

