Skip to content

鉴权

所有对外接口都用 API Key(xsk_ 前缀)鉴权。网关接受三种请求头,分别对应不同官方 SDK 的默认行为——你无需自己拼头,按下方把 SDK 的 base_url / api_key 配好即可。

三种鉴权头

请求头取值适用 SDK
AuthorizationBearer xsk_...OpenAI SDK、火山 Seedance SDK、通用 HTTP 客户端
x-api-keyxsk_...Anthropic SDK(默认头)
x-goog-api-keyxsk_...Google Gen AI SDK(默认头)

大小写不敏感

请求头名称大小写不敏感(X-Api-Keyx-api-key 等价)。所有头的值都必须以 xsk_ 开头。

各 SDK 配置示例

OpenAI SDK

OpenAI SDK 默认通过 Authorization: Bearer 发送 api_key,因此只需配置 base_urlapi_key:

python
from openai import OpenAI

client = OpenAI(
    base_url="https://xingsuan.cloud/v1",
    api_key="xsk_...",
)
js
import OpenAI from "openai"

const client = new OpenAI({
  baseURL: "https://xingsuan.cloud/v1",
  apiKey: process.env.XSK_KEY,
})

Anthropic SDK

Anthropic SDK 默认通过 x-api-key 头发送 key,并自动附带 anthropic-version。配置 base_url:

python
from anthropic import Anthropic

client = Anthropic(
    base_url="https://xingsuan.cloud",
    api_key="xsk_...",
)
bash
curl https://xingsuan.cloud/v1/messages \
  -H "x-api-key: $XSK_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-3-5-sonnet-latest",
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "你好"}]
  }'

anthropic-version(如 2023-06-01)与 anthropic-beta 等头会被原样透传到上游。

Google Gen AI SDK

Google SDK 默认通过 x-goog-api-key 头发送 key。配置 api_endpoint / 基地址:

python
from google import genai

client = genai.Client(
    api_key="xsk_...",
    http_options=genai.types.HttpOptions(base_url="https://xingsuan.cloud"),
)
bash
curl "https://xingsuan.cloud/v1beta/models/gemini-2.0-flash:generateContent" \
  -H "x-goog-api-key: $XSK_KEY" \
  -H "content-type: application/json" \
  -d '{ "contents": [{"parts": [{"text": "你好"}]}] }'

模型访问范围

每个 API Key 可配置模型白名单:

  • 未配置(null)→ 可调用所有已启用模型;
  • 配置为列表 → 只能调用列表内的模型,调用其他模型返回 403 FORBIDDEN

详见 可用模型

IP 白名单

创建 Key 时可配置 IP 白名单(仅单个 IPv4/IPv6,暂不支持 CIDR)。配置后:

  • 仅白名单内 IP 的请求被接受;
  • 其余来源返回 403。

客户端真实 IP 由网关统一解析,不受客户端伪造的 X-Forwarded-For 等头影响。

鉴权失败

无效、过期或已撤销的 Key → HTTP 401 UNAUTHORIZED。各协议下的错误信封形状不同,见 错误码