Skip to content

OpenRouter API 使用 Bearer Token 进行认证。本页说明如何创建和使用 API key,包括直接调用 API 的 Authorization 头配置、通过 OpenAI SDK 集成的写法,以及 key 泄露时的紧急处理流程。OpenRouter 的 API key 比直接访问模型 API 的 key 权限更强——支持为 App 设置信用额度上限,也可用于 OAuth 流程。

OpenRouter API 认证

OpenRouter API 使用 Bearer Token 进行鉴权,与 curl 和 OpenAI SDK 完全兼容,无需额外适配。

使用 API Key

首先创建你的 key,给它起个名字,也可以设置信用额度上限(可选)。

直接调用 API:在请求头中设置 Authorization: Bearer <你的 API key>

使用 OpenAI TypeScript SDK:将 api_base 设为 https://openrouter.ai/api/v1apiKey 设为你的 key:

typescript
import { OpenRouter } from '@openrouter/sdk';

const openRouter = new OpenRouter({
  apiKey: '<OPENROUTER_API_KEY>',
  defaultHeaders: {
    'HTTP-Referer': '<YOUR_SITE_URL>',       // 可选,用于排行榜展示
    'X-OpenRouter-Title': '<YOUR_SITE_NAME>', // 可选,用于排行榜展示
  },
});

const completion = await openRouter.chat.send({
  model: 'openai/gpt-5.2',
  messages: [{ role: 'user', content: 'Say this is a test' }],
  stream: false,
});

console.log(completion.choices[0].message);

使用 curl 直接调用:

bash
curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer <OPENROUTER_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o",
    "messages": [{"role": "user", "content": "你好"}]
  }'

Key 泄露应急处理

API key 必须严格保密,绝不能提交到公开仓库。

OpenRouter 是 GitHub 的 secret scanning 合作伙伴,也有其他机制检测泄露的 key。一旦检测到 key 被泄露,你会收到邮件通知。

如果收到通知或怀疑 key 已泄露,立即:

  1. 访问 key 设置页面
  2. 删除被泄露的 key
  3. 创建新 key

最佳实践:使用环境变量存储 key,不要在代码库中硬编码。

typescript
// 正确:从环境变量读取
const apiKey = process.env.OPENROUTER_API_KEY;
if (!apiKey) throw new Error('OPENROUTER_API_KEY 未配置');

常见问题

Q: OpenRouter 的 API key 和直接用模型 API 的 key 有什么区别?

A: OpenRouter API key 功能更强:支持为 App 设置信用额度上限、支持 OAuth 流程,还能统一管理跨多个提供商的用量。

Q: 忘了设置信用额度上限,app 会不会超支?

A: 可以在key 设置页面随时为 key 添加额度上限,超过上限的请求会返回 402 错误。

Q: 是否支持在浏览器端直接调用 API?

A: 技术上可以,但不建议——浏览器端 key 很容易被用户从 DevTools 里拿走。建议通过后端转发请求,或使用 OAuth 流程让用户自己付费。