令牌管理
管理接口 /api/token 的令牌 CRUD 契约,以及用 Bearer 令牌自助查询额度与模型限制的 /api/usage/token。
令牌管理接口属于管理接口:鉴权方式为登录会话(或用户 access token)+ Jimu-Api-User 请求头,
不接受 sk- API 令牌本身,详见 鉴权与令牌。
错误响应为管理接口形态(success/message),见 错误处理与请求追踪。
端点总览
| 方法 | 路径 | 说明 |
|---|---|---|
GET | /api/token/ | 当前用户全部令牌(分页) |
GET | /api/token/search | 按关键字搜索令牌 |
GET | /api/token/{id} | 单个令牌详情 |
POST | /api/token/ | 创建令牌 |
PUT | /api/token/ | 更新令牌(按请求体中的 id) |
DELETE | /api/token/{id} | 删除令牌 |
POST | /api/token/batch | 批量删除 |
GET | /api/usage/token/ | 用 Bearer 令牌自助查询用量(鉴权方式特殊,见下文) |
端点契约
列表与搜索的 query 参数
GET /api/token/ 与 GET /api/token/search 支持:
pint页码,从 1 开始;兼容别名 page
page_sizeint每页条数,默认平台配置值,上限 100;兼容别名 ps、size
keywordstring仅 search:按名称匹配,规则见下文
tokenstring仅 search:按密钥匹配(自动去除 sk- 前缀),规则见下文
keyword 与 token 使用同一套匹配规则:不含 % 时为精确全匹配;
显式携带 % 才是模糊匹配——最多 2 个 %、不允许连续 %%、去掉 % 后关键词至少 2 个字符,
_ 按字面量处理(转义,不作为单字符通配符)。
批量删除
/api/token/batchidsinteger[]必填要删除的令牌 ID 数组,必须非空,缺省或为空返回 invalid params
响应 data 为实际删除的条数(int)。
各端点响应信封
同属 {"success", "message", "data"} 形态,但 data 结构随端点不同:
| 端点 | data 结构 |
|---|---|
GET /api/token/、GET /api/token/search | 分页对象 {page, page_size, total, items},items 为令牌数组 |
GET /api/token/{id} | 单个令牌对象 |
POST /api/token/(创建) | 仅 {bound_channel_count}——不返回令牌对象,也不返回 key |
PUT /api/token/(更新) | {token, bound_channel_count},含更新后的完整令牌 |
DELETE、POST /batch | data 为删除条数或空 |
GET /api/token/ 或
GET /api/token/{id} 取回完整令牌对象(含 key)。不要假设 POST 响应里有密钥。/api/status 中 token_permission_locked 为 true),
此时普通用户只能持有 1 个有效令牌,创建第二个会返回
{"success": false, "message": "令牌锁定模式已开启,每位用户只能拥有 1 个有效令牌"}。令牌对象字段
idint令牌 ID
keystring令牌密钥(48 位,调用时拼 sk- 前缀使用)
namestring名称,最长 50 字符
statusint状态:1 启用、2 禁用、3 已过期、4 额度耗尽(3/4 由系统在过期或额度用尽时自动标记)
remain_quotaint剩余额度(单位为积分,具体额度以控制台展示为准)
used_quotaint已用额度
unlimited_quotabool是否不限额度
expired_timeint过期时间(Unix 秒),-1 表示永不过期
model_limits_enabledbool是否启用模型范围限制
model_limitsstring逗号分隔的模型 ID 列表,启用限制时生效
allow_ipsstring | nullIP 白名单(换行分隔);null 或空串均表示不限制,解码时需容忍 null
binding_modestring渠道绑定模式:load_balance(默认,平台内负载均衡)/ auto(自动绑定专属渠道)
bound_channel_idsstringbinding_mode=auto 时自动绑定的渠道 ID 列表,只读,由系统维护
token_sourcestring来源:"" 或 manual 均表示用户自建 / device_auth 客户端设备授权生成
created_timeint创建时间(Unix 秒)
accessed_timeint最近使用时间(Unix 秒)
创建与更新
POST /api/token/ 与 PUT /api/token/ 接收令牌对象 JSON。创建时可指定的参数:
namestring令牌名称,最长 50 字符
remain_quotaint初始额度(quota 单位),非无限额度时必须 ≥ 0 且有平台上限
unlimited_quotabool是否不限额度
expired_timeint过期时间(Unix 秒),-1 表示永不过期
model_limits_enabledbool是否启用模型范围限制
model_limitsstring逗号分隔的模型 ID 列表,启用限制时生效
allow_ipsstring | nullIP 白名单(换行分隔)
binding_modestring渠道绑定模式,默认 load_balance;传 auto 时系统自动绑定专属渠道(结果体现在只读的 bound_channel_ids)
key 由服务端生成,不可指定。更新按请求体中的 id 定位令牌。
PUT /api/token/?status_only=true,
请求体只需带 id 与 status。普通 PUT(不带该 query)会忽略请求体中的 status——
照常规 REST 习惯在 body 里改状态不会生效。自助查询用量
/api/usage/token唯一接受 sk- API 令牌鉴权的管理类接口(只读宽松校验,过期/耗尽/禁用令牌也可查询),
适合在调用方侧做额度监控。鉴权头:Authorization: Bearer <sk- 令牌>。
注意路径末尾的斜杠——不带斜杠会收到 301 跳转。
{
"code": true,
"message": "ok",
"data": {
"object": "token_usage",
"name": "***",
"total_granted": 500000000,
"total_used": 1560145146,
"total_available": 3428498854,
"unlimited_quota": false,
"model_limits": {},
"model_limits_enabled": false,
"expires_at": 0
}
}
total_grantedint总额度(quota 单位)
total_usedint已用额度
total_availableint剩余额度;unlimited_quota=true 时该值无意义(可能为负),以 unlimited_quota 为准
model_limitsobject模型限制映射(键为模型 ID)
expires_atint过期时间(Unix 秒),0 表示永不过期
注意此接口的信封是 {"code": true, "message": "ok", "data": ...}(code 为布尔),
与其他管理接口的 success 字段命名不同,解析时不要混用。