关于 omni-api-keys
omni-api-keys 是面向运维人员的 OmniRoute API 密钥管理技能,涵盖密钥生命周期、单密钥访问与用量控制,以及用于跨密钥管理权限的分组。
主要功能
- 01创建、列出、更新和撤销密钥
- 02轮换并重新生成密钥
- 03设置模型访问权限和消费限额
- 04跟踪与密钥关联的设备
- 05管理密钥分组和权限
适用场景
- 01为代理访问签发 API 密钥
- 02将密钥限制为允许的模型
- 03轮换或撤销泄露的密钥
- 04按共享权限整理密钥
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cheaper-inference/ omniroute --skill omni-api-keys安装后在 Claude Code 中输入/omni-api-keys确认已加载。
详细介绍
概述
创建、列出、轮换和撤销 OmniRoute API 密钥。控制每个密钥的作用域、支出限额和有效期。密钥用于控制对所有代理和管理端点的访问。
身份验证
所有请求都需要有效的 Bearer 令牌或会话 Cookie。通过 POST /api/auth/login 获取令牌,或在本地开发时配置 REQUIRE_API_KEY=false。
端点
GET /api/keys
列出 API 密钥
curl http://localhost:20128/api/keys \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/keys
创建 API 密钥
curl -X POST http://localhost:20128/api/keys \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/keys/{id}
获取 API 密钥
curl http://localhost:20128/api/keys/{id} \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
PATCH /api/keys/{id}
更新 API 密钥
curl -X PATCH http://localhost:20128/api/keys/{id} \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/keys/{id}
删除 API 密钥
curl -X DELETE http://localhost:20128/api/keys/{id} \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/keys/{id}/access
以原子方式添加或移除 API 密钥允许使用的模型和组合
添加或移除 API 密钥允许使用的模型和组合,避免更新丢失。 按密钥 ID 使用进程内异步锁进行串行化。 允许所有模型的密钥(modelAccessMode: all)或允许所有组合的密钥(allowedCombos 中包含 'combo/*'), 添加新模型或组合时必须设置 switchToRestricted: true,否则返回 409 Conflict。 切换到受限模式时,允许列表将精确包含净新增的项目(至少需要一个)。 直接并发调用 PATCH /api/keys/{id} 会在此锁之外完全覆盖策略。
curl -X POST http://localhost:20128/api/keys/{id}/access \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/keys/{id}/devices
列出 API 密钥对应的设备
列出内存设备跟踪器为 API 密钥跟踪的不同设备(经过遮蔽的 IP + User-Agent 指纹)。IP 在存储前会被遮蔽;此路由永远不会看到原始客户端 IP。
curl http://localhost:20128/api/keys/{id}/devices \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/keys/{id}/regenerate
POST keys › › regenerate
curl -X POST http://localhost:20128/api/keys/{id}/regenerate \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/keys/{id}/reveal
GET keys › › reveal
curl http://localhost:20128/api/keys/{id}/reveal \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/keys/{id}/usage-limits
GET keys › › usage limits
curl http://localhost:20128/api/keys/{id}/usage-limits \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/keys/groups
GET keys › groups
curl http://localhost:20128/api/keys/groups \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/keys/groups
POST keys › groups
curl -X POST http://localhost:20128/api/keys/groups \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/keys/groups/{id}
GET keys › groups ›
curl http://localhost:20128/api/keys/groups/{id} \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
PUT /api/keys/groups/{id}
PUT keys › groups ›
更新组。将 isActive 设为 false 会暂停其允许规则,同时保留成员限制和拒绝规则。其他启用的组仍可授予访问权限,除非有匹配的拒绝规则。仅属于非活动组的密钥不会获得组授予的权限。不属于任何组的密钥不受组策略限制;但仍受每个密钥自身限制。
curl -X PUT http://localhost:20128/api/keys/groups/{id} \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/keys/groups/{id}
DELETE keys › groups ›
curl -X DELETE http://localhost:20128/api/keys/groups/{id} \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/keys/groups/{id}/keys
GET keys › groups › › keys
curl http://localhost:20128/api/keys/groups/{id}/keys \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/keys/groups/{id}/keys
POST keys › groups › › keys
curl -X POST http://localhost:20128/api/keys/groups/{id}/keys \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/keys/groups/{id}/keys
DELETE keys › groups › › keys
curl -X DELETE http://localhost:20128/api/keys/groups/{id}/keys \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/keys/groups/{id}/permissions
GET keys › groups › › permissions
curl http://localhost:20128/api/keys/groups/{id}/permissions \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/keys/groups/{id}/permissions
POST keys › groups › › permissions
curl -X POST http://localhost:20128/api/keys/groups/{id}/permissions \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/keys/groups/{id}/permissions
DELETE keys › groups › › permissions
curl -X DELETE http://localhost:20128/api/keys/groups/{id}/permissions \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
负载
详细的请求/响应架构请参阅 GET /api/openapi/spec 获取完整的 OpenAPI 规范,或查看 docs/openapi.yaml。