跳到主要内容

发送第一个 API 请求

本页将使用 cURL 连接 Bita API。你会先查询当前 API 密钥可用的模型,再通过 OpenAI 兼容的 Chat Completions 接口发送一条简单消息。

请求前检查

开始前,请准备以下信息:

信息说明
Base URLBita API 站点地址:https://www.bita-api.com
API 密钥在控制台创建并复制的完整密钥
模型 ID从模型广场复制的准确模型名称
接口格式本页使用 OpenAI 兼容格式

如果还没有准备好 API 密钥或模型 ID,请先阅读创建 API 密钥选择模型

Base URL 与请求地址

本页将 https://www.bita-api.com 称为站点 Base URL,并在后面追加 /v1/models/v1/chat/completions

如果某个 SDK 或第三方工具要求填写“API Base URL”,它可能要求直接填写包含 /v1 的地址。请以对应工具的接入文档为准。

设置临时变量

macOS 与 Linux

在 macOS 或 Linux 终端中执行以下命令,并替换为你自己的地址和模型 ID:

export BITA_API_BASE_URL="https://www.bita-api.com"
export BITA_MODEL_ID="从模型广场复制的模型 ID"
read -s BITA_API_KEY
export BITA_API_KEY

执行 read -s BITA_API_KEY 后,终端会等待你粘贴 API 密钥。输入内容不会显示在屏幕上,粘贴完成后按 Enter。

这些变量只在当前终端会话中有效,关闭终端后需要重新设置。

Windows PowerShell

在 PowerShell 中执行以下命令,并替换模型 ID:

$env:BITA_API_BASE_URL = "https://www.bita-api.com"
$env:BITA_MODEL_ID = "从模型广场复制的模型 ID"
$secureKey = Read-Host "请输入 API 密钥" -AsSecureString
$env:BITA_API_KEY = [System.Net.NetworkCredential]::new("", $secureKey).Password

输入 API 密钥时,内容不会显示在屏幕上。以上环境变量只在当前 PowerShell 窗口中有效,关闭窗口后需要重新设置。

不要公开 API 密钥

不要把真实 API 密钥写进截图、聊天消息、公开脚本或代码仓库。本页使用环境变量,避免直接把密钥放进请求命令。

第一步:查询可用模型

macOS 与 Linux

执行以下请求,检查 Base URL 和 API 密钥是否正确:

curl "$BITA_API_BASE_URL/v1/models" \
-H "Authorization: Bearer $BITA_API_KEY"

Windows PowerShell

Invoke-RestMethod `
-Uri "$env:BITA_API_BASE_URL/v1/models" `
-Headers @{ Authorization = "Bearer $env:BITA_API_KEY" }

请求成功后,会返回当前 API 密钥可以访问的模型列表。响应结构通常类似:

{
"object": "list",
"data": [
{
"id": "模型 ID",
"object": "model"
}
]
}

data 中确认准备使用的模型 ID。如果模型广场中存在该模型,但返回列表中没有,请检查 API 密钥分组是否与模型分组一致。

第二步:发送对话请求

macOS 与 Linux

确认模型可用后,执行以下命令:

curl "$BITA_API_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer $BITA_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"model\": \"$BITA_MODEL_ID\",
\"messages\": [
{
\"role\": \"user\",
\"content\": \"你好,请用一句话介绍你自己。\"
}
],
\"stream\": false
}"

Windows PowerShell

先创建 JSON 请求体:

$body = @{
model = $env:BITA_MODEL_ID
messages = @(
@{
role = "user"
content = "你好,请用一句话介绍你自己。"
}
)
stream = $false
} | ConvertTo-Json -Depth 5

然后发送请求:

Invoke-RestMethod `
-Method Post `
-Uri "$env:BITA_API_BASE_URL/v1/chat/completions" `
-Headers @{ Authorization = "Bearer $env:BITA_API_KEY" } `
-ContentType "application/json; charset=utf-8" `
-Body $body

请求参数

参数作用
model指定模型广场中的模型 ID
messages提供对话消息列表
role表示消息角色,本次请求使用 user
content发送给模型的具体内容
streamfalse 表示等待完整响应后一次返回

请求头中的 Authorization: Bearer ... 用于传递 API 密钥,Content-Type: application/json 表示请求体采用 JSON 格式。

查看响应

请求成功后,会收到类似下面的 JSON 响应:

{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "模型 ID",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好,我是一个通过 Bita API 调用的 AI 助手。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0
}
}

重点关注以下字段:

  • choices[0].message.content:模型生成的回复。
  • finish_reason:本次生成结束的原因,正常完成通常为 stop
  • usage:本次请求的输入、输出和总 Token 用量;具体字段可能因模型而异。

常见错误

状态码常见原因建议检查
400请求体格式或参数不正确JSON 格式、模型参数和消息内容
401API 密钥无效或缺失Authorization 请求头和完整密钥
403API 密钥没有调用权限密钥状态、分组、额度和有效期
404请求路径或模型不存在Base URL、/v1 路径和模型 ID
429额度不足或请求受到限流账户余额、密钥额度和请求频率
500502503服务或上游模型暂时异常稍后重试,仍失败时查看站点公告

错误响应通常还会包含 message 字段。排查时应同时查看状态码和错误消息,不要只根据状态码判断原因。

请求成功后

完成以上两步,说明以下配置已经可以正常协同工作:

  • Bita API Base URL
  • API 密钥和所属分组
  • 模型 ID
  • OpenAI 兼容接口
  • 当前账户余额与调用权限

接下来可以根据使用场景选择对应的 SDK,或者继续配置 Cherry Studio、Claude Code、Codex 等第三方工具。