查看密钥所属项目的账户及其本月发往互联网的流量
由控制平面响应的节点 GET /v1/account (sandboxd/openapi/openapi.json):密钥属于哪个账户和项目,账户通知发往哪里、使用哪种语言,欠款多少,是否因付款问题被冻结(payment_hold:这是此类账户唯一能得到响应的调用),从哪里付款(billing_address、tax_id)以及在那里如何销售(tax:control/README.md,税),以及账户所有项目在所有节点上发往互联网的流量合计,并与当前时段的额度对照。欠费的账户也可以读取。所需权限范围:read。
https://api.glac.ai/v1/account授权
Returns
200
账户。
- keepsobjectrequired
密钥所属项目保留的存储卷和云盘(云盘计入存储卷;数据库自己的云盘不计入,键控实例的云盘计入总容量但不计入数量),按创建时所受的限制计算(
POST /v1/volumes、POST /v1/drives:403volume_limit_reached、drive_limit_reached),每项旁附带项目当前的量:套餐的数值,或运营方为该账户设定的数值(可申请提高:POST /v1/limits/requests,volumes和volume_bytes)。免费版:3 个,单个最大 10 GiB,合计 15 GiB,创建时不指定大小则为 5 GiB;付费套餐:500 个(软限制),单个最大 1 TiB,不限合计,不指定大小则为节点自己的 64 GiB。 - debtrequired
账户的欠款,与
GET /v1/billing的debt相同;没有欠款的账户为 null。}以下之一:
- Debt
- objectstringrequired
- idstringrequired
- stateowing或deleting或paid或deletedrequired
owing:账户欠费,其中任何部分都不能使用。deleting:期限已过,账户存储的内容正在删除。账户只会看到这两种状态的欠款。paid:已付清,或欠款低于欠费的起点。deleted:账户存储的内容已被删除,其欠款已核销。 - in_debt_sincestringrequired
发现账户欠款达到欠费起点的时间。
format: date-time - owed_usdnumberrequired
当前欠款:余额低于零的金额。已结束的欠款为 0。
- data_deleted_atstring | nullrequired
如果账户仍欠费,其存储内容的删除时间:发件方已接收的通知中所写的最晚日期。在欠款的通知尚未被接收时(此时不会删除任何东西),以及运营方冻结账户期间,为 null。以删除告终的欠款,为删除的时间。
format: date-time - notice_daysintegerrequired
欠费账户从第一条通知起有多少天的期限 (
--debt-days)。 - on_holdbooleanrequired
运营方冻结了该账户:账户的任何东西都不会被删除,其天数也停止计算。
- charge_atstring | nullrequired
下次从账户银行卡扣收欠款的时间:欠款开始后或上次扣款后的第一个账单日的 UTC 00:00(账单日是账户订阅开始那天在每月中的日期;没有订阅时为第一次充值收款的那天;当月没有这一天时取当月最后一天)。已到的时间会在下一次检查时扣款。null:不会扣款,因为账户没有登记银行卡 (
Balance.card) 或没有账单日、运营方冻结了账户、删除已经开始,或者欠款低于欠费的起点。扣收的是当时的欠款,向上取整到分,且不超过账户支出上限在本自然月剩余的额度 (Balance.reload_left_usd):因此剩下的欠款在下一个账单日扣收;如果上限剩余的额度低于欠费的起点,当月不扣款,下个月的第一次检查时扣收(在此之前这个时间保持为已到的时间)。format: date-time - last_chargerequired
最近一次从账户银行卡扣收欠款的记录及其结果;第一次扣款之前为 null。
}以下之一:
- DebtCharge
- null
- notices数组,元素为objectrequired
这笔欠款的通知,最早的在前:第一条通知,以及在它被接收后将要发出的提醒;以及每次扣款失败的通知 (
charge_failed)。- idstringrequired
- objectstringrequired
- kindin_debt或reminder_7或reminder_14或reminder_21或reminder_27或reminder_29另有 8 个required
in_debt:欠款的第一条通知。reminder_<day>:在其后的第几天发送(天数由控制平面决定,--debt-reminder-days)。charge_failed:在账单日从账户银行卡扣收欠款失败;每次这样的扣款各一条。data_deleted:账户存储的内容已被删除,欠款已核销。storage_80、storage_100:在产生任何欠款之前,账户套餐包含的存储已用掉五分之四或已用完,且账户没有余额。subscription_charge_failed:到期的订阅周期月费无法扣收;每次这样的扣款各一条,包括第一次以及宽限期内的每次重试。reload_failed:一次自动充值无法扣款;每次各一条。reload_no_card:自动充值已开启且余额低于设定值,但账户没有登记可扣款的银行卡;这种情况持续期间每个自然月一条。included_80、included_100:套餐包含的 CPU 时间、内存、请求或流量已用掉五分之四或已全部用完,且账户没有余额,自动充值也不会充值;每个计量项、每个阈值、每个时段各一条。 - stateto_send或accepted或failed或cancelledrequired
to_send:尚未交给发件方,或已交出但尚无回复。accepted:发件方已接收并负责投递。failed:发件方表示无法投递;如果是欠款通知,过一段时间会重新生成一条。cancelled:不再发送(欠款已付清;或者后来的提醒已经说明了它要说的内容)。账户看不到已取消的通知。 - due_atstringrequired
从何时起交给发件方。
format: date-time - sent_atstring | nullrequired
交给发件方的时间(针对发件方已接收的通知);其他情况为 null。对欠款的第一条通知而言:即欠款天数的起算时刻。
format: date-time - subjectstring | nullrequired
邮件主题(交出之后才有)。
- null
- billing_addressrequired
账户的付款地,其付款按该地纳税;null:尚未提供,付款页面会要求填写。
}以下之一:
- BillingAddress
- line1string | nullrequired
- line2string | nullrequired
- citystring | nullrequired
- statestring | nullrequired
州、省或地区;美国的州用两个字母表示,按州统计销售额。
- postal_codestring | nullrequired
- countrystringrequired
ISO 3166-1 alpha-2 代码。
pattern: ^[A-Z]{2}$ - sourcestring | nullrequired
由谁提供:账户、运营方 (
PATCH /internal/accounts/{id})、账户在付款页面上填写、Stripe(客户门户,以 Stripe 的customer.updated为准)。 - set_atstring | nullrequiredformat: date-time
- null
- tax_idrequired
企业的税号,以及其核验结果;null:没有。
}以下之一:
- TaxId
- typestringrequired
按 Stripe 的命名:
eu_vat、gb_vat、au_abn等。 - valuestringrequired
- verificationobjectrequired
- statusstringrequired
pending:正在核验(期间账户视为企业,如果之后未通过核验,以此身份收取的付款会被暂扣,交由运营方处理);verified;unverified:主管机构查不到它(账户不是企业);unavailable:无法核验(同样不视为企业;其付款会被标记给运营方)。 - verified_namestring | nullrequired
主管机构登记的名称(如果给出了)。
- verified_addressstring | nullrequired
- checked_atstring | nullrequired
最后一次收到核验结果的时间。
format: date-time
- sourcestringrequired
由谁提供:账户、运营方、账户在付款页面上填写、Stripe(客户门户)。
- set_atstring | nullrequiredformat: date-time
- null
400
unknown_parameter.
- reportoptionalobject
随
compose_refused返回:导入的报告,说明拒绝了什么、为什么以及要改什么。- services数组,元素为objectrequired
导入所采纳的服务,按模型中的顺序。
- appobjectrequired
导入写入的服务应用字段:其版本的构成,以及立即生效的设置。
- scaleobjectrequired
- min_instancesintegerrequired
无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊
max_instances的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403plan_cap_reached。minimum: 0 - max_instancesinteger | nullrequired
应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(
caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果min_instances更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。minimum: 1 - sleep_after_msinteger | nullrequired
实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(
0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在delete_after_ms后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances保持运行的实例既不会停止也不会删除。maximum: 600000 · minimum: 0 - sleep_hold_max_msintegerrequired
实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接
/run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送+,工作完成后发送-(或关闭连接,或退出);最后一个保持解除sleep_after_ms之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果sleep_notice_ms要求通知,会先向已连接的程序发送sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。maximum: 900000 · minimum: 0 - delete_after_msinteger | nullrequired
实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400
invalid_field),需要保持预热的实例应计入min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用keys.delete_after_idle_ms。maximum: 3600000 · minimum: 1000 - wake_daily_atoptionalstring | null
每天的某个 UTC 时刻 (
HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器pg_cron任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的wake_daily_at就是其应用的这一设置。pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
- runtimeoptional
运行时设置 (
AppCreate.runtime)。null:没有。}以下之一:
- Runtime
- ulimits映射,值为RuntimeLimitGivenrequired
- sysctls映射,值为stringrequired
- tmpfs数组,元素为objectrequired
- pathstringrequired
- size_bytesinteger | nullrequired
- modeintegerrequired
- dnsobjectrequired
- servers数组,元素为stringrequired
- search数组,元素为stringrequired
- options数组,元素为stringrequired
- shm_size_bytesinteger | nullrequired
- null
401
missing_api_key, invalid_api_key, expired_api_key, invalid_token.
- reportoptionalobject
随
compose_refused返回:导入的报告,说明拒绝了什么、为什么以及要改什么。- services数组,元素为objectrequired
导入所采纳的服务,按模型中的顺序。
- appobjectrequired
导入写入的服务应用字段:其版本的构成,以及立即生效的设置。
- scaleobjectrequired
- min_instancesintegerrequired
无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊
max_instances的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403plan_cap_reached。minimum: 0 - max_instancesinteger | nullrequired
应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(
caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果min_instances更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。minimum: 1 - sleep_after_msinteger | nullrequired
实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(
0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在delete_after_ms后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances保持运行的实例既不会停止也不会删除。maximum: 600000 · minimum: 0 - sleep_hold_max_msintegerrequired
实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接
/run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送+,工作完成后发送-(或关闭连接,或退出);最后一个保持解除sleep_after_ms之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果sleep_notice_ms要求通知,会先向已连接的程序发送sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。maximum: 900000 · minimum: 0 - delete_after_msinteger | nullrequired
实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400
invalid_field),需要保持预热的实例应计入min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用keys.delete_after_idle_ms。maximum: 3600000 · minimum: 1000 - wake_daily_atoptionalstring | null
每天的某个 UTC 时刻 (
HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器pg_cron任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的wake_daily_at就是其应用的这一设置。pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
- runtimeoptional
运行时设置 (
AppCreate.runtime)。null:没有。}以下之一:
- Runtime
- ulimits映射,值为RuntimeLimitGivenrequired
- sysctls映射,值为stringrequired
- tmpfs数组,元素为objectrequired
- pathstringrequired
- size_bytesinteger | nullrequired
- modeintegerrequired
- dnsobjectrequired
- servers数组,元素为stringrequired
- search数组,元素为stringrequired
- options数组,元素为stringrequired
- shm_size_bytesinteger | nullrequired
- null
403
key_scope、needs_api_key,与其他地方一样。(因付款问题被冻结的账户也能得到本调用的响应,其中会说明这一点:payment_hold。)
- reportoptionalobject
随
compose_refused返回:导入的报告,说明拒绝了什么、为什么以及要改什么。- services数组,元素为objectrequired
导入所采纳的服务,按模型中的顺序。
- appobjectrequired
导入写入的服务应用字段:其版本的构成,以及立即生效的设置。
- scaleobjectrequired
- min_instancesintegerrequired
无论有没有请求,应用在一个区域内保持运行的实例数:即下限。该区域服务该应用的节点按分摊
max_instances的方式分摊它(两个节点、下限为 2:各一个;下限为 1:一个,在最先尝试的节点上;下限为 5:三个和两个),不在线的节点由其他节点补足。节点在收到通知时就创建自己那部分,而不是等到第一个请求,也不会因为空闲而停止或删除这些实例;它们按运行中的实例计量。0(未设置时的值):没有下限。调低后,超出部分的实例从那一刻起视为空闲,并像空闲实例一样被停止和删除。最多为max_instances(如果给出),且不超过账户套餐允许应用在一个区域请求的数量(caps.app_instances.limit:5、50 和 500):超出会被拒绝,返回 403plan_cap_reached。minimum: 0 - max_instancesinteger | nullrequired
应用在一个区域内最多有多少个实例:由该区域服务该应用的节点分摊。最多为账户套餐允许应用请求的数量(
caps.app_instances.limit:免费版 5,付费版 500):超出会被拒绝,返回 403plan_cap_reached;在允许的套餐上请求的数值会保留,但受当前套餐数值的限制。null:未指定数量的应用使用套餐的数值(caps.app_instances.default:免费版 2,付费版 50),如果min_instances更大则用它。告诉节点的数值,不超过账户除其他运行中资源外还能容纳的运行量,也不少于应用当前运行的实例数。minimum: 1 - sleep_after_msinteger | nullrequired
实例在没有请求时最多等待多久就停止,单位为毫秒。在这个上限以内,节点根据应用自己的流量选择等待时间:在应用最近一段时间里两次请求之间的间隔上,比较多运行一秒空闲与停止再恢复所花的 CPU 时间,选出成本最低的等待时间;这样,请求间隔比停止成本还短的应用会一直运行,请求间隔很长的应用则在最后一个响应结束后立即停止(
0:总是立即停止)。null(未设置时的值):平台的上限,三秒。设置过 100(2026年10月28日之前的默认值)的应用,从那天起视为 null。持续停止的实例会在delete_after_ms后被其节点删除,下一个需要实例的请求会得到一个新实例;min_instances保持运行的实例既不会停止也不会删除。maximum: 600000 · minimum: 0 - sleep_hold_max_msintegerrequired
实例中的程序发起的保持,在空闲时间到期后最多还能让实例运行多久,单位为毫秒:程序连接
/run/sbx/awake,如果某个请求在响应之后还有后续工作,就在响应它之前发送+,工作完成后发送-(或关闭连接,或退出);最后一个保持解除sleep_after_ms之后,实例停止。超过这个时间,无论有什么保持,实例都会停止;如果sleep_notice_ms要求通知,会先向已连接的程序发送sleep N cap。保持期间实例在运行,并按运行计量。0:不理会保持。null:30000(默认)。maximum: 900000 · minimum: 0 - delete_after_msinteger | nullrequired
实例空闲多久后被删除,与停止使用同一个起算点:下一个需要实例的请求会得到一个新实例,即版本模板的克隆,不含被删除的实例在内存和磁盘中积累的东西(需要长久保存的数据请放在存储卷或数据库中)。一秒到一小时,一小时是平台的时间,也是上限:超出会被拒绝 (400
invalid_field),需要保持预热的实例应计入min_instances。null(未设置时的值):节点的一小时 (--app-delete-after-seconds)。修改对应用现有的实例和之后创建的实例同样有效:每个节点至少每秒按应用当前的时间检查一次每个实例。不适用于应用的键控实例,键控实例用keys.delete_after_idle_ms。maximum: 3600000 · minimum: 1000 - wake_daily_atoptionalstring | null
每天的某个 UTC 时刻 (
HH:MM),在此时唤醒应用中处于休眠状态的键控实例和有状态服务的实例,让它们完成等待唤醒才能做的工作(比如数据库维护);节点根据应用请求创建和删除的实例只会被请求唤醒。唤醒本身不算活动:唤醒后运行的东西才算,运行完毕后实例会再次休眠。此外,无论这里怎么设置,有状态服务的实例都会为其 PostgreSQL 服务器pg_cron任务的下一次运行而被唤醒。null(默认):不唤醒。数据库的wake_daily_at就是其应用的这一设置。pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
- runtimeoptional
运行时设置 (
AppCreate.runtime)。null:没有。}以下之一:
- Runtime
- ulimits映射,值为RuntimeLimitGivenrequired
- sysctls映射,值为stringrequired
- tmpfs数组,元素为objectrequired
- pathstringrequired
- size_bytesinteger | nullrequired
- modeintegerrequired
- dnsobjectrequired
- servers数组,元素为stringrequired
- search数组,元素为stringrequired
- options数组,元素为stringrequired
- shm_size_bytesinteger | nullrequired
- null