令牌管理

管理接口 /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;兼容别名 pssize

keywordstring

仅 search:按名称匹配,规则见下文

tokenstring

仅 search:按密钥匹配(自动去除 sk- 前缀),规则见下文

keywordtoken 使用同一套匹配规则:不含 % 时为精确全匹配; 显式携带 % 才是模糊匹配——最多 2 个 %、不允许连续 %%、去掉 % 后关键词至少 2 个字符, _ 按字面量处理(转义,不作为单字符通配符)。

批量删除

POST/api/token/batch
idsinteger[]必填

要删除的令牌 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},含更新后的完整令牌
DELETEPOST /batchdata 为删除条数或空
创建接口的响应不含新生成的 key。创建后需再调 GET /api/token/GET /api/token/{id} 取回完整令牌对象(含 key)。不要假设 POST 响应里有密钥。
平台可能开启「令牌锁定模式」(/api/statustoken_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 | null

IP 白名单(换行分隔);null 或空串均表示不限制,解码时需容忍 null

binding_modestring

渠道绑定模式:load_balance(默认,平台内负载均衡)/ auto(自动绑定专属渠道)

bound_channel_idsstring

binding_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 | null

IP 白名单(换行分隔)

binding_modestring

渠道绑定模式,默认 load_balance;传 auto 时系统自动绑定专属渠道(结果体现在只读的 bound_channel_ids

key 由服务端生成,不可指定。更新按请求体中的 id 定位令牌。

修改令牌状态(启用/禁用)必须走专用通道PUT /api/token/?status_only=true, 请求体只需带 idstatus。普通 PUT(不带该 query)会忽略请求体中的 status—— 照常规 REST 习惯在 body 里改状态不会生效。

自助查询用量

GET/api/usage/token

唯一接受 sk- API 令牌鉴权的管理类接口(只读宽松校验,过期/耗尽/禁用令牌也可查询), 适合在调用方侧做额度监控。鉴权头:Authorization: Bearer <sk- 令牌>。 注意路径末尾的斜杠——不带斜杠会收到 301 跳转。

响应200
{
  "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 字段命名不同,解析时不要混用。