子账户如何运作
- 独立的密钥和结果。 子账户密钥和其他密钥一样提交并读取任务、批次和监测器,但只能看到自己的工作。
用 Acme 的密钥创建的任务,对 Globex 的密钥和你自己的密钥返回
404。 - 使用你的积分。 它的任务从你的余额中扣费。子账户没有余额,因此用子账户密钥调用
GET /v1/credits或GET /v1/usage会返回403 SUB_ACCOUNT_FORBIDDEN。 - 使用你的容量。 你的套餐或合同并发上限同时覆盖你自己的任务和所有子账户的任务,因此子账户不会增加容量。
GET /v1/async/status用你的密钥汇总这个共享队列,用子账户密钥调用则返回403 SUB_ACCOUNT_FORBIDDEN。 - 使用你的监测器上限。
GET /v1/monitors/capabilities中的monitors上限把你的监测器和所有子账户的监测器合并计算,prompts和tasksPerRun上限对子账户的监测器和对你的监测器同样适用。 - 独立的上限。
monthlyCreditLimit限制它在一个 UTC 自然月内可被收取的积分。concurrencyLimit在你的上限之内 限制它排队和运行中的任务数。两者都是可选的。 - 只有一层。 子账户不能再拥有子账户。其监测器的提醒邮件发送给你账户的管理员。
谁可以管理子账户
请使用你自己的、没有引擎范围限制和每日积分上限的 API 密钥调用/v1/sub-accounts 接口。其他密钥会收到
403 SUB_ACCOUNT_FORBIDDEN,否则受限的密钥就能签发不受其限制的密钥。子账户自己的密钥也会收到同样的错误。
创建子账户和密钥
201:
其他任何字段都会返回
400 VALIDATION_ERROR,因此拼错上限名称不会让客户处于无上限状态。
然后为子账户签发密钥:
name(1–64 个字符,默认 default)、allowedTaskTypes、
dailyCreditLimit 和 expiresAt(5 分钟到 2 年之后)。不发送请求体即可签发不受限制的密钥。
每个子账户最多有 5 个有效密钥;已吊销和已过期的密钥不计入。签发第六个会返回 409 KEY_LIMIT,请先吊销一个。
客户的密钥和其他密钥一样,可用于所有接口:
管理密钥
GET /v1/sub-accounts/{id}/keys 按时间倒序列出子账户拥有过的所有密钥,包括已吊销和已过期的密钥。
查看 revokedAt 和 expiresAt 即可找出有效密钥。
DELETE /v1/sub-accounts/{id}/keys/{keyId} 吊销一个密钥,并返回
{"success": true, "data": {"revoked": "<keyId>"}}。已吊销或不属于该子账户的密钥返回 404 NOT_FOUND。
上限
只有达到自身上限的子账户会被拒绝,其他客户照常运行。提高上限后,下一个请求即生效。
retryAfterSec 是距离下一个 UTC 月开始的秒数,届时月度统计重新开始。账户级上限见
积分与限制。
查看子账户当前状态
GET /v1/sub-accounts/{id} 返回子账户及其本月用量,以及 activeTasks,即它当前排队或运行中的任务数。
与 concurrencyLimit 比较,即可了解该客户离上限还有多远。
usage 中,credits 和 tasks 是本 UTC 月已收取的部分,reservedCredits 是仍在运行的
任务所预留的积分。
用量与计费
每一笔扣费也会出现在你自己的账单明细中;以下接口按客户拆分这些扣费。失败的任务从不扣费,也不计入统计。 积分金额最多两位小数。GET /v1/sub-accounts按创建时间从早到晚列出子账户,每项附带本月usage。用limit(默认 100,最多 1,000) 分页,并把nextCursor作为cursor传回。GET /v1/sub-accounts/usage返回一个 UTC 日期范围内每个子账户的合计。GET /v1/sub-accounts/{id}/usage返回单个子账户按天和引擎的扣费。
YYYY-MM-DD 格式的 from 和 to(含首尾)。from 默认为当前 UTC 月 1 日,to 默认为今天;
范围最长 366 天。
所有子账户
单个子账户
- 顶层的
credits和tasks是days的合计。 days中每个有扣费的 UTC 日期和引擎各占一行,先按日期、再按taskType排序。没有扣费的日期不会出现。taskType: "OTHER"是不属于任务的扣费,例如监测器的竞品读取。它增加积分,但不增加tasks。
暂停与恢复
- 它的密钥会在五秒内开始返回
401。 - 它的监测器停止运行,尚未开始的批次项以
API_KEY_INACTIVE结束。 - 已在排队或运行的任务会执行完毕并扣费。
{"status": "active"} 可恢复它的密钥和监测器。每个监测器恢复时只运行一次,不会补跑错过的轮次。同一个 PATCH
还可修改 name、externalId、monthlyCreditLimit 和 concurrencyLimit;传 null 表示取消上限或清除
externalId。子账户不能删除,请改为暂停。