菜单限制与错误代码

限制与错误代码

API 使用标准 HTTP 状态码。错误体遵循你所用客户端的格式,因此 OpenAI SDK 和 Anthropic SDK 可直接解析。

错误格式

OpenAI 格式端点返回包含 message、type 和 code 的 error 对象。Anthropic 格式端点返回 "type": "error",以及包含 type 和 message 的 error 对象。stream 中途发生的错误以相同结构的事件发送。

{
  "error": {
    "message": "GeraiPoints tidak cukup, silakan top up",
    "type": "insufficient_quota",
    "code": "insufficient_quota"
  }
}
message 的内容为印尼语,且可能变动。程序逻辑请检查 HTTP 状态码和 type/code,而不是消息文本。

状态码

状态码type / code含义处理方法
400invalid_request_error请求无效:请求体不是 JSON、model 为空,或 messages 缺失/为空。base URL 写错导致路径变成 /v1/v1/… 时也会出现。检查请求体和 base URL。
401authentication_error未发送 API 密钥、密钥错误或已撤销——或密钥用错了通道(bansos 密钥用于付费端点,反之亦然)。检查密钥和 base URL——认证。
402insufficient_quotaGeraiPoints 不足以支付此请求。充值 GeraiPoints 后重新发送。
403permission_error模型不在此密钥的 allowlist 中,或是你尚未拥有的套餐专属模型。把模型加入密钥的 allowlist,或使用其他密钥。
404model_not_found未知的模型 id,或该模型当前未开放。带前缀的名称(如 gp/… 或 openai/…)也会返回 404。从模型列表中准确复制 id。
413—请求体过大,服务器无法接收。精简对话历史或缩小附件。
429rate_limit_error请求过多:模型容量已满,或超出 Unlimited/Bansos 套餐的限制。按 Retry-After(如有)等待,然后间隔一段时间再试。
502api_error模型服务繁忙或出现问题;该请求不计费。几秒后重试,或使用其他模型。
503api_error模型正在维护或暂时不可用;该请求不计费。稍后再试或使用其他模型。

使用限制

类型限制
付费密钥(gk-)每个密钥没有固定的速率限制;用量受 GeraiPoints 余额限制。只有在模型容量已满时才会出现 429。
Unlimited plan每个账号有每分钟请求数和并发请求数限制。429 响应带有 Retry-After 和 x-ratelimit-*。详情见 Unlimited 页面。
免费套餐(Bansos)每日请求配额和每分钟限制。429 响应带有 Retry-After 和 x-ratelimit-*。剩余配额见 Bansos 页面。
大小与回答过大的请求体会以 413 拒绝。如果余额不足以支付所请求的值,回答长度(max_tokens)可能会被自动调低。
API 密钥每个账号最多 20 个有效密钥;每个密钥的 allowlist 最多 64 个模型。
客户密钥限额在处理前生效:会超出剩余限额的请求将被拒绝。一次性限额用完 → 402 KEY_BATAS_HABIS(调高限额即可追加);达到每日/每月限额 → 429 KEY_BATAS_HARIAN / KEY_BATAS_BULANAN,附带 Retry-After。密钥已暂停 → 403 KEY_DIJEDA。客户密钥不能使用 -unli 和 bansos 模型。

正确重试

  • 只对 429、502 和 503 重试,间隔逐渐加长(例如 1、2、4、8 秒),最多 2–3 次。
  • 不要重试 400、401、402、403、404——先修正请求,否则结果不会改变。
  • 如有 Retry-After 请求头,请遵守。
  • 每次重试都是一个新的计费请求。如果原因是应用 timeout,请调高 timeout——见Agentic 工具设置。