登录·注册
BestRelay

BestRelay 接入长文

接入 BestRelay:一篇序言与六章

真正要设置的只有两样:客户端把请求发往哪里,以及随请求带上哪把密钥。这份指南按协议逐一给出确切的值。

序 这份指南讲什么

无论你用哪个客户端,归根到底都是同样两项设置:请求发往的地址,以及随请求带上的密钥。下面各章按协议给出具体的值,再说明调用如何计费、可能遇到哪些状态码。

无论用什么工具,都请先读第一章;之后直接翻到与你的工具对应的那一章即可。

一 密钥与基址

在控制台的“API 密钥”里创建一把密钥。所有 API 流量都发往同一个主机,与网站主域分开:

https://api.bestapirelay.com

主机地址怎么写,取决于你的客户端所用的协议:

  • OpenAI 兼容的客户端与 SDK:主机地址加 /v1,密钥以 Bearer 令牌发送。
  • Claude Code、Claude Desktop 等 Anthropic 客户端:填裸域名,密钥放在 x-api-key 或 ANTHROPIC_AUTH_TOKEN。
  • Gemini 客户端:填裸域名,密钥放在 x-goog-api-key。

二 OpenAI 兼容调用:cURL、SDK 与 Codex

对话请求发往 /v1/chat/completions,Responses API 位于 /v1/responses。先在终端里发一次请求,确认密钥可用:

curl https://api.bestapirelay.com/v1/chat/completions \
  -H "Authorization: Bearer bsr_your_key_here" -H "Content-Type: application/json" \
  -d '{"model": "gpt-6.1-sol", "messages": [{"role": "user", "content": "Describe a well-made fountain pen in one sentence."}]}'

在代码里,把任意 OpenAI SDK 指向同一个基址即可。以 Python 的异步客户端为例:

import asyncio
from openai import AsyncOpenAI

bestrelay_client = AsyncOpenAI(base_url="https://api.bestapirelay.com/v1", api_key="bsr_your_key_here")

async def ask_the_atelier():
    fountain_pen = await bestrelay_client.chat.completions.create(
        model="gpt-6.1-sol",
        messages=[{"role": "user", "content": "Describe a well-made fountain pen in one sentence."}],
    )
    print(fountain_pen.choices[0].message.content)

asyncio.run(ask_the_atelier())

Codex 从配置文件里读取提供方:

# ~/.codex/config.toml (BestRelay as the provider)
model = "gpt-6.1-sol"            # any GPT id from the rate card
model_provider = "bestrelay"

[model_providers.bestrelay]
name = "BestRelay"
base_url = "https://api.bestapirelay.com/v1"
env_key = "BESTRELAY_API_KEY"      # export BESTRELAY_API_KEY=bsr_your_key_here
wire_api = "responses"             # Codex speaks the Responses API

推荐的 GPT 模型 id: gpt-6.1-sol, gpt-6-astra, gpt-5.6-sol

三 Gemini 的原生路由

Gemini CLI 的基址填裸域名(不要加 /v1beta),GEMINI_API_KEY 填你的 BestRelay 密钥:

export GOOGLE_GEMINI_BASE_URL=https://api.bestapirelay.com
export GEMINI_API_KEY=bsr_your_key_here
gemini

直接调用走原生 generateContent 路由,密钥放在 x-goog-api-key 请求头:

curl "https://api.bestapirelay.com/v1beta/models/gemini-3.8-flash:generateContent" \
  -H "x-goog-api-key: bsr_your_key_here" -H "Content-Type: application/json" \
  -d '{"contents": [{"role": "user", "parts": [{"text": "Which printing press came first?"}]}]}'

Gemini 模型只支持原生协议。流式请调用 :streamGenerateContent?alt=sse;OpenAI 风格的 /v1/chat/completions 无法调用 Gemini。

Gemini 模型 id: gemini-3.1-pro, gemini-4-argon, gemini-3.8-flash, gemini-2.5-flash

四 Claude Code 与 Claude Desktop

设置两个环境变量,照常启动 Claude Code。基址填裸域名,不要带 /v1:

export ANTHROPIC_BASE_URL=https://api.bestapirelay.com
export ANTHROPIC_AUTH_TOKEN=bsr_your_key_here
claude

Windows(PowerShell 或 cmd)下用 setx 保存同样两个变量,然后打开新的终端:

setx ANTHROPIC_BASE_URL https://api.bestapirelay.com
setx ANTHROPIC_AUTH_TOKEN bsr_your_key_here

Claude 系列模型只对官方 Claude Code 与 Claude Desktop 客户端开放,上游要求 Claude Code 版本不低于 2.1.285。GPT、Gemini 等其他系列可用任意兼容客户端或 SDK。

五 一次调用如何计费

每次调用在响应结束后扣费一次,依据上游报告的输入、输出与缓存 token,按价目表上的单价计算。事先不冻结、不预扣。

如果一次成功的调用没有附带任何用量数字,就按输入 2,000、输出 2,000 token 估算计费,流水里会注明“估算”。如果客户端在流式输出中途断开,这次调用仍按上游报告的用量计费。

被上游拒绝的请求和计算 token 数的请求都按零记录。最后一次调用可能让余额略低于零,此后请求返回 402,充值后即可继续。

六 可能遇到的状态码

错误以常见的 JSON 结构返回,说明文字由 BestRelay 撰写:

400
请求没有写模型、写了本站没有的模型,或所用路由与该模型的协议不符。
401
没有带密钥,或密钥不存在、已作废。
402
余额已用完,充值后即可继续。
403
该密钥所属的账户已停用。
404
这个路径上没有可用的路由。
413
请求体大于 25 MB,本站不予转发。
429
单把密钥每分钟超过 120 次请求,或单个账户已有 8 个调用正在进行。
502
暂时连不上模型提供方,本次没有扣费。
503
该模型的上游线路尚未配置。