Globalna ograničenja
Brevo primenjuje globalna ograničenja broja zahteva na svim API endpoint-ima kako bi obezbedio pravednu upotrebu i optimalne performanse.
Nivoi ograničenja broja zahteva
Free plan
- Dnevno ograničenje: 300 zahteva
- Satno ograničenje: 50 zahteva
- Ograničenje u naletu: 10 zahteva u minuti
- Imejl krediti: 300 mesečno
Starter plan
- Dnevno ograničenje: 20.000 zahteva
- Satno ograničenje: 1.000 zahteva
- Ograničenje u naletu: 100 zahteva u minuti
- Imejl krediti: neograničeno
Business plan
- Dnevno ograničenje: 50.000 zahteva
- Satno ograničenje: 3.000 zahteva
- Ograničenje u naletu: 300 zahteva u minuti
- Imejl krediti: neograničeno
Enterprise plan
- Dnevno ograničenje: prilagođeno (100.000+)
- Satno ograničenje: prilagođeno (10.000+)
- Ograničenje u naletu: prilagođeno (1.000+ u minuti)
- Imejl krediti: neograničeno
Zaglavlja sa ograničenjima broja zahteva
Svaki API odgovor sadrži informacije o ograničenjima broja zahteva:
HTTP/1.1 200 OKX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999X-RateLimit-Reset: 1640995200X-RateLimit-Retry-After: 3600Opisi zaglavlja
X-RateLimit-Limit: ukupan broj dozvoljenih zahteva u trenutnom prozoruX-RateLimit-Remaining: broj preostalih zahteva u trenutnom prozoruX-RateLimit-Reset: Unix vremenska oznaka kada se ograničenje resetujeX-RateLimit-Retry-After: broj sekundi koliko treba sačekati pre ponovnog pokušaja
Praćenje potrošnje
Provera trenutne potrošnje
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-RateLimit-Limit'), remaining: response.headers.get('X-RateLimit-Remaining'), reset: new Date(response.headers.get('X-RateLimit-Reset') * 1000) });};Praćenje preko komandne table
- Prijavite se na svoju Brevo komandnu tablu
- Idite na Settings → API Keys
- Pogledajte potrošnju za svaki API ključ
- Podesite obaveštenja za približavanje ograničenjima
Prozori za resetovanje ograničenja
- Dnevna ograničenja: resetuju se u 00:00 UTC
- Satna ograničenja: resetuju se svakog sata u :00 minuta
- Ograničenja u naletu: klizni prozor (poslednjih 60 sekundi)
Rad sa ograničenjima broja zahteva
Eksponencijalno odlaganje
const makeRequestWithBackoff = async (url, options, maxRetries = 3) => { for (let i = 0; i < maxRetries; i++) { try { const response = await fetch(url, options);
if (response.status === 429) { const retryAfter = response.headers.get('X-RateLimit-Retry-After') || 60; const delay = Math.min(1000 * Math.pow(2, i), retryAfter * 1000);
console.log(`Rate limited. Waiting ${delay}ms before retry ${i + 1}`); await new Promise(resolve => setTimeout(resolve, delay)); continue; }
return response; } catch (error) { if (i === maxRetries - 1) throw error; } }};Nadogradnja plana
Kada stalno dostižete ograničenja broja zahteva:
- Analizirajte potrošnju: pregledajte koje endpoint-e najviše koristite
- Optimizujte kod: uvedite keširanje i grupisanje zahteva
- Razmotrite nadogradnju: pređite na viši nivo ako je potrebno
- Kontaktirajte prodaju: za enterprise zahteve
Izuzeci od ograničenja broja zahteva
Webhook endpoint-i
- Ne podležu standardnim ograničenjima broja zahteva
- Primenjuju se posebna ograničenja isporuke webhook-ova
Endpoint za proveru ispravnosti
/v3/pingima blaža ograničenja- Namenjen je za nadzor i provere dostupnosti
Grupne operacije
- Broje se kao jedan zahtev, ali mogu imati ograničenja veličine sadržaja
- Efikasnije su od više pojedinačnih zahteva