xca文档
入门

速率限制与配额

你可以发送多少请求,以及触及限制时会发生什么。

限制取决于你的套餐,并按每个 API 密钥分别计算。

每分钟请求数#

每个密钥使用一分钟的滚动窗口。每个成功的响应都带有 X-RateLimit-Remaining,表示当前窗口内剩余的请求数。超出限制时会返回 429 rateLimited,并在 error.retryAfter 中给出需要等待的秒数。

200
X-RateLimit-Remaining: 59
429
{
  "error": {
    "code": "rateLimited",
    "message": "Rate limit exceeded",
    "retryAfter": 12
  }
}

月度配额#

每个密钥都有月度请求配额,于每月 1 日 00:00 UTC 重置。配额用完后,直到下个月之前,请求都会返回 429 rateLimited,且 error.reason 为 quota。

429
{
  "error": {
    "code": "rateLimited",
    "message": "Monthly quota exceeded",
    "reason": "quota"
  }
}

每日扫描#

真正发起扫描的 POST /scans 调用会消耗套餐每日扫描额度中的一次,该额度与你在应用中发起的扫描共用。读取报告,以及返回未过期缓存报告的扫描调用,不会消耗扫描额度(但仍计为 API 请求)。

各套餐的限制#

套餐每分钟请求数每月请求数
Pro60100,000

最佳实践#

  • 在你自己这边缓存代币报告;一份报告在几分钟内都不会过期。
  • 收到 429 时,先等待 retryAfter 秒,再使用指数退避加随机抖动进行重试。
  • 每 3–5 秒轮询一次扫描,不要在循环里不间断地请求。
  • 将批量任务分散到不同时间执行,而不是一次性并行发出。