Rate Limiting
Alle Endpoints sind limitiert, um die mail2many API vor Missbrauch zu schützen und faire Nutzung sicherzustellen.
Aktuelles Limit
- 600 Requests pro Minute pro API-Key
- Maximal 10 gleichzeitige Requests pro API-Key
Das Limit gilt pro API-Key und Zeitfenster.
Response-Header
In den Response-Headern findest du den aktuellen Status deines Limits:
| Header | Beschreibung |
|---|---|
X-RateLimit-Limit | Maximale Anzahl von Requests im aktuellen Zeitfenster |
X-RateLimit-Remaining | Verbleibende Anzahl von Requests im aktuellen Zeitfenster |
Für parallele Requests stellt die API zusätzlich bereit:
| Header | Beschreibung |
|---|---|
X-ConcurrencyLimit-Limit | Maximale Anzahl gleichzeitiger Requests pro API-Key |
X-ConcurrencyLimit-Remaining | Noch verfügbare gleichzeitige Requests |
Verhalten bei Überschreitung
Wenn ein Limit überschritten wird, liefert die API den Status 429 Too Many Requests.
Beispiel bei Request-Rate-Limit:
{
"status": "error",
"code": 429,
"message": "Too many requests. Please slow down.",
"error": "RATE_LIMIT_EXCEEDED",
"statusCode": 429
}
Beispiel bei Concurrent-Request-Limit:
{
"status": "error",
"code": 429,
"message": "Too many concurrent requests. Please wait for existing requests to complete.",
"error": "CONCURRENT_LIMIT_EXCEEDED",
"statusCode": 429,
"concurrencyLimit": 10,
"remaining": 0
}
Zusätzliche Header bei 429 können sein:
| Header | Beschreibung |
|---|---|
Retry-After | Sekunden bis zum nächsten sinnvollen Retry |
X-RateLimit-Reset | Zeitpunkt des Resets des aktuellen Rate-Limit-Fensters (UTC Epoch Seconds) |
Empfohlener Umgang
- Warte auf Basis von
Retry-Afteroder bis das Zeitfenster zurückgesetzt ist - Sende danach den fehlgeschlagenen Request erneut
- Reduziere die Anfragerate dauerhaft
- Reduziere parallel laufende Requests (Queue/Worker-Limit)
- Nutze Retry mit exponentiellem Backoff
Für allgemeine Retry-Strategien siehe auch Fehlertoleranz.