Giới hạn tốc độ
Brevo API giới hạn yêu cầu theo từng endpoint, không phải theo ngày. Mỗi giới hạn là một số yêu cầu mỗi giây (RPS), mỗi giờ (RPH), hoặc cả hai, và khi áp dụng cả hai thì bạn phải nằm dưới cả hai. Vượt quá giới hạn sẽ trả về 429 Too Many Requests.
Giới hạn ở mức general
Mức general áp dụng cho mọi gói Brevo: Free, Starter, Standard, Professional và Enterprise. Đây là các giới hạn Brevo công bố cho mức này:
| Endpoint | Giới hạn |
|---|---|
POST /v3/smtp/email, GET /v3/smtp/blockedContacts | 1.000 RPS, 3.600.000 RPH |
POST /v3/transactionalSMS/send | 150 RPS, 540.000 RPH |
Tất cả endpoint dưới /v3/contacts | 10 RPS, 36.000 RPH |
POST /v3/events | 10 RPS, 36.000 RPH |
POST /v3/orders/status | 5 RPS, 18.000 RPH |
POST /v3/products | 2 RPS, 7.200 RPH |
GET /v3/smtp/emails | 2 RPS, 7.200 RPH |
Các endpoint khác dưới /v3/smtp | 300 RPH |
Tất cả endpoint dưới /v3/loyalty | 600 RPH |
| Tất cả endpoint khác | 100 RPH |
Tài khoản Professional và Enterprise có thể dùng mức advanced, tăng gấp đôi hầu hết các giới hạn này. Tài khoản Enterprise có thể dùng mức extended, mức cao nhất. Xem Giới hạn toàn cục để so sánh ba mức cạnh nhau, và trang giới hạn tốc độ của Brevo để biết các con số hiện hành.
Header giới hạn tốc độ
Các endpoint có giới hạn tốc độ trả về ba header:
x-sib-ratelimit-limit: 1000x-sib-ratelimit-remaining: 750x-sib-ratelimit-reset: 1x-sib-ratelimit-limit: số yêu cầu được phép trong cửa sổ hiện tạix-sib-ratelimit-remaining: số yêu cầu còn lại trong cửa sổ hiện tạix-sib-ratelimit-reset: thời gian cho đến khi cửa sổ đặt lại, thường tính bằng giây
Phương pháp tốt nhất
- Theo dõi các header giới hạn tốc độ
- Áp dụng cơ chế exponential backoff khi thử lại
- Dàn đều các yêu cầu trong suốt cửa sổ
- Lưu cache phản hồi khi có thể
- Dùng webhook thay vì polling