Qwen Chat Completions
用一个 BeatAPI 密钥,通过同一个 OpenAI Chat Completions 端点调用 Qwen3.8 Max 和 Qwen3.8 Flash。
- 一个端点
POST /v1/chat/completions覆盖当前所有 Qwen 模型,改model即可切换。 - 支持流式输出和函数调用。两个模型在整个 100 万 token 窗口内都按统一单价计费。
- 兼容 OpenAI SDK:改 base URL,换成 BeatAPI 密钥即可。
- 同样的模型也可以用 OpenAI Responses 和 Anthropic Messages 调用。
文本请求建议使用 https://direct.beatapi.io 作为 base URL:它不受 Cloudflare 100 秒限制,长时间的非流式请求不会被中途切断。https://api.beatapi.io 同样可用;如果你的网络访问不了 direct.beatapi.io,请改用它作为备用。两个域名的密钥、模型和价格完全一致。图片和视频 API 只使用 https://api.beatapi.io。
在调试窗口里打开本接口,填入你的 BeatAPI API 密钥即可发送。调用是真实的,费用从你自己的余额中扣除。
模型
把下列 ID 之一作为 model 发送。它们是各自独立的模型,不是互相的别名。
- 价格为基础档,已计入折扣。长上下文档、缓存命中输入价和缓存写入价不在本表内,见价格表。
—表示目录未公布该数字。
快速开始
在服务端安装 openai 包,把密钥放在 BEATAPI_API_KEY,不要把它写进浏览器代码。以下是请求示例,不是真实的模型输出记录。
从 choices[0].message.content 读取答案,再检查 finish_reason 和 usage。HTTP 200 不能证明答案满足你的任务,请在应用里校验内容。文本请求直接返回,不要为它们轮询 /v1/tasks。
端点与鉴权
POST https://direct.beatapi.io/v1/chat/completions
Authorization
string
必需
Bearer <BEATAPI_API_KEY>。密钥带不带 sk- 前缀都可以。
请求参数
接受标准的 OpenAI Chat Completions 字段。请求格式兼容,不代表每个模型都支持所有选项,请对你依赖的选项自行测试。
model
string
必需
准确的模型 ID。
可选值:qwen3.8-max, qwen3.8-flash
- 每个 ID 都是独立的模型,不是其他模型的别名。
- 用你的密钥调用
GET /v1/models,确认该密钥已开通哪些模型。
messages
object[]
必需
对话内容,最早的消息在前。每条消息有 role(system、user、assistant 或 tool)和 content。
max_tokens
integer
可选
生成 token 数的上限,包含推理部分。
- 网关不会拿你的值去和上面表格里的最大输出比较,请自己控制在该数字以内。
max_tokens也用来估算一次请求需要多少余额。值特别大时,即使实际输出很短,也可能被402 insufficient_credits拒绝。按实际需要设置即可。
推理型号会先输出推理内容。max_tokens 太小时,推理可能把额度用完:content 为空,finish_reason 是 length。请给推理和正文都留出空间,看到 length 就调大。
stream
boolean
可选默认值: false
以服务端推送事件(SSE)返回答案。见下文「流式输出」。
默认值:false
temperature
number
可选
采样温度。它和 top_p 调一个就行,不要两个一起改。
top_p
number
可选
核采样阈值。
stop
string | string[]
可选
一个或多个停止序列,生成到这些序列时停止。
tools
object[]
可选
模型可以调用的函数定义。模型会用 tool_calls 作答;把每个结果放进后续的 tool 消息,并带上对应的 tool_call_id。
tool_choice
string | object
可选
控制模型可以、必须或不得调用工具。请用你的模型测试你依赖的取值。
响应
非流式调用返回一个 JSON 对象。以下是精简后的示例。
响应字段
流式输出
设置 "stream": true。答案以 chat.completion.chunk 事件逐段到达,最后以 data: [DONE] 结束。
- 响应类型是
text/event-stream;不流式时是application/json。 - 文本在
choices[0].delta.content里。推理型号会先在delta.reasoning_content里发送推理内容。 - 调用模型之前就失败的请求,返回的是带 HTTP 状态码的普通 JSON 错误,而不是流事件。
- 请设置明确的超时,并安全地重连流式响应。
错误
HTTP 错误速查
认证、路由、限速和未知模型这几类失败发生在调用模型之前,返回 BeatAPI 信封:error.code、error.message、retryable、request_id。其余失败保持 OpenAI SDK 格式 {"error": {"message", "type", "code"}}:错误码在 error.code,request id 附在 message 末尾。详见错误码。
完整的错误码表和重试策略见错误码。
注意事项
- Qwen 模型也可以用 OpenAI Responses 和 Anthropic Messages 调用。
- 缓存输入的价格和新输入分开计。重复的提示词前缀会自动按缓存费率计费,没有需要调用的缓存接口;是否命中请看
usage里的缓存输入数量。 - 密钥只放在可信的服务端,记录响应里的请求 ID,只对
429、500和503重试。
身份验证
Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.
请求
准确的模型 ID。
每个 ID 都是独立的模型,不是其他模型的别名。
用你的密钥调用 GET /v1/models,确认该密钥已开通哪些模型。
qwen3.8-max, qwen3.8-flash
对话内容,最早的消息在前。每条消息有 role(system、user、assistant 或 tool)和 content。
生成 token 数的上限,包含推理部分。
网关不会拿你的值去和上面表格里的最大输出比较,请自己控制在该数字以内。
max_tokens 也用来估算一次请求需要多少余额。值特别大时,即使实际输出很短,也可能被 402 insufficient_credits 拒绝。按实际需要设置即可。
推理型号会先输出推理内容。max_tokens 太小时,推理可能把额度用完:content 为空,finish_reason 是 length。请给推理和正文都留出空间,看到 length 就调大。
以服务端推送事件(SSE)返回答案。见下文「流式输出」。
采样温度。它和 top_p 调一个就行,不要两个一起改。
核采样阈值。
一个或多个停止序列,生成到这些序列时停止。
模型可以调用的函数定义。模型会用 tool_calls 作答;把每个结果放进后续的 tool 消息,并带上对应的 tool_call_id。
控制模型可以、必须或不得调用工具。请用你的模型测试你依赖的取值。
响应
非流式调用返回一个 JSON 对象。以下是精简后的示例。
补全 ID。请连同请求 ID 一起记录,方便售后和对账。
实际作答的模型。
token 数量。调用按实际 token 用量计量。

