Rate Limiting
Rate Limiting ist ein Schutzmechanismus, der die Anzahl der API-Anfragen pro Zeiteinheit begrenzt, um faire Nutzung zu gewährleisten und Systemstabilität zu sichern. Überschreiten Sie das Limit, erhalten Sie eine HTTP 429-Antwort mit Retry-After-Header.
Was ist Rate Limiting?
Rate Limiting (deutsch: Ratenbegrenzung) kontrolliert, wie viele API-Anfragen ein Client in einem bestimmten Zeitraum stellen darf – z. B. 100 Anfragen pro Minute oder 10.000 Nachrichten pro Tag. Diese Limits schützen die API-Infrastruktur vor Überlastung und stellen sicher, dass alle Kunden gleichmäßigen Zugang haben. Ohne Rate Limiting könnte ein einzelner fehlerhafter Bot tausende Anfragen pro Sekunde feuern und den Service für alle anderen verlangsamen.
Technisch wird Rate Limiting meist über Token Bucket oder Sliding Window Algorithmen umgesetzt. Jeder API Key hat ein "Budget" an Anfragen, das sich kontinuierlich auffüllt. Schicken Sie eine Anfrage, wird ein Token verbraucht. Sind alle Token aufgebraucht, müssen Sie warten, bis neue nachgefüllt werden. SendSeven verwendet ein faires, transparentes System mit klaren Fehlermeldungen und Retry-Hinweisen.
Warum gibt es Rate Limits?
Systemstabilität: APIs teilen sich Ressourcen (CPU, Datenbank, Netzwerk). Ein einzelner "böser" Client könnte ohne Limits das gesamte System lahmlegen – Rate Limiting verhindert solche Denial-of-Service-Szenarien.
Faire Nutzung: Alle Kunden sollen gleichmäßig profitieren. Wenn ein Kunde 90% der Kapazität verbraucht, leiden andere. Rate Limits sorgen für Gerechtigkeit.
Kostenkontrolle: Versehentliche Endlosschleifen in Ihrem Code könnten ohne Limits Millionen Anfragen abfeuern – und entsprechende Kosten verursachen. Rate Limiting wirkt als Notbremse.
Missbrauchsschutz: Spammer und Angreifer versuchen oft, APIs zu überfluten. Rate Limits machen solche Angriffe unwirtschaftlich und detektierbar.
Umgang mit HTTP 429 Responses
Überschreiten Sie ein Rate Limit, antwortet die API mit HTTP 429 (Too Many Requests). Der Response-Header enthält wichtige Informationen:
HTTP/1.1 429 Too Many Requests Retry-After: 60 X-RateLimit-Limit: 100 X-RateLimit-Remaining: 0 X-RateLimit-Reset: 1676543210
Retry-After: Wie viele Sekunden Sie warten müssen, bevor die nächste Anfrage erlaubt ist.
X-RateLimit-Limit: Ihr Gesamtlimit (z. B. 100 Anfragen/Minute).
X-RateLimit-Remaining: Wie viele Anfragen noch verfügbar sind (hier: 0).
X-RateLimit-Reset: Unix-Timestamp, wann das Limit zurückgesetzt wird.
Professionelle Anwendungen implementieren Exponential Backoff: Nach einem 429-Fehler warten Sie nicht einfach fix 60 Sekunden, sondern verdoppeln die Wartezeit bei jedem weiteren Fehler (1s, 2s, 4s, 8s, ...). Das verhindert "Thundering Herd"-Probleme, bei denen tausende Clients gleichzeitig retry-en und das System erneut überlasten.
Rate Limits bei SendSeven
SendSeven nutzt faire, großzügige Rate Limits, die für die allermeisten Anwendungsfälle ausreichen. Typische Werte (abhängig von Ihrem Plan):
- API-Anfragen: 100 Anfragen pro Minute (für Lesezugriffe)
- Nachrichtenversand: 1.000 Nachrichten pro Stunde (Anti-Spam-Schutz)
- Webhook-Zustellungen: 10 parallele Verbindungen
Konkrete Limits finden Sie in der API-Dokumentation unter docs.sendseven.com. Benötigen Sie höhere Limits (z. B. für Bulk-Importe oder Kampagnen mit 100.000+ Empfängern), kontaktieren Sie den Support – individuelle Anpassungen sind möglich.
Best Practice: Implementieren Sie Client-seitiges Rate Limiting bereits in Ihrer Anwendung. Nutzen Sie Queues (z. B. Bull für Node.js, Celery für Python), um Anfragen kontrolliert zu verarbeiten – so vermeiden Sie 429-Fehler von vornherein und optimieren Kosten.