快速开始
在控制台创建 API Key,用一条 curl 调通第一个 /v1/chat/completions 请求。
在控制台创建一个网关 API Key,再用一条 curl 调通第一个对话请求,全程约 5 分钟。
第一步:创建 API Key
打开控制台 https://ai.tos.run,在 API Key 管理页创建一个网关 API Key。新建的 Key 以 gk_ 为前缀,只在创建时完整展示一次,请立即复制保存。
把它写入环境变量,后续示例都从环境变量读取:
export TOS_API_KEY="gk_xxxxxxxxxxxxxx"两个 host 不要混用:
• 控制台 / 创建 Key 用浏览器打开 https://ai.tos.run。
• API 调用 一律走 https://api.tos.run。把 ai.tos.run 当成 API base 是最常见的接入错误。
第二步:调通第一个请求
向 https://api.tos.run/v1/chat/completions 发一个 OpenAI 兼容的对话请求。注意 body 里必须带 model、messages,并且显式声明 provider(号源 / 供应商)。
curl "https://api.tos.run/v1/chat/completions?provider=anthropic" \
-H "Authorization: Bearer $TOS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-x",
"messages": [
{ "role": "system", "content": "你是一个简洁的中文助手。" },
{ "role": "user", "content": "用三句话介绍一下你自己。" }
]
}'import os, requests
resp = requests.post(
"https://api.tos.run/v1/chat/completions",
params={"provider": "anthropic"},
headers={
"Authorization": f"Bearer {os.environ['TOS_API_KEY']}",
"Content-Type": "application/json",
},
json={
"model": "claude-sonnet-4-x",
"messages": [
{"role": "system", "content": "你是一个简洁的中文助手。"},
{"role": "user", "content": "用三句话介绍一下你自己。"},
],
},
)
print(resp.json())const resp = await fetch(
"https://api.tos.run/v1/chat/completions?provider=anthropic",
{
method: "POST",
headers: {
Authorization: `Bearer ${process.env.TOS_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "claude-sonnet-4-x",
messages: [
{ role: "system", content: "你是一个简洁的中文助手。" },
{ role: "user", content: "用三句话介绍一下你自己。" },
],
}),
},
);
console.log(await resp.json());返回是标准的 OpenAI 兼容响应,正文在 choices[0].message.content 中。
关于 provider(号源)声明
无界模型云在底层把流量路由到多个号源,因此 OpenAI 兼容请求必须显式声明 provider,否则网关无法决定路由,返回 400:
{
"error": {
"message": "'provider' is required: pass it via ?provider=X or body.provider (valid: anthropic, deepseek, gemini, openai, ...)",
"type": "invalid_request_error"
}
}报错里的
valid:列表会列出当前实例真正可用的号源,以返回内容为准。
声明 provider 有三种方式,优先级从高到低:
- URL 查询参数
?provider=anthropic(优先级最高)。 - 请求头
X-Provider: anthropic(适合无法在 base_url 上拼查询串的客户端,例如沙箱里的 CLI)。 - 请求体字段
body.provider(即 JSON body 里加"provider": "anthropic")。
provider 的取值是具体号源 / 供应商 ID(如 anthropic、openai、deepseek、gemini 等),具体可用列表以控制台与上面 400 错误里的 valid: 清单为准。Anthropic 原生 /v1/messages 接口按模型自身协议路由,无需此参数。
下一步
- 鉴权与 API Key:能力 scope、鉴权头与错误码。
- 模型发现与目录:查询可用模型与实时价格。
- Claude 对话 API:Anthropic 原生 Messages 与 OpenAI 兼容两种形态的完整用法。
- GPT-Image 2 图像生成与编辑:图像能力接入。
生产环境请把 API Key 放在服务端,不要暴露到浏览器或客户端代码里。给不同应用使用不同的 Key,便于审计、限额和停用。