跳到导航

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。

POST/v1/chat/completions试一试

在调试窗口里打开本接口,填入你的 BeatAPI API 密钥即可发送。调用是真实的,费用从你自己的余额中扣除。

模型

把下列 ID 之一作为 model 发送。它们是各自独立的模型,不是互相的别名。

模型 ID上下文(tokens)最大输出(tokens)定位输入,美元 / 100 万 tokens输出,美元 / 100 万 tokens说明
qwen3.8-max1,000,000128,0002.4 万亿参数的 MoE 旗舰模型,面向编程、专业工作、多模态理解与长程智能体工作流$1.40$4.202.4 万亿参数的 MoE 旗舰模型,面向编程、专业工作、多模态理解与长程智能体工作流。上下文 100 万 token,最大输出 128,000 token。
qwen3.8-flash——Qwen 视觉语言模型,面向视觉推理、文档与智能体任务$0.105$0.329速度快、价格低的版本,适合大批量任务。视觉语言模型,面向视觉推理、文档与智能体任务。
  • 价格为基础档,已计入折扣。长上下文档、缓存命中输入价和缓存写入价不在本表内,见价格表。
  • — 表示目录未公布该数字。

快速开始

在服务端安装 openai 包,把密钥放在 BEATAPI_API_KEY,不要把它写进浏览器代码。以下是请求示例,不是真实的模型输出记录。

从 choices[0].message.content 读取答案,再检查 finish_reason 和 usage。HTTP 200 不能证明答案满足你的任务,请在应用里校验内容。文本请求直接返回,不要为它们轮询 /v1/tasks。

curl --request POST \
--url https://direct.beatapi.io/v1/chat/completions \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen3.8-max",
"max_tokens": 2000,
"messages": [
{
"role": "user",
"content": "Design a resilient webhook retry strategy for a payments API."
}
]
}'

端点与鉴权

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 对象。以下是精简后的示例。

{
"id": "chatcmpl-example",
"object": "chat.completion",
"created": 1791993600,
"model": "qwen3.8-max",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Retry with exponential backoff and jitter, and make every handler idempotent."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 19,
"completion_tokens": 16,
"total_tokens": 35
}
}

响应字段

字段类型说明
idstring补全 ID。请连同请求 ID 一起记录,方便售后和对账。
modelstring实际作答的模型。
choices[].message.contentstring答案文本。
choices[].message.reasoning_contentstring推理文本,仅推理型号会返回。按输出计费。
choices[].message.tool_callsobject[]模型要求你执行的函数调用。finish_reason 为 tool_calls 时出现。
choices[].finish_reasonstringstop 表示完整作答,tool_calls 表示要调用工具,length 表示达到了 max_tokens。
usageobjecttoken 数量。调用按实际 token 用量计量。

流式输出

设置 "stream": true。答案以 chat.completion.chunk 事件逐段到达,最后以 data: [DONE] 结束。

  • 响应类型是 text/event-stream;不流式时是 application/json。
  • 文本在 choices[0].delta.content 里。推理型号会先在 delta.reasoning_content 里发送推理内容。
  • 调用模型之前就失败的请求,返回的是带 HTTP 状态码的普通 JSON 错误,而不是流事件。
  • 请设置明确的超时,并安全地重连流式响应。
data: {"id":"chatcmpl-example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant","content":"Retry"},"finish_reason":null}]}
data: {"id":"chatcmpl-example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":" with backoff"},"finish_reason":null}]}
data: {"id":"chatcmpl-example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]

错误

错误或现象原因处理
content 为空,finish_reason 是 length推理型号把整个 max_tokens 额度都用在了推理上。调大 max_tokens,但不要超过模型的最大输出。
402 insufficient_credits余额低于这次请求的价格,常见原因是 max_tokens 特别大。充值,或调小 max_tokens。
403 forbidden账户只有免费额度而该模型不在免费列表里,或该模型不在密钥所属分组内。充值、改用免费模型,或换一把分组能访问该模型的密钥。
404 not_found模型 ID 不存在,或该密钥没有开通。用 GET /v1/models 列出已开通的模型。
429 rate_limit_exceeded达到账户或免费模型的频率限制。等待 Retry-After 指定的时间后重试。

HTTP 错误速查

认证、路由、限速和未知模型这几类失败发生在调用模型之前,返回 BeatAPI 信封:error.code、error.message、retryable、request_id。其余失败保持 OpenAI SDK 格式 {"error": {"message", "type", "code"}}:错误码在 error.code,request id 附在 message 末尾。详见错误码。

HTTP 状态码错误码怎么做
400bad_request、content_policy_violation修正请求或输入,不要原样重发。
401missing_api_key、invalid_api_key检查密钥,不要重试。
402insufficient_credits充值,或提高密钥额度。过大的 max_tokens 也可能触发。
403forbidden模型不在该密钥的分组或 IP 白名单内,或免费额度不能调用该模型。
404not_found模型不存在:用 GET /v1/models 查看已开通的模型。
429rate_limit_exceeded等待 Retry-After 或 retry_after_seconds 后退避重试。
500internal_error、temporary_error退避后重试一两次。
503model_unavailable、upstream_timeout、temporary_error退避重试,或换用其他模型。

完整的错误码表和重试策略见错误码。

注意事项

  • Qwen 模型也可以用 OpenAI Responses 和 Anthropic Messages 调用。
  • 缓存输入的价格和新输入分开计。重复的提示词前缀会自动按缓存费率计费,没有需要调用的缓存接口;是否命中请看 usage 里的缓存输入数量。
  • 密钥只放在可信的服务端,记录响应里的请求 ID,只对 429、500 和 503 重试。

身份验证

AuthorizationBearer

Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.

请求

This endpoint expects an object.
modelenum必需

准确的模型 ID。

每个 ID 都是独立的模型,不是其他模型的别名。

用你的密钥调用 GET /v1/models,确认该密钥已开通哪些模型。

qwen3.8-max, qwen3.8-flash

允许的值:
messageslist of objects必需

对话内容,最早的消息在前。每条消息有 role(system、user、assistant 或 tool)和 content。

max_tokensinteger可选

生成 token 数的上限,包含推理部分。

网关不会拿你的值去和上面表格里的最大输出比较,请自己控制在该数字以内。

max_tokens 也用来估算一次请求需要多少余额。值特别大时,即使实际输出很短,也可能被 402 insufficient_credits 拒绝。按实际需要设置即可。

推理型号会先输出推理内容。max_tokens 太小时,推理可能把额度用完:content 为空,finish_reason 是 length。请给推理和正文都留出空间,看到 length 就调大。

streamboolean可选默认为 false

以服务端推送事件(SSE)返回答案。见下文「流式输出」。

temperaturedouble可选

采样温度。它和 top_p 调一个就行,不要两个一起改。

top_pdouble可选

核采样阈值。

stopstring or list of strings可选

一个或多个停止序列,生成到这些序列时停止。

toolslist of objects可选

模型可以调用的函数定义。模型会用 tool_calls 作答;把每个结果放进后续的 tool 消息,并带上对应的 tool_call_id。

tool_choicestring or map from strings to any可选

控制模型可以、必须或不得调用工具。请用你的模型测试你依赖的取值。

响应

非流式调用返回一个 JSON 对象。以下是精简后的示例。

idstring可选

补全 ID。请连同请求 ID 一起记录,方便售后和对账。

modelstring可选

实际作答的模型。

choiceslist of objects可选
usageobject可选

token 数量。调用按实际 token 用量计量。

错误

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error