Fehlerbehebung
Warum erhalte ich 429 Rate limit exceeded?
Behandeln Sie 429-Antworten der Emailit-API. Erfahren Sie mehr über die Versandlimits pro Sekunde und pro Tag, die Rate-Limit-Header und wie Sie höhere Limits beantragen.
Dieser Artikel erklärt, warum POST /v2/emails 429 zurückgibt und wie Sie Ihren Versand so takten, dass das nicht passiert. Dieselben Limits gelten für SMTP, wo sie als 452-Antworten erscheinen.
Symptome
Die API antwortet mit 429 und einem dieser Bodys:
{
"error": "Rate limit exceeded",
"message": "Too many requests. Maximum 2 messages per second allowed.",
"limit": 2,
"current": 2,
"retry_after": 1
}{
"error": "Daily limit exceeded",
"message": "Daily sending limit of 5000 messages has been reached.",
"limit": 5000,
"current": 5000,
"retry_after": 41200
}Per SMTP schlägt der Befehl MAIL FROM mit 452 4.4.5 Messages per second limit exceeded oder 452 4.5.3 Daily message limit exceeded fehl.
Ursache
Jeder Workspace hat zwei Versandlimits, die sich alle API-Schlüssel und SMTP teilen:
- Pro Sekunde. Neue Workspaces starten mit 2 E-Mails pro Sekunde.
- Pro Tag. Neue Workspaces starten mit 5.000 E-Mails pro Tag. Der Zähler wird um Mitternacht UTC zurückgesetzt.
Die API zählt jeden Empfänger als eine E-Mail, eine Anfrage mit drei Adressen in to, cc und bcc verbraucht also drei. Typische Auslöser sind Lastspitzen durch parallele Worker, Wiederholungsschleifen ohne Backoff und Batch-Jobs, die gleichzeitig starten.
Jede Antwort auf eine Sendung enthält Header, die Ihnen zeigen, wo Sie stehen:
| Header | Bedeutung |
|---|---|
ratelimit-limit / ratelimit-remaining |
Limit pro Sekunde und was in der aktuellen Sekunde noch übrig ist |
ratelimit-daily-limit / ratelimit-daily-remaining |
Tageslimit und was heute noch übrig ist |
ratelimit-daily-reset |
Sekunden bis Mitternacht UTC |
retry-after |
Sekunden, die Sie vor einem erneuten Versuch warten sollten (nur bei 429) |
Lösung
-
Warten und erneut versuchen. Beachten Sie
retry-after(oderretry_afterim Body), bevor Sie erneut senden. Eine Anfrage mit429wird weder gesendet noch berechnet, ein erneuter Versuch ist also sicher. Fügen Sie einenIdempotency-Keyhinzu, um sich gegen Wiederholungen auf Netzwerkebene abzusichern. -
Versand takten. Verwenden Sie eine Warteschlange mit einem Parallelitätslimit, das
ratelimit-limitentspricht, und warten Sie nach einem429mit exponentiellem Backoff, statt es in einer engen Schleife erneut zu versuchen. -
Große Versände verteilen. Wenn Sie das Tageslimit erreichen, planen Sie den Rest mit
scheduled_atfür die Zeit nach Mitternacht UTC oder verwenden Sie für Marketing-E-Mails eine Kampagne. -
Aktuelle Limits prüfen. Die Karte Sending Limits auf der Seite Dashboard zeigt Ihre Limits pro Sekunde und pro Tag und die heutige Nutzung.
-
Höhere Limits beantragen. Wählen Sie Request Increase auf der Karte Sending Limits und geben Sie die benötigten Limits ein, woher Ihre Empfänger stammen und warum. Das Team antwortet in der Regel innerhalb von 24 Stunden. Bei Pro und Business steigen die Limits außerdem automatisch, solange Ihre Versandgesundheit gut bleibt.
Die vollständige Referenz finden Sie unter Rate Limits, alle Kontingente der Tarife unter Limits.
Weiterhin Probleme?
Kontaktieren Sie den Support oder fragen Sie auf Discord. Geben Sie Ihr erwartetes Volumen pro Tag und pro Sekunde und eine Beispielantwort mit 429 an.