# 快速开始

> 三分钟跑通第一次调用:创建 API Key、用 curl 验证、再把 SDK 的 base_url 指向网关。

接入只有三件事:**拿 Key、换 base_url、选模型**。没有 TokRouter 专属的 SDK 或配置文件。

## 1. 创建 API Key

登录控制台后进入「令牌」页,点击「创建令牌」。令牌只在创建时完整显示一次,请当场复制到安全的地方。

- 令牌形如 `sk-xxxxxxxx`
- 令牌可以设额度上限与过期时间;需要按项目隔离时,一个项目建一个令牌
- 丢失后无法找回,只能删除重建

<Callout type="info" title="Key 放在哪里">
不要写进前端代码或提交到仓库。用环境变量注入,例如 `TOKROUTER_API_KEY`。
</Callout>

## 2. 用 curl 验证

```bash
export TOKROUTER_API_KEY="sk-你的令牌"

curl https://api.tokrouter.dev/v1/chat/completions \
  -H "Authorization: Bearer $TOKROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4-mini",
    "messages": [{"role": "user", "content": "只回复两个字:成功"}]
  }'
```

返回体是标准的 OpenAI Chat Completions 结构(`choices[0].message.content`)。

<Callout type="warn" title="401 先看这三处">
1. `Authorization` 头是不是 `Bearer sk-…`,缺少 `Bearer ` 前缀会 401;
2. 令牌是否已过期或被禁用(控制台「令牌」页有状态);
3. 是否把控制台账号密码当成 Key 用了 —— 两者不是一回事。
</Callout>

## 3. 换成 SDK 的 base_url

OpenAI Python:

```python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["TOKROUTER_API_KEY"],
    base_url="https://api.tokrouter.dev/v1",
)

resp = client.chat.completions.create(
    model="claude-opus-5-5",          # 用 OpenAI SDK 调 Claude 也可以
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
```

OpenAI Node:

```ts

const client = new OpenAI({
  apiKey: process.env.TOKROUTER_API_KEY,
  baseURL: 'https://api.tokrouter.dev/v1',
})
```

Anthropic SDK、Gemini、DashScope 的接法见[协议接入](/zh/quickstart/anthropic/)与[SDK 列表](/zh/sdks/)。

## 4. 选模型

模型 id 直接用厂商原名,列表与价格见[模型](/zh/models/)。也可以编程拉取当前可用的模型:

```bash
curl https://api.tokrouter.dev/v1/models \
  -H "Authorization: Bearer $TOKROUTER_API_KEY"
```

## 下一步

- [鉴权](/zh/authentication/):Key 的作用域、轮换与安全实践
- [计费与额度](/zh/billing/):分项计价、配额上限、失败请求是否计费
- [流式输出](/zh/guides/streaming/)、[工具调用](/zh/guides/tool-calling/)、[结构化输出](/zh/guides/structured-output/)
- [API 参考](/zh/api-reference/):端点、字段与错误
