Limite globale
Brevo limitează cererile API per endpoint. Fiecare limită este un număr de cereri pe secundă (RPS), pe oră (RPH) sau ambele. Cifrele de mai jos provin de pe pagina Brevo despre limitele de rată, verificată la 7 octombrie 2026. Verifică acea pagină înainte de a dimensiona o sarcină mare.
Niveluri de limite de rată
| Nivel | Disponibil pe |
|---|---|
| General | Free, Starter, Standard, Professional și Enterprise |
| Avansat | Professional și Enterprise |
| Extins | Enterprise |
Limite pe niveluri
| Endpoint | General | Avansat | Extins |
|---|---|---|---|
POST /v3/smtp/email, GET /v3/smtp/blockedContacts | 1.000 RPS, 3.600.000 RPH | 2.000 RPS, 7.200.000 RPH | 6.000 RPS |
GET /v3/smtp/emails | 2 RPS, 7.200 RPH | 3 RPS, 10.800 RPH | 18.000 RPH |
POST /v3/transactionalSMS/send | 150 RPS, 540.000 RPH | 200 RPS, 720.000 RPH | 250 RPS |
POST /v3/events | 10 RPS, 36.000 RPH | 20 RPS, 72.000 RPH | 60 RPS |
POST /v3/orders/status | 5 RPS, 18.000 RPH | 10 RPS, 36.000 RPH | 15 RPS |
POST /v3/products | 2 RPS, 7.200 RPH | 4 RPS, 14.400 RPH | 21.600 RPH |
Alte endpointuri din /v3/smtp | 300 RPH | 600 RPH | 1.800 RPH |
Toate endpointurile din /v3/contacts | 10 RPS, 36.000 RPH | 20 RPS, 72.000 RPH | 60 RPS |
Toate endpointurile din /v3/loyalty | 600 RPH | 1.200 RPH | 100.000 RPH |
| Toate celelalte endpointuri | 100 RPH | 200 RPH | 600 RPH |
Când un endpoint are atât o limită RPS, cât și una RPH, rămâi sub amândouă.
Anteturile pentru limita de rată
Endpointurile cu limită de rată returnează aceste anteturi:
HTTP/1.1 200 OKx-sib-ratelimit-limit: 1000x-sib-ratelimit-remaining: 750x-sib-ratelimit-reset: 1Descrierea anteturilor
x-sib-ratelimit-limit: cereri permise în fereastra curentăx-sib-ratelimit-remaining: cereri rămase în fereastra curentăx-sib-ratelimit-reset: timpul până la resetarea ferestrei, de obicei în secunde
Brevo documentează aceste anteturi pe pagina sa despre anteturile limitelor de rată.
Monitorizarea consumului
Verificarea consumului curent
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')) });};Gestionarea limitelor de rată
Backoff exponențial
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');};Când tot atingi limitele
- Distribuie cererile uniform: o limită de 1.000 RPS permite până la 60.000 de cereri pe minut doar dacă ele sunt distribuite uniform.
- Grupează și păstrează în cache: folosește endpointurile în masă și evită recitirea datelor pe care le ai deja.
- Folosește webhookuri pentru statistici: primește evenimente în loc să interoghezi repetat endpointurile de statistici.
- Ia în calcul un nivel superior: nivelurile avansat și extins vin cu planurile Professional și Enterprise.