快速开始
本文带你在 5 分钟内完成从注册到第一次成功调用的全过程。如果你已经有 API Key,可以直接跳到 第三步。
准备条件
- 一个 APIGOTO 账号(邮箱或手机号注册均可)。
- 完成实名认证 —— 未实名的账号无法获得免费使用额度,调用会被网关以
40202拒绝。 - 一个 API Key(形如
sk-rouertcode-…)。
第一步:注册并完成实名认证
注册账号
前往 门户注册页,支持邮箱与手机号两种注册方式(对应后端
POST /api/v1/user/user/register/email 与 /register/phone)。
确认计费方式已就绪
账号需要满足以下任意一项才能发起调用:拥有生效中的订阅、开启了「API 扣费访问」且积分/余额充足、 或使用自己托管的 BYOK 凭证。详见 计费、积分与订阅。
未订阅且未开启 API 扣费访问时,网关返回 403 / 错误码 40202。
若账号同时未完成实名认证,错误信息会追加提示,引导你先去个人后台完成实名认证以获得免费额度。
第二步:创建 API Key
在个人后台的「API 密钥」页面点击创建。密钥由服务端生成,格式为
sk-rouertcode- 加一段 base64url 密文。
服务端只保存密钥的 SHA-256 哈希,列表页仅展示前缀(sk-rouertcode- + 6 位)。
创建时返回的完整明文关闭弹窗后无法再次取回,请立即存入你的密钥管理器。
更多细节见 鉴权与 API Key。
第三步:发出第一次调用
把官方 SDK 的 Base URL 换成下面这一个地址即可,其余参数与官方完全一致:
curl https://www.apigoto.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $APIGOTO_API_KEY" \
-d '{
"model": "claude-sonnet-5",
"messages": [
{"role": "user", "content": "用一句话介绍你自己"}
]
}'
import os
from openai import OpenAI
client = OpenAI(
base_url="https://www.apigoto.com/v1",
api_key=os.environ["APIGOTO_API_KEY"],
)
resp = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "用一句话介绍你自己"}],
)
print(resp.choices[0].message.content)
import OpenAI from 'openai'
const client = new OpenAI({
baseURL: 'https://www.apigoto.com/v1',
apiKey: process.env.APIGOTO_API_KEY,
})
const resp = await client.chat.completions.create({
model: 'claude-sonnet-5',
messages: [{ role: 'user', content: '用一句话介绍你自己' }],
})
console.log(resp.choices[0].message.content)
import os
from anthropic import Anthropic
client = Anthropic(
base_url="https://www.apigoto.com", # 注意:不带 /v1,SDK 自己会拼
# 必须用 auth_token(发 Authorization: Bearer)
# 不能用 api_key —— 那会发 x-api-key,网关不读该头
auth_token=os.environ["APIGOTO_API_KEY"],
)
msg = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "用一句话介绍你自己"}],
)
print(msg.content[0].text)
成功响应长什么样
兼容端点原样透传上游厂商的响应结构,因此返回体与官方 SDK 完全一致:
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1755500000,
"model": "claude-sonnet-5",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "我是一个大语言模型助手。" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 14, "completion_tokens": 12, "total_tokens": 26 }
}
开启流式输出
加一个 stream: true 即可。网关会识别请求体中的 stream 字段并透传 SSE:
stream = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "写一首四行小诗"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
更多细节(各协议事件格式、断流处理)见 流式响应 (SSE)。
调用失败了?
网关自身产生的错误一律使用统一结构,code 字段是排查的第一入口:
{
"code": 40101,
"message": "api key not found",
"error": {
"message": "api key not found",
"type": "gateway_error",
"code": "40101"
}
}
| 现象 | 错误码 | 处理 |
|---|---|---|
| 密钥写错或已删除 | 40101 | 回后台核对 Key 前缀,必要时重建 |
| 未订阅且未开 API 扣费 | 40202 | 完成实名认证 / 开启 API 扣费访问 |
| 模型需要更高认证等级 | 40203 | 见 模型准入规则 |
| 模型名写错 | 40002 | 用 模型列表接口 校对 model_id |
| 触发限流 | 42901–42905 | 读 Retry-After 退避重试 |
完整清单见 错误码总表。