Globale Limits

Brevo erzwingt globale Ratenbegrenzungen ueber alle API-Endpunkte, um eine faire Nutzung und optimale Leistung sicherzustellen.

Ratenbegrenzungsstufen

Free Plan

  • Tageslimit: 300 Anfragen
  • Stundenlimit: 50 Anfragen
  • Burst-Limit: 10 Anfragen/Minute
  • E-Mail-Kontingent: 300/Monat

Starter Plan

  • Tageslimit: 20.000 Anfragen
  • Stundenlimit: 1.000 Anfragen
  • Burst-Limit: 100 Anfragen/Minute
  • E-Mail-Kontingent: Unbegrenzt

Business Plan

  • Tageslimit: 50.000 Anfragen
  • Stundenlimit: 3.000 Anfragen
  • Burst-Limit: 300 Anfragen/Minute
  • E-Mail-Kontingent: Unbegrenzt

Enterprise Plan

  • Tageslimit: Individuell (100.000+)
  • Stundenlimit: Individuell (10.000+)
  • Burst-Limit: Individuell (1.000+/Minute)
  • E-Mail-Kontingent: Unbegrenzt

Rate-Limit-Header

Jede API-Antwort enthaelt Ratenbegrenzungsinformationen:

HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200
X-RateLimit-Retry-After: 3600

Header-Beschreibungen

  • X-RateLimit-Limit: Gesamtanzahl erlaubter Anfragen im aktuellen Zeitfenster
  • X-RateLimit-Remaining: Verbleibende Anfragen im aktuellen Zeitfenster
  • X-RateLimit-Reset: Unix-Zeitstempel, wann das Limit zurueckgesetzt wird
  • X-RateLimit-Retry-After: Sekunden bis zum naechsten Versuch

Nutzung ueberwachen

Aktuelle Nutzung pruefen

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)
});
};

Dashboard-Ueberwachung

  1. Anmelden bei Ihrem Brevo Dashboard
  2. Navigieren zu Einstellungen -> API-Schluessel
  3. Nutzung anzeigen fuer jeden API-Schluessel
  4. Warnungen einrichten fuer sich naehernde Limits

Zuruecksetzungszeitfenster

  • Tageslimits: Zuruecksetzung um 00:00 UTC
  • Stundenlimits: Zuruecksetzung jede Stunde zur vollen Stunde
  • Burst-Limits: Gleitendes Zeitfenster (letzte 60 Sekunden)

Ratenbegrenzungen behandeln

Exponentielles Backoff

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;
}
}
};

Tarif-Upgrades

Wenn Sie regelmaessig an Ratenlimits stossen:

  1. Nutzung analysieren: Ueberpruefen Sie, welche Endpunkte Sie am meisten nutzen
  2. Code optimieren: Caching und Batching implementieren
  3. Upgrade erwaegen: Bei Bedarf auf einen hoeheren Tarif wechseln
  4. Vertrieb kontaktieren: Fuer Enterprise-Anforderungen

Ausnahmen bei Ratenbegrenzungen

Webhook-Endpunkte

  • Nicht den Standard-Ratenbegrenzungen unterworfen
  • Separate Webhook-Zustellungslimits gelten

Health-Check-Endpunkt

  • /v3/ping hat gelockerte Limits
  • Fuer Monitoring und Verfuegbarkeitspruefungen konzipiert

Batch-Operationen

  • Zaehlen als einzelne Anfrage, koennen aber Payload-Limits haben
  • Effizienter als mehrere einzelne Anfragen
AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.

Kostenlos mit Brevo starten