Limites globales
Brevo applique des limites de débit globales sur tous les endpoints de l’API afin de garantir une utilisation équitable et des performances optimales.
Paliers de limite de débit
Plan gratuit
- Limite journalière : 300 requêtes
- Limite horaire : 50 requêtes
- Limite de rafale : 10 requêtes/minute
- Crédits email : 300/mois
Plan Starter
- Limite journalière : 20 000 requêtes
- Limite horaire : 1 000 requêtes
- Limite de rafale : 100 requêtes/minute
- Crédits email : Illimités
Plan Business
- Limite journalière : 50 000 requêtes
- Limite horaire : 3 000 requêtes
- Limite de rafale : 300 requêtes/minute
- Crédits email : Illimités
Plan Enterprise
- Limite journalière : Personnalisée (100 000+)
- Limite horaire : Personnalisée (10 000+)
- Limite de rafale : Personnalisée (1 000+/minute)
- Crédits email : Illimités
En-têtes de limite de débit
Chaque réponse API inclut des informations sur les limites de débit :
HTTP/1.1 200 OKX-RateLimit-Limit: 1000X-RateLimit-Remaining: 999X-RateLimit-Reset: 1640995200X-RateLimit-Retry-After: 3600Description des en-têtes
X-RateLimit-Limit: Nombre total de requêtes autorisées dans la fenêtre actuelleX-RateLimit-Remaining: Requêtes restantes dans la fenêtre actuelleX-RateLimit-Reset: Timestamp Unix indiquant quand la limite se réinitialiseX-RateLimit-Retry-After: Secondes à attendre avant de réessayer
Suivi de l’utilisation
Vérifier l’utilisation actuelle
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) });};Surveillance via le tableau de bord
- Connectez-vous à votre tableau de bord Brevo
- Accédez à Paramètres → Clés API
- Consultez l’utilisation pour chaque clé API
- Configurez des alertes en cas d’approche des limites
Fenêtres de réinitialisation
- Limites journalières : Réinitialisées à 00:00 UTC
- Limites horaires : Réinitialisées à chaque heure à la minute :00
- Limites de rafale : Fenêtre glissante (60 dernières secondes)
Gestion des limites de débit
Recul exponentiel
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; } }};Mise à niveau de plan
Lorsque vous atteignez régulièrement les limites de débit :
- Analysez l’utilisation : Identifiez les endpoints les plus sollicités
- Optimisez le code : Implémentez la mise en cache et le traitement par lots
- Envisagez une mise à niveau : Passez à un palier supérieur si nécessaire
- Contactez les ventes : Pour les besoins enterprise
Exceptions aux limites de débit
Endpoints Webhook
- Non soumis aux limites de débit standard
- Des limites de livraison webhook distinctes s’appliquent
Endpoint de vérification de l’état
/v3/pinga des limites allégées- Conçu pour la surveillance et les vérifications de disponibilité
Opérations par lots
- Comptent comme une seule requête mais peuvent avoir des limites de charge utile
- Plus efficaces que plusieurs requêtes individuelles