xcaTài liệu
Bắt đầu

Giới hạn tần suất và hạn mức

Bạn có thể gửi bao nhiêu yêu cầu và điều gì xảy ra khi chạm giới hạn.

Giới hạn phụ thuộc vào gói của bạn và được tính theo từng khóa API.

Số yêu cầu mỗi phút#

Mỗi khóa có một cửa sổ trượt dài một phút. Mọi phản hồi thành công đều có header X-RateLimit-Remaining cho biết số yêu cầu còn lại trong cửa sổ hiện tại. Khi vượt giới hạn, bạn sẽ nhận 429 rateLimited kèm error.retryAfter tính bằng giây.

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

Hạn mức hằng tháng#

Mỗi khóa có một hạn mức yêu cầu hằng tháng, được đặt lại vào 00:00 UTC ngày 1 hằng tháng. Khi dùng hết hạn mức, các yêu cầu sẽ trả về 429 rateLimited với error.reason là quota cho đến tháng sau.

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

Lượt quét hằng ngày#

Mỗi lệnh gọi POST /scans mà thực sự khởi chạy một lượt quét sẽ dùng một lượt trong giới hạn quét hằng ngày của gói bạn; giới hạn này dùng chung với các lượt quét bạn bắt đầu trong ứng dụng. Việc đọc báo cáo, cũng như các lệnh gọi quét trả về báo cáo còn mới từ cache, không tính vào giới hạn quét (nhưng vẫn được tính là yêu cầu API).

Giới hạn theo gói#

GóiYêu cầu / phútYêu cầu / tháng
Pro60100.000

Khuyến nghị#

  • Lưu cache báo cáo token ở phía bạn; mỗi báo cáo vẫn còn mới trong vài phút.
  • Khi gặp 429, hãy chờ retryAfter giây rồi thử lại với exponential backoff và jitter.
  • Kiểm tra trạng thái quét mỗi 3–5 giây, đừng gọi liên tục trong vòng lặp không nghỉ.
  • Dàn trải các tác vụ hàng loạt theo thời gian thay vì chạy tất cả song song.