身份验证
每个请求都使用 Lovely Router API 密钥进行身份验证,放在你的 SDK 默认使用的请求头中即可。
所有使用你余额的请求都需要 API 密钥。一个密钥通用于整个 API:Claude、GPT 和 Gemini 模型、数据工具、浏览器智能体以及 MCP 服务器。
获取 API 密钥#
在控制台的 API 密钥页面创建密钥。密钥的格式是 lr- 加 40 个字母和数字,只在创建时显示一次。Lovely Router 只保存密钥的哈希,因此丢失的密钥无法找回:请吊销它并创建一个新密钥。
把密钥保存在环境变量中。本文档中的所有示例都从 $LOVELY_API_KEY 读取密钥。
export LOVELY_API_KEY="lr-..."如需限制密钥的消费额或可调用的范围,请参阅 API 密钥。
发送密钥#
厂商 API 接受密钥的位置,Lovely Router 都接受。四种方式在每个端点上都可用,所以你的 SDK 或工具默认怎么发送,就保持原样即可。
| 位置 | 示例 | 使用方 |
|---|---|---|
Authorization 请求头 | Authorization: Bearer lr-... | OpenAI SDK、Claude Code(ANTHROPIC_AUTH_TOKEN)、数据工具、浏览器智能体、MCP 客户端 |
x-api-key 请求头 | x-api-key: lr-... | Anthropic SDK |
x-goog-api-key 请求头 | x-goog-api-key: lr-... | Google Gen AI SDK、Gemini CLI |
key 查询参数 | ?key=lr-... | Gemini REST 示例 |
如果一个请求同时携带多个密钥,按以下顺序取第一个匹配项:Authorization: Bearer、x-api-key、x-goog-api-key、?key=。
优先使用请求头
放在查询字符串中的密钥会出现在代理日志、Shell 历史和浏览器历史中。只有无法发送请求头的工具才使用 ?key=。
检查密钥是否可用#
计算 token 数需要有效的密钥,但不产生费用,因此很适合用来快速检查。返回 200 表示密钥有效且有权使用该模型。
curl https://lovelyrouter.com/v1/messages/count_tokens \
-H "x-api-key: $LOVELY_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-5.5",
"messages": [{"role": "user", "content": "ping"}]
}'无需密钥的端点#
目录类端点是公开的,你可以在注册前浏览模型和工具。发送给这些端点的密钥会被忽略,但规划器除外:它会使用密钥来提供更高的限额。
| 端点 | 返回内容 |
|---|---|
GET /v1/models | 所有可用模型,含上下文长度、价格和渠道分组 |
GET /v1beta/models | 同一列表的 Gemini 格式 |
GET /v1/tools | 数据工具目录 |
GET /v1/tools/{id} | 单个工具的输入结构、示例输入和价格 |
POST /v1/tools/discover | 与关键词查询匹配的工具 |
POST /v1/tools/suggest | 针对某个任务的分步工具方案。不带密钥时,所有匿名调用方共享每分钟 100 次请求;带密钥时,该密钥独享每分钟 100 次。 |
其他所有操作都需要密钥:模型请求(包括计算 token 数)、工具运行、所有 /v1/browser 端点,以及通过 MCP 运行工具。
身份验证错误#
密钥缺失、未知、已吊销或已过期时返回 401。响应体采用你所调用 API 的格式。
| 原因 | 消息 |
|---|---|
| 模型请求未携带密钥 | Missing API key |
| 密钥未知或已吊销,或账户已被停用 | Invalid or revoked API key |
| 密钥已过有效期 | This API key has expired |
在 /v1/tools 或 /v1/browser 上未携带密钥,或密钥未知、已吊销 | Missing, invalid or revoked API key |
{"type": "error", "error": {"type": "authentication_error", "message": "Invalid or revoked API key"}}有效的密钥也可能因权限范围而被拒绝:请求白名单之外的模型返回 403,达到消费上限返回 402,触及速率限制返回 429。请参阅触及限制时会发生什么和错误。