Limiti Globali
Brevo applica limiti globali di frequenza su tutti gli endpoint API per garantire un utilizzo equo e prestazioni ottimali.
Livelli dei Limiti di Frequenza
Piano Gratuito
- Limite Giornaliero: 300 richieste
- Limite Orario: 50 richieste
- Limite Burst: 10 richieste/minuto
- Crediti Email: 300/mese
Piano Starter
- Limite Giornaliero: 20.000 richieste
- Limite Orario: 1.000 richieste
- Limite Burst: 100 richieste/minuto
- Crediti Email: Illimitati
Piano Business
- Limite Giornaliero: 50.000 richieste
- Limite Orario: 3.000 richieste
- Limite Burst: 300 richieste/minuto
- Crediti Email: Illimitati
Piano Enterprise
- Limite Giornaliero: Personalizzato (100.000+)
- Limite Orario: Personalizzato (10.000+)
- Limite Burst: Personalizzato (1.000+/minuto)
- Crediti Email: Illimitati
Header dei Limiti di Frequenza
Ogni risposta API include informazioni sui limiti di frequenza:
HTTP/1.1 200 OKX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999X-RateLimit-Reset: 1640995200X-RateLimit-Retry-After: 3600Descrizione degli Header
X-RateLimit-Limit: Totale richieste consentite nella finestra correnteX-RateLimit-Remaining: Richieste rimanenti nella finestra correnteX-RateLimit-Reset: Timestamp Unix al reset del limiteX-RateLimit-Retry-After: Secondi da attendere prima del retry
Monitoraggio dell’Utilizzo
Verifica l’Utilizzo Corrente
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) });};Monitoraggio da Dashboard
- Accedi al tuo account Brevo
- Vai su Impostazioni > Chiavi API
- Visualizza l’Utilizzo per ogni chiave API
- Imposta Avvisi per i limiti in avvicinamento
Finestre di Reset dei Limiti
- Limiti giornalieri: Reset alle 00:00 UTC
- Limiti orari: Reset ogni ora allo scoccare del minuto :00
- Limiti burst: Finestra scorrevole (ultimi 60 secondi)
Gestione dei Limiti di Frequenza
Backoff Esponenziale
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; } }};Upgrade del Piano
Quando raggiungi sistematicamente i limiti di frequenza:
- Analizza l’Utilizzo: Esamina quali endpoint usi di più
- Ottimizza il Codice: Implementa caching e batching
- Considera l’Upgrade: Passa a un livello superiore se necessario
- Contatta le Vendite: Per requisiti enterprise
Eccezioni ai Limiti di Frequenza
Endpoint Webhook
- Non soggetti ai limiti di frequenza standard
- Si applicano limiti di consegna webhook separati
Endpoint Health Check
/v3/pingha limiti più permissivi- Progettato per il monitoraggio e i controlli di uptime
Operazioni Batch
- Contano come singola richiesta ma possono avere limiti sul payload
- Più efficienti rispetto a più richieste individuali