Globalne omejitve
Brevo uveljavlja globalne omejitve števila zahtev za vse končne točke API, da zagotovi pošteno uporabo in optimalno delovanje.
Ravni omejitev števila zahtev
Paket Free
- Dnevna omejitev: 300 zahtev
- Urna omejitev: 50 zahtev
- Omejitev sunka: 10 zahtev/minuto
- Krediti za e-pošto: 300/mesec
Paket Starter
- Dnevna omejitev: 20.000 zahtev
- Urna omejitev: 1.000 zahtev
- Omejitev sunka: 100 zahtev/minuto
- Krediti za e-pošto: neomejeno
Paket Business
- Dnevna omejitev: 50.000 zahtev
- Urna omejitev: 3.000 zahtev
- Omejitev sunka: 300 zahtev/minuto
- Krediti za e-pošto: neomejeno
Paket Enterprise
- Dnevna omejitev: po meri (100.000+)
- Urna omejitev: po meri (10.000+)
- Omejitev sunka: po meri (1.000+/minuto)
- Krediti za e-pošto: neomejeno
Glave z omejitvami števila zahtev
Vsak odziv API vsebuje podatke o omejitvah števila zahtev:
HTTP/1.1 200 OKX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999X-RateLimit-Reset: 1640995200X-RateLimit-Retry-After: 3600Opisi glav
X-RateLimit-Limit: skupno število zahtev, dovoljeno v trenutnem oknuX-RateLimit-Remaining: število preostalih zahtev v trenutnem oknuX-RateLimit-Reset: časovni žig Unix, ko se omejitev ponastaviX-RateLimit-Retry-After: število sekund čakanja pred novim poskusom
Spremljanje porabe
Preverjanje trenutne porabe
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) });};Spremljanje prek nadzorne plošče
- Prijavite se v svojo nadzorno ploščo Brevo
- Pomaknite se do Nastavitve → Ključi API
- Preglejte porabo za vsak ključ API
- Nastavite opozorila za približevanje omejitvam
Okna za ponastavitev omejitev
- Dnevne omejitve: ponastavijo se ob 00:00 UTC
- Urne omejitve: ponastavijo se vsako uro ob :00 minutah
- Omejitve sunka: drseče okno (zadnjih 60 sekund)
Ravnanje z omejitvami števila zahtev
Eksponentni odlog
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; } }};Nadgradnje paketa
Ko redno dosegate omejitve števila zahtev:
- Analizirajte porabo: preglejte, katere končne točke uporabljate največ
- Optimizirajte kodo: uvedite predpomnjenje in paketno obdelavo
- Razmislite o nadgradnji: po potrebi preidite na višjo raven
- Obrnite se na prodajo: za zahteve na ravni Enterprise
Izjeme pri omejitvah števila zahtev
Končne točke za webhooke
- Zanje ne veljajo standardne omejitve števila zahtev
- Veljajo ločene omejitve dostave webhookov
Končna točka za preverjanje stanja
/v3/pingima ohlapnejše omejitve- Namenjena je spremljanju in preverjanju razpoložljivosti
Paketne operacije
- Štejejo kot ena zahteva, vendar imajo lahko omejitve velikosti vsebine
- Učinkovitejše so od več posameznih zahtev