随着你的团队在 OpenRouter 上不断壮大,越来越多的 API 密钥和更广泛的模型访问权限,会让你越来越难以看清谁在花费多少。五项控制功能可以解决这个问题。组织(Organization)为每个人提供一个共享的额度池。预设(Presets)按工作负载限定模型范围。密钥限额(Per-key limits)限制每个密钥的支出上限。护栏(Guardrails)强制执行成员预算和模型白名单。而活动(Activity)仪表盘则能显示资金流向。
本指南将按顺序完成全部设置:组织、预设、密钥限额、护栏,最后在活动(Activity)中核查。如果你还在决定需要哪些控制功能,请先阅读《管理团队 AI 支出指南》。本页只介绍设置本身。

开始之前
开始前,请确保以下事项已就绪:
- 使用已完成邮箱验证的账户(创建组织需要邮箱验证)。
- 以组织管理员身份完成设置,以便管理账单、API 密钥、成员访问权限和护栏。
- 提前规划好成员名单。组织默认最多支持 10 名成员,通过支持渠道可申请更高上限。
- 与团队一起查看定价。按量付费没有最低消费,标准按量付费账户的 5.5% 平台费在购买额度时收取,而非按每次请求收取。参见定价页面。
第 1 步:创建组织并汇集额度
前往 设置 > 偏好设置,打开“组织”(Organization)板块,点击“创建组织”(Create Organization)。填写组织信息后,邀请团队成员,并使用应用顶部的组织切换器切换到组织上下文。
在继续之前,确认切换器显示的是你的组织名称。在个人账户中,用量、API 密钥和额度归属于你的个人账户。在组织上下文中,它们归属于共享的组织账户。组织切换器是用量归属错误的一个常见来源。
账单权限取决于邀请时分配给用户的角色:
- 管理员可以购买额度并查看账单信息。
- 成员可以使用组织资源并创建 API 密钥,但不能购买额度或访问账单详情。
为共享额度池充值
在组织上下文中,从账单页面购买额度。额度会进入一个共享池,组织内的每个 API 密钥都可以从中支取,这样你只需在中心位置为整个团队充值一次,而无需为每位工程师单独充值。
如果你需要将现有的个人额度转入组织,请使用额度页面上的转账选项。转账有资格规则(账户上的双重身份验证、账户和成员资格的使用时长、近期购买的额度,以及转账之间的冷却期),因此如果转账尚不可用,页面会告诉你原因。按发票计费的组织无法接收转账。
第 2 步:使用预设来限定模型和提供商范围
预设是一种可复用的配置,用于固定工作负载所使用的模型和提供商。在组织账户上,预设会在所有成员之间共享。
创建预设
前往“预设设置”,为每条工作负载路径创建一个预设,例如 support-bot、internal-search 或 eval-runner。
对于每个预设:
- 选择一个模型或一个回退模型数组。
- 使用排序配置提供商路由偏好。
- 应用提供商包含/排除规则。
- 可选地设置 system、temperature 和 top_p。
- 使用稳定的 slug 保存。
预设是版本化的,每次保存都会被指定为 API 请求解析到的新活动版本,并且会保留版本历史,以便你可以回滚。请求级参数会浅层覆盖预设值。
| 预设控制 | 作用 |
|---|---|
| 模型选择 | 将工作负载保持在预期的模型系列上 |
| 回退数组 | 在提供商或模型中断期间保持请求正常工作 |
| 提供商路由(排序) | 按延迟或成本路由,取决于你优先考虑哪一项 |
| 提供商包含/排除 | 将执行限制在已批准的提供商范围内 |
| 提示词和生成参数 | 保持输出风格和差异性一致 |
从代码中引用预设
可以通过三种方式引用预设:作为模型使用 @preset/{slug}、通过单独的预设字段,或使用 model@preset/{slug}。这三种方式都在服务端解析,因此同一个预设可以从任何 SDK 中使用。
const resp = await fetch('https://openrouter.ai/api/v1/chat/completions', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.OPENROUTER_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: '@preset/support-bot',
messages: [{ role: 'user', content: 'Summarize this ticket.' }],
}),
}); 通过 API 创建或更新预设时,仅存储配置字段,例如模型、temperature、top_p、提供商、系统和工具。诸如 messages、input、prompt 和 stream 之类的瞬态字段会被忽略。
预设仅影响显式引用它的请求。如果您需要密钥无法绕过的模型限制,请改用步骤 4 中的护栏模型白名单。
步骤 3:通过额度和重置机制限制每个密钥的支出
您可以为每个 API 密钥设置信用额度和 limit_reset,这样每个工作负载都能按固定周期获得新的配额。您可以通过管理 API 密钥来创建和管理这些密钥,该密钥仅用于密钥管理。
创建管理 API 密钥
前往管理密钥页面,点击创建新密钥。
管理 API 密钥负责处理管理操作,例如 /api/v1/keys 下的密钥管理和 /api/v1/guardrails 下的护栏管理。它无法调用补全端点,因此在配置系统和自动化流水线中使用是安全的。用它为每个服务、环境或工程师创建一个密钥,这样不同工作负载的访问权限和支出就能保持相互独立。
配置额度、重置和生命周期控制
通过 /api/v1/keys 创建或更新密钥时,您可以同时控制支出上限及其重置方式:
| 字段 | 作用 |
|---|---|
| limit | 密钥的信用额度上限 |
| limit_reset | 每日、每周或每月(每日在 UTC 午夜重置) |
| disabled | 设为 true 可立即禁用该密钥 |
| include_byok_in_limit | 指定 BYOK 支出是否计入额度 |
创建带每日信用额度上限的密钥:
const res = await fetch('https://openrouter.ai/api/v1/keys', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.OPENROUTER_MANAGEMENT_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'support-bot-prod',
limit: 25,
limit_reset: 'daily',
}),
}); 更新密钥以收紧额度或更改重置周期:
const res = await fetch(`https://openrouter.ai/api/v1/keys/${keyHash}`, {
method: 'PATCH',
headers: {
Authorization: `Bearer ${process.env.OPENROUTER_MANAGEMENT_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ limit: 15, limit_reset: 'weekly' }),
}); 立即禁用密钥以停止支出或切断行为异常的工作负载:
await fetch(`https://openrouter.ai/api/v1/keys/${keyHash}`, {
method: 'PATCH',
headers: {
Authorization: `Bearer ${process.env.OPENROUTER_MANAGEMENT_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ disabled: true }),
}); 监控使用情况并实现治理自动化
每个密钥通过 usage、usage_daily、usage_weekly、usage_monthly、limit_remaining 及其对应的 BYOK 字段报告自身的使用情况。您可以通过 cron 任务或后台工作进程轮询这些字段,并在密钥接近其额度上限时将其禁用。
limit 字段限制的是密钥,而不是个人。当您需要对某个成员名下的所有密钥进行统一管控时,请使用步骤 4 中分配给成员的护栏。有关密钥轮换和密钥卫生的更多信息,请参阅 API 密钥管理指南。
第 4 步:通过护栏强制执行成员级预算和模型白名单
护栏在个人层面强制执行策略,无论成员创建多少个 API 密钥。它将第 2 步的模型默认值和第 3 步的按密钥上限转化为成员无法绕过的硬性限制。只有组织管理员才能创建和管理护栏。
创建护栏
前往“设置 > 隐私”,滚动到“护栏”,然后点击“新建护栏”。
配置以下内容:
- 预算限制:设置一个美元上限,可按日、周或月重置。超出上限的请求将被拒绝并返回 403。
- 分配范围:分配给某个组织成员(涵盖其所有密钥和聊天会话),或分配给特定 API 密钥(在此基础上增加一层保护)。每个用户或密钥只能直接分配一个护栏。
- 模型和提供商白名单:仅允许列表中的模型和提供商。其他一切均被阻止,即使某个密钥尝试请求也不行。取消勾选某个列表则允许全部。
- 可选安全控制:按模型组设置的零数据保留(ZDR)、提示注入和越狱检测、敏感信息(PII)脱敏或拦截,以及自定义正则表达式内容过滤器。
在分配之前,使用资格预览查看实际生效的限制。
成员级预算的行为方式
护栏预算按用户和按密钥强制执行,而非在团队内共享。给 3 名成员各分配一个 50 美元/天的护栏,他们各自拥有自己的额度:Alice 达到 50 美元后,她的请求会被阻止,而 Bob 和 Carol 各自仍有自己的 50 美元。一个成员在其所有密钥上的支出会累计到该成员的总预算中。
当密钥级限制和成员级护栏同时生效时,以较低限制为准。这正是仅靠密钥级限制无法提供的严格成员级预算。
当多个护栏同时生效时,策略如何组合
| 层级 | 解析方式 |
|---|---|
| 模型和提供商白名单 | 交集:仅允许所有规则都允许的内容 |
| 零数据保留(ZDR) | 按模型组取或(OR) |
| 敏感信息控制 | 拦截优先于脱敏 |
| 预算 | 按用户和按密钥独立评估;以较低限制为准 |
以编程方式管理护栏
您还可以使用管理密钥通过 PATCH /api/v1/guardrails/{id} 更新护栏:
curl -X PATCH https://openrouter.ai/api/v1/guardrails/$GUARDRAIL_ID \
-H "Authorization: Bearer $OPENROUTER_MANAGEMENT_KEY" \
-H "Content-Type: application/json" \
-d '{
"limit_usd": 50,
"reset_interval": "daily",
"allowed_models": ["anthropic/claude-sonnet-4.6", "openai/gpt-4o-mini"],
"allowed_providers": ["anthropic", "openai"]
}' 允许列表接受的是精确的模型 slug,而不是通配符,因此随着你的模型策略变化,它们需要持续维护。而且预算耗尽之前没有任何警告。当请求被阻止时,用户只会收到一个 403 错误。关于何时使用护栏与密钥级限制,请参阅管理团队 AI 支出。
第 5 步:在 Activity 仪表板中查看团队支出
打开 Activity 并查看三个指标卡片(Spend、Tokens 和 Requests)。设置时间段(1 Hour、1 Day、1 Week、1 Month 或 1 Year),然后进行分组:
- Creator 显示每位成员的支出。
- API Key 将支出映射到你在第 3 步中设置上限的工作负载。
- Model 显示哪些模型消耗了最多的预算。
在组织上下文中,Activity 信息流显示所有成员的使用元数据,包括模型、成本和时长,并且可以按 API 密钥进行筛选。提示词和响应永远不会被存储。你还可以从 Options 下拉菜单中选择 Export 并选择 CSV 或 PDF 来导出数据。
OpenRouter 在三个位置报告使用情况,它们回答的是不同的问题:
| 界面 | 用途 | 位置 |
|---|---|---|
| usage 对象 | 每个 API 响应中的逐响应 token 和成本数据 | API 响应体 |
| usage_* 关键字段 | 单个密钥的时间窗口汇总 | GET /api/v1/key |
| Activity 仪表板 | Spend、Tokens、Requests;可分组且可导出 | openrouter.ai/activity |
Activity 中显示的 BYOK 支出是使用提供商列表价格估算的,可能与你的协商折扣有所不同。
验证你的设置
在将组织移交给你的团队之前,请运行以下四项检查:
- 通过预设(@preset/{slug})发起一次调用,并确认 usage.cost 在响应中返回。每个响应都会自动包含 usage 对象。
- 通过 GET /api/v1/key 确认设置了上限的密钥的 limit_remaining 在调用后有所下降。
- 发送一个违反护栏的请求(超出预算或不在模型允许列表内),并确认它返回 403。
- 打开 Activity,按 Creator 分组,并确认支出映射到正确的成员。
当允许列表之外的请求返回 403,且 Activity 仪表板显示每位成员的支出在其名下时,设置即告完成。
常见问题解答
如何在 OpenRouter 上跟踪我团队的 AI 支出?
创建一个组织,让所有使用量都计入一个共享的积分池,然后打开活动仪表板并按创建者分组,即可将支出归因到每位成员。在组织上下文中,活动信息流会显示每位成员的使用元数据(模型、成本、时间);提示词和响应不会被存储。
我可以在 OpenRouter API 密钥上设置支出限额吗?
可以。当你通过管理 API(位于 /api/v1/keys)创建或更新密钥时,可以设置一个限额(信用上限)以及一个 daily、weekly 或 monthly 的 limit_reset。每日限额在 UTC 午夜重置。该限额限制的是密钥本身,而不是持有密钥的人,因此 5 个各 $20 的密钥可以让一位工程师每天花费 $100。
一个 OpenRouter 组织可以有多少人?
组织默认最多 10 名成员。如果需要更多,请联系支持。只有管理员可以购买积分或查看账单,而成员可以创建密钥并使用组织资源。所有组织密钥的使用量都从一个共享积分池中扣除。
组织成员可以看到彼此的使用情况吗?
可以,可以看到使用元数据。在组织上下文中,活动信息流会显示每位成员的模型、成本和时间数据,你可以按 API 密钥筛选或按创建者分组,以将支出归因到每个人。提示词和响应永远不会被存储,因此信息流承载的是支出和使用数据,而非内容。
我可以限制我的团队可以使用哪些模型吗?
可以,有两种方式。预设(preset)会为通过 @preset/{slug} 引用它的流量设置一个默认模型或回退列表,但密钥可以跳过预设并直接调用任何模型。护栏(guardrail)模型白名单是对每位成员或每个密钥的硬性限制,任何不在白名单内的请求都会返回 403,无论预设如何。当你需要强制执行而不仅仅是设置默认值时,请使用护栏。
我可以限制某个人每天花费多少吗?
可以。为组织成员分配一个护栏预算,每位成员就会获得自己的每日、每周或每月额度。当他们在所有密钥上的总支出达到上限时,会被以 403 阻止。按密钥限制限制的是密钥而非个人,因此要获得真正的按人预算,请使用分配给成员的护栏。
使用 OpenRouter 需要付费吗?有最低消费要求吗?
不是的。按量付费没有最低消费,而且存在免费额度。标准按量付费账户在购买积分时平台费为 5.5%,我们不会对提供商的价格加价,因此目录价格就是模型成本。请参阅定价页面了解当前的套餐和费用。
我如何查看我的 OpenRouter 使用情况?
你可以在三个地方查看使用情况。每个 API 响应都包含一个 usage 对象,其中包含 token 数量和成本。GET /api/v1/key 返回每个 key 的使用情况字段,你可以通过代码轮询获取。活动页面则显示支出、token 和请求数,并支持分组以及 CSV 或 PDF 导出。