Globálne limity
Brevo uplatňuje globálne limity požiadaviek na všetkých API endpointoch, aby zaistilo férové využívanie a optimálny výkon.
Úrovne limitov požiadaviek
Tarif Free
- Denný limit: 300 požiadaviek
- Hodinový limit: 50 požiadaviek
- Špičkový limit: 10 požiadaviek/minútu
- E-mailové kredity: 300/mesiac
Tarif Starter
- Denný limit: 20 000 požiadaviek
- Hodinový limit: 1 000 požiadaviek
- Špičkový limit: 100 požiadaviek/minútu
- E-mailové kredity: Neobmedzené
Tarif Business
- Denný limit: 50 000 požiadaviek
- Hodinový limit: 3 000 požiadaviek
- Špičkový limit: 300 požiadaviek/minútu
- E-mailové kredity: Neobmedzené
Tarif Enterprise
- Denný limit: Na mieru (100 000+)
- Hodinový limit: Na mieru (10 000+)
- Špičkový limit: Na mieru (1 000+/minútu)
- E-mailové kredity: Neobmedzené
Hlavičky s limitmi požiadaviek
Každá odpoveď API obsahuje informácie o limitoch:
HTTP/1.1 200 OKX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999X-RateLimit-Reset: 1640995200X-RateLimit-Retry-After: 3600Popis hlavičiek
X-RateLimit-Limit: Celkový počet povolených požiadaviek v aktuálnom okneX-RateLimit-Remaining: Počet zostávajúcich požiadaviek v aktuálnom okneX-RateLimit-Reset: Unixová časová značka, kedy sa limit obnovíX-RateLimit-Retry-After: Počet sekúnd, ktoré treba počkať pred opakovaním
Sledovanie spotreby
Kontrola aktuálnej spotreby
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) });};Sledovanie v dashboarde
- Prihláste sa do svojho dashboardu Brevo
- Prejdite do Settings → API Keys
- Zobrazte si spotrebu pre každý API kľúč
- Nastavte si upozornenia na blížiace sa limity
Okná obnovenia limitov
- Denné limity: Obnovujú sa o 00:00 UTC
- Hodinové limity: Obnovujú sa každú hodinu v minúte :00
- Špičkové limity: Klzavé okno (posledných 60 sekúnd)
Práca s limitmi požiadaviek
Exponenciálne odkladanie
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; } }};Prechod na vyšší tarif
Keď limity dosahujete opakovane:
- Analyzujte spotrebu: Pozrite sa, ktoré endpointy využívate najviac
- Optimalizujte kód: Zaveďte cachovanie a dávkové spracovanie
- Zvážte vyšší tarif: V prípade potreby prejdite na vyššiu úroveň
- Kontaktujte obchod: Pri požiadavkách na úrovni enterprise
Výnimky z limitov požiadaviek
Webhookové endpointy
- Nepodliehajú štandardným limitom požiadaviek
- Platia pre ne samostatné limity doručovania webhookov
Endpoint na kontrolu stavu
/v3/pingmá voľnejšie limity- Je určený na monitoring a kontrolu dostupnosti
Dávkové operácie
- Počítajú sa ako jedna požiadavka, môžu však mať limity veľkosti tela
- Sú efektívnejšie než viacero samostatných požiadaviek