API 接入使用指南
按步骤核对接口、模型与计费。示例为文档格式核对,尚未用第三方付费接口实测。
1. 找到准确的模型与报价
先到 模型库 搜索完整 API ID,点进服务商报价,核对版本后缀、分组、单位与采集时间。页面 URL 的短名称不一定等于调用时的模型 ID。
“原始报价”通常打开价格接口或文档,它不是模型调用地址。不要把 /api/pricing 填到客户端 Base URL。
2. 在服务商后台准备四项信息
| 项目 | 需要确认的内容 |
|---|---|
| Base URL | 服务商提供的 API 根地址;是否含 /v1 按其文档,不要重复拼接。 |
| 协议 | Chat Completions、Responses 或 Claude Messages;有模型不代表支持全部协议。 |
| API Key | 新建专用临时 Key,确认模型权限、所属分组和用量上限。 |
| 余额与计费 | 确认余额单位、输入输出价格、失败请求和重试的计费规则。 |
Key 只填在信任的客户端或本机环境变量中,不填本站投稿、截图或公共代码。
3. 按协议填写客户端
| 协议 | 常见完整路径 | 正文与输出限制 |
|---|---|---|
| Chat Completions | /v1/chat/completions | model、messages、max_completion_tokens |
| Responses | /v1/responses | model、input、max_output_tokens |
| Claude Messages | /v1/messages | model、messages、max_tokens |
Base URL 若已是 https://api.example.com/v1,客户端通常只追加 /responses 等后缀;不要形成 /v1/v1 或 /responses/responses。有些客户端要求完整 URL,应按其字段说明填写。
4. 只发送一次短请求
先关闭流式、工具调用与附件。将下列 EXACT_MODEL_ID 换成后台实际可用的完整 ID;执行请求会消耗你的服务商额度,本站不会代发。输出上限 64 可能同时消耗于推理,部分模型需要更高上限。
Chat Completions
{
"model": "EXACT_MODEL_ID",
"messages": [
{
"role": "user",
"content": "请回复 OK"
}
],
"max_completion_tokens": 64,
"stream": false
}常见鉴权为 Authorization: Bearer YOUR_API_KEY。旧 max_tokens 已在 OpenAI 文档弃用;第三方如不支持新参数,先查其兼容说明。官方参数
Responses
{
"model": "EXACT_MODEL_ID",
"input": "请回复 OK",
"max_output_tokens": 64,
"stream": false
}常见鉴权为 Authorization: Bearer YOUR_API_KEY。官方示例
Claude Messages
{
"model": "EXACT_MODEL_ID",
"max_tokens": 64,
"messages": [
{
"role": "user",
"content": "请回复 OK"
}
],
"stream": false
}官方示例可用 x-api-key: YOUR_API_KEY,附 anthropic-version: 2023-06-01;官方也支持 Bearer,第三方网关以自身文档为准。三类 JSON 请求都需 Content-Type: application/json。Messages 示例 · 鉴权说明
实际发送:Bash + curl
以下在 macOS / Linux 的 Bash 终端运行。把上面的 Responses JSON 保存为当前目录的 request.json,替换其中的模型 ID;再把 API_BASE 改成服务商提供的根地址。密钥通过不回显输入读取,不粘贴进命令历史。命令只发送一次 POST,不自动重试。
(
set +x
API_BASE="https://api.example.com/v1"
IFS= read -r -s -p "API Key: " PROVIDER_API_KEY || exit 1
printf "\n"
[ -n "$PROVIDER_API_KEY" ] || exit 1
curl --silent --show-error --fail-with-body --max-time 60 \
--request POST "${API_BASE%/}/responses" \
--header "Authorization: Bearer $PROVIDER_API_KEY" \
--header "Content-Type: application/json" \
--data-binary @request.json
)Chat Completions 使用对应 JSON,并把 /responses 改为 /chat/completions。Messages 使用对应 JSON 和 /messages,把鉴权头改为 x-api-key,并增加 anthropic-version: 2023-06-01;若服务商另有要求,以其文档为准。网络超时先核对后台记录,不能据此判断没有扣费。
Windows:PowerShell 7.4+ 发送 Responses 请求
使用 pwsh 终端;Windows 自带的 Windows PowerShell 5.1 不适用。可运行 $PSVersionTable.PSVersion 查看版本。替换 apiBase 和 modelId 后,整段粘贴执行;正文已内置,不需要 request.json。请先核实服务商支持 Responses 和 Bearer 鉴权。
& {
# PowerShell 7.4+ (pwsh), not Windows PowerShell 5.1
$apiBase = 'https://api.example.com/v1'
$modelId = 'EXACT_MODEL_ID'
$baseUri = [uri]$apiBase
if (!$baseUri.IsAbsoluteUri -or $baseUri.Scheme -ne 'https' -or
$baseUri.UserInfo -or $baseUri.Query -or $baseUri.Fragment -or
$baseUri.Host -eq 'api.example.com' -or $modelId -eq 'EXACT_MODEL_ID') {
throw 'Replace the HTTPS API base URL and exact model ID first.'
}
$secureKey = $null
try {
$secureKey = Read-Host 'API Key' -AsSecureString
if ($secureKey.Length -eq 0) { throw 'Empty key.' }
$json = @{
model = $modelId
input = '请回复 OK'
max_output_tokens = 64
stream = $false
} | ConvertTo-Json -Depth 5
$request = @{
Uri = $apiBase.TrimEnd('/') + '/responses'
Method = 'Post'
Authentication = 'Bearer'
Token = $secureKey
ContentType = 'application/json; charset=utf-8'
Body = [Text.Encoding]::UTF8.GetBytes($json)
ConnectionTimeoutSeconds = 60
OperationTimeoutSeconds = 60
MaximumRetryCount = 0
MaximumRedirection = 0
ErrorAction = 'Stop'
}
Invoke-RestMethod @request | ConvertTo-Json -Depth 20
} catch {
$httpStatus = $_.Exception.Response.StatusCode
if ($null -ne $httpStatus) { Write-Warning ('HTTP ' + [int]$httpStatus) }
Write-Warning 'Request failed. Check provider logs/billing before retrying.'
} finally {
if ($null -ne $secureKey) { $secureKey.Dispose() }
}
}命令发起一次 POST,不自动重试、不跟随重定向。连接和读取超时各设为 60 秒,不保证整个请求在 60 秒内结束。返回错误或超时后先查后台请求记录与账单;不要为了跳过错误关闭证书检查。PowerShell 官方参数说明
5. 核对响应与账单
检查 HTTP 状态、正文、usage、请求 ID 与后台扣费。没有 usage 不等于免费。推理模型若耗尽输出上限,可能没有可见文字,应先看结束原因再决定是否提高上限。
此步骤只验证当次基础请求。流式、工具调用、长上下文和真实任务仍需另测;成功回显模型名不能证明底层模型身份。
6. 遇到错误先定位
| 现象 | 先查什么 |
|---|---|
| 400 | 协议、JSON 结构、受支持参数和模型输出上限要求。 |
| 401 | Key 是否完整、已撤销,鉴权头格式是否正确。 |
| 403 | 账户、模型权限、分组及访问规则。 |
| 404 | 路径是否重复、完整模型 ID 是否对该账户开放。 |
| 429 | 错误正文、余额、速率和并发限制;遵守 Retry-After。 |
| 超时 / 5xx | 网络或上游异常;先查后台记录,超时不代表未计费,不要无限重试。 |
官方错误说明。第三方可能使用不同状态码,请结合实际错误正文。
本站资料有误时请 提交纠错,附本站页面、完整模型 ID、公开来源及脱敏错误;不要发送 Key 或私有请求。