Poproś o wcześniejszy dostęp

Podaj imię i firmowy adres e-mail. Wyślemy Ci link potwierdzający prośbę o dostęp do Tajo.

Limity globalne

Brevo ogranicza zapytania API per endpoint. Każdy limit to liczba zapytań na sekundę (RPS), na godzinę (RPH) lub oba naraz. Poniższe wartości pochodzą ze strony o rate limits Brevo, sprawdzonej 7 października 2026. Zajrzyj na tę stronę, zanim zaplanujesz duże zadanie.

Poziomy rate limits

PoziomDostępny w
OgólnyFree, Starter, Standard, Professional i Enterprise
ZaawansowanyProfessional i Enterprise
RozszerzonyEnterprise

Limity według poziomu

EndpointOgólnyZaawansowanyRozszerzony
POST /v3/smtp/email, GET /v3/smtp/blockedContacts1 000 RPS, 3 600 000 RPH2 000 RPS, 7 200 000 RPH6 000 RPS
GET /v3/smtp/emails2 RPS, 7 200 RPH3 RPS, 10 800 RPH18 000 RPH
POST /v3/transactionalSMS/send150 RPS, 540 000 RPH200 RPS, 720 000 RPH250 RPS
POST /v3/events10 RPS, 36 000 RPH20 RPS, 72 000 RPH60 RPS
POST /v3/orders/status5 RPS, 18 000 RPH10 RPS, 36 000 RPH15 RPS
POST /v3/products2 RPS, 7 200 RPH4 RPS, 14 400 RPH21 600 RPH
Pozostałe endpointy pod /v3/smtp300 RPH600 RPH1 800 RPH
Wszystkie endpointy pod /v3/contacts10 RPS, 36 000 RPH20 RPS, 72 000 RPH60 RPS
Wszystkie endpointy pod /v3/loyalty600 RPH1 200 RPH100 000 RPH
Wszystkie pozostałe endpointy100 RPH200 RPH600 RPH

Gdy endpoint ma zarówno limit RPS, jak i RPH, mieść się w obu.

Nagłówki rate limits

Endpointy objęte rate limit zwracają te nagłówki:

HTTP/1.1 200 OK
x-sib-ratelimit-limit: 1000
x-sib-ratelimit-remaining: 750
x-sib-ratelimit-reset: 1

Opis nagłówków

  • x-sib-ratelimit-limit: dozwolone zapytania w bieżącym oknie
  • x-sib-ratelimit-remaining: pozostałe zapytania w bieżącym oknie
  • x-sib-ratelimit-reset: czas do zresetowania okna, zwykle w sekundach

Brevo opisuje te nagłówki na swojej stronie o nagłówkach rate limit.

Monitorowanie użycia

Sprawdzanie bieżącego użycia

const checkRateLimit = async () => {
const response = await fetch('https://api.brevo.com/v3/account', {
headers: { 'api-key': process.env.BREVO_API_KEY }
});
console.log({
limit: response.headers.get('x-sib-ratelimit-limit'),
remaining: response.headers.get('x-sib-ratelimit-remaining'),
resetInSeconds: Number(response.headers.get('x-sib-ratelimit-reset'))
});
};

Obsługa rate limits

Wykładniczy backoff

const makeRequestWithBackoff = async (url, options, maxRetries = 3) => {
for (let i = 0; i < maxRetries; i++) {
const response = await fetch(url, options);
if (response.status !== 429) return response;
const resetSeconds = Number(response.headers.get('x-sib-ratelimit-reset') || 1);
const delay = Math.max(resetSeconds * 1000, 1000 * Math.pow(2, i));
console.log(`Rate limited. Waiting ${delay}ms before retry ${i + 1}`);
await new Promise(resolve => setTimeout(resolve, delay));
}
throw new Error('Rate limit retries exhausted');
};

Gdy stale trafiasz w limity

  1. Rozkładaj zapytania równomiernie: limit 1 000 RPS pozwala na do 60 000 zapytań na minutę tylko wtedy, gdy są rozłożone równomiernie.
  2. Grupuj i cache’uj: używaj endpointów zbiorczych i unikaj ponownego odczytu danych, które już masz.
  3. Używaj webhooków do statystyk: odbieraj zdarzenia zamiast odpytywać endpointy statystyk.
  4. Rozważ wyższy poziom: poziom zaawansowany i rozszerzony są dostępne w planach Professional i Enterprise.

Poproś o wcześniejszy dostęp

Podaj imię i firmowy adres e-mail. Wyślemy Ci link potwierdzający prośbę o dostęp do Tajo.

Asystent AI

Cześć! Zapytaj mnie o dokumentację.

Ta strona jako Markdown: global-limits.md

Wczytywanie Markdown…
Otwórz w Claude Otwórz w ChatGPT