JuCode 文档
ApiAccount

查询当前凭证

返回本次请求所用凭证的元信息:名称、前缀、创建与最近使用时间、过期时间、 花费上限、允许的模型分组。 **不会回显密钥本身或它的哈希。** 调用方已经持有密钥,再返回一遍只会让每一层 代理日志都变成一份凭证泄露。 `allowed_groups` 为空数组时有歧义——可能是「不限分组」,也可能是「限制到了 空集合」。`allowed_groups_unrestricted` 就是用来区分这两者的。 用 OAuth 设备令牌调用时,返回 `auth_type: "oauth_device_token"` 和一句说明, 其余字段不返回。

GET
/v1/open/key

返回本次请求所用凭证的元信息:名称、前缀、创建与最近使用时间、过期时间、 花费上限、允许的模型分组。

不会回显密钥本身或它的哈希。 调用方已经持有密钥,再返回一遍只会让每一层 代理日志都变成一份凭证泄露。

allowed_groups 为空数组时有歧义——可能是「不限分组」,也可能是「限制到了 空集合」。allowed_groups_unrestricted 就是用来区分这两者的。

用 OAuth 设备令牌调用时,返回 auth_type: "oauth_device_token" 和一句说明, 其余字段不返回。

Authorization

AuthorizationBearer <token>

Authorization: Bearer sk-juc-...

前缀必须是恰好 Bearer (首字母大写 + 单个空格)。bearerBEARER 或用制表符分隔都会被判为无效。

除 API Key 外,也接受 OAuth 设备访问令牌(仅限 oauth_access 类型的 JWT; 普通网页会话令牌会被拒绝)。

In: header

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/open/key"

{  "auth_type": "api_key",  "name": "生产环境",  "prefix": "sk-juc-A1b2C3d4",  "created_at": "2026-07-01T09:12:33Z",  "last_used_at": "2026-08-14T02:41:07Z",  "expires_at": null,  "auto_route": false,  "billing_scope": "personal",  "ip_whitelist": [],  "daily_cost_limit": "50",  "monthly_cost_limit": null,  "total_cost_limit": null,  "allowed_groups": [    "默认",    "国模"  ],  "allowed_groups_unrestricted": false}

查询余额与额度 GET

一次返回所有可能让下一个请求被拒绝的因素:账户余额、订阅套餐的配额窗口、 以及当前 Key 自己的花费上限。 这三者存放在不同的地方(余额在数据库、套餐配额在 Redis 计数器、Key 花费是 对调用日志的聚合),拆成三个接口只会让每个客户端都调三次再拼起来,所以合并 在这里。 ### 金额一律是字符串 账本精度是 `numeric(20,8)`,用浮点数往返会丢掉在「已花费」和「上限」之间做 比较时才会显现的位数。所有金额字段都是十进制字符串,单位见 `currency`。 ### 套餐字段何时缺席 `plan.has_active_plan` 为 `false` 时,其余套餐字段一并省略,表示当前按余额 计费。配额计数器所在的 Redis 短暂不可用时也会走这个分支——此时余额仍然准确, 接口不会整体失败。 `api_key` 在调用方使用 OAuth 设备令牌(CLI / 桌面端登录)时为 `null`: 那不是 API Key,没有 Key 级别的上限可报。

用量时间序列 GET

按小时或天分桶返回你自己的调用量、token 数与花费,并附一份 `totals` 汇总。 ### 窗口会被对齐 传入的 `start` / `end` 会被向下对齐到分桶边界。这不是为了好看:小时粒度的 快速路径只回答正好落在整点的窗口,响应缓存也按窗口做键。一个每次轮询都重新 计算的 `now - 24h` 会同时错过这两者,把轮询客户端变成对调用日志的反复全表扫描。 因此**同一个 TTL 内的多次轮询会拿到同一个窗口**,而不是每次都往前挪几秒。 ### 空桶不补零 没有调用的时间段不会出现在 `buckets` 里。需要连续坐标轴的话在客户端补。 查询窗口最长 92 天,超出部分从起点截断(保留 `end`)。