HTTP Error 429 Too Many Requests: Ursachen & Lösungen

Was ist der HTTP Error 429?
Der HTTP Error 429 ist ein Client-Fehler-Statuscode, der Too Many Requests (zu viele Anfragen) bedeutet. Der Server teilt Ihnen mit, dass Sie in einem bestimmten Zeitraum zu viele Anfragen gesendet haben und vorübergehend keine weiteren Anfragen verarbeitet werden, bis Sie die Frequenz reduzieren.
Dieser Fehler ist in RFC 6585 definiert und gehört zum HTTP-Rate-Limiting-Mechanismus. Er zählt zu den häufigsten Fehlern, die Entwickler bei der Arbeit mit APIs erleben — aber auch normale Benutzer können ihn beim Surfen auf Websites sehen.
Der Statuscode 429 unterscheidet sich von anderen 4xx-Fehlern. Ein 403-Fehler bedeutet, dass Sie nicht berechtigt sind. Ein 401-Fehler bedeutet, dass Sie nicht authentifiziert sind. Ein 429-Fehler bedeutet hingegen, dass Ihre Anmeldedaten in Ordnung sind — Sie senden lediglich Anfragen zu schnell.
Wenn ein Server eine 429-Antwort zurückgibt, kann er einen Retry-After-Header enthalten, der Ihnen genau sagt, wie lange Sie warten müssen, bevor Sie die nächste Anfrage senden.
Wie sieht der Fehler 429 aus?
Der 429-Fehler wird je nach Browser, Anwendung oder API-Client unterschiedlich angezeigt. Hier sind die häufigsten Varianten:
| Kontext | Fehlermeldung |
|---|---|
| Chrome / Edge | 429 Too Many Requests |
| Firefox | 429 Too Many Requests |
| Nginx | 429 Too Many Requests (nginx) |
| Apache | 429 Too Many Requests |
| Cloudflare | Error 429 — Rate Limited |
| API-Antwort | {"error": "rate_limit_exceeded", "retry_after": 60} |
| WordPress | 429 Too Many Requests — You have been rate limited |
| cURL | HTTP/1.1 429 Too Many Requests |
Anders als 500-Fehler, die auf ein serverseitiges Problem hinweisen, ist der 429 ein clientseitiger Fehler — der Server funktioniert einwandfrei, schützt sich aber vor zu vielen Anfragen.
Wie funktioniert Rate Limiting?
Rate Limiting ist eine Technik, mit der Server steuern, wie viele Anfragen ein Client innerhalb eines bestimmten Zeitfensters senden darf. Wird das Limit überschritten, antwortet der Server mit HTTP 429.
Es gibt verschiedene gängige Rate-Limiting-Algorithmen:
Fixed Window — Der Server erlaubt N Anfragen pro Zeitfenster (z. B. 100 Anfragen pro Minute). Der Zähler wird in festen Intervallen zurückgesetzt.
Sliding Window — Ähnlich wie Fixed Window, aber das Zeitfenster verschiebt sich mit jeder Anfrage. Dadurch werden Anfragenspitzen an Fenstergrenzen verhindert.
Token Bucket — Der Server vergibt Tokens, die in gleichmäßigem Tempo nachgefüllt werden. Jede Anfrage verbraucht ein Token. Sind alle Tokens aufgebraucht, werden Anfragen abgelehnt.
Leaky Bucket — Anfragen werden unabhängig von der Spitzenlast mit konstanter Rate verarbeitet. Überschüssige Anfragen werden in eine Warteschlange gestellt oder verworfen.
Die meisten APIs teilen ihre Rate Limits über Response-Header mit. Übliche Header sind X-RateLimit-Limit (maximale Anzahl erlaubter Anfragen), X-RateLimit-Remaining (verbleibende Anfragen im aktuellen Zeitfenster) und X-RateLimit-Reset (Zeitpunkt des Fenster-Resets).
Das Verständnis des verwendeten Algorithmus hilft Ihnen, Ihren Client so zu gestalten, dass er innerhalb der Limits bleibt und 429-Fehler vermeidet.
Häufige Ursachen für den HTTP Error 429
Der 429-Fehler kann durch viele verschiedene Szenarien ausgelöst werden. Hier sind die häufigsten Ursachen, gruppiert nach der jeweils betroffenen Zielgruppe:
| Ursache | Betrifft | Beschreibung |
|---|---|---|
| API-Rate-Limit überschritten | Entwickler | Sie haben mehr API-Anfragen gesendet, als der Dienst pro Minute/Stunde erlaubt |
| Zu viele Seitenaufrufe | Besucher | Sie haben eine Seite zu schnell aktualisiert oder zu viele Tabs gleichzeitig geöffnet |
| Web Scraping / Bots | Entwickler | Automatisierte Skripte greifen zu schnell auf eine Website zu und lösen Rate Limits aus |
| Brute-Force-Schutz | Besucher | Zu viele fehlgeschlagene Anmeldeversuche haben das Sicherheits-Rate-Limiting ausgelöst |
| DDoS-Schutz | Alle | Cloudflare, AWS WAF oder ähnliche Dienste blockieren Traffics-Spitzen |
| Gemeinsame IP-Rate-Limitierung | Besucher / VPN-Nutzer | Mehrere Nutzer hinter derselben IP (VPN, Proxy, Firmennetzwerk) überschreiten gemeinsam das Limit |
| Falsch konfigurierte Rate Limits | Website-Betreiber | Serverseitige Rate Limits sind zu aggressiv eingestellt und blockieren legitimen Traffic |
| Plugin- oder Theme-Probleme | Website-Betreiber | WordPress-Plugins senden übermäßig viele API-Aufrufe oder Cron-Jobs laufen zu häufig |
| Webhook-Stürme | Entwickler | Ein falsch konfigurierter Webhook wiederholt fehlgeschlagene Zustellungen in einer Endlosschleife |
HTTP 429 beheben (für Besucher)
Wenn Sie beim Surfen auf einer Website den Fehler 429 sehen, können Sie folgende Lösungen ausprobieren. Beginnen Sie mit der einfachsten und arbeiten Sie sich vor.
1. Warten und erneut versuchen
Die einfachste Lösung ist Abwarten. Der 429-Fehler ist vorübergehend — der Server fordert Sie auf, langsamer zu machen, und blockiert Sie nicht dauerhaft.
Warten Sie 30 Sekunden bis einige Minuten und versuchen Sie es dann erneut. Die meisten Rate Limits werden innerhalb von 1–5 Minuten zurückgesetzt. Wenn die Seite weiterhin 429 anzeigt, warten Sie länger — manche Dienste haben stündliche oder tägliche Limits.
Aktualisieren Sie die Seite nicht ständig. Jede Aktualisierung sendet eine weitere Anfrage und kann die Sperrzeit verlängern.
2. Browser-Cache und Cookies löschen
Manchmal können zwischengespeicherte Daten oder Cookies Rate Limiting auslösen. Das Löschen kann helfen:
Chrome: Drücken Sie
Strg+Umschalt+Entf(Windows) oderCmd+Shift+Delete(Mac) → wählen Sie "Cookies" und "Bilder und Dateien im Cache" → klicken Sie auf "Daten löschen"Firefox: Drücken Sie
Strg+Umschalt+Entf→ wählen Sie "Cache" und "Cookies" → klicken Sie auf "Jetzt löschen"Edge: Drücken Sie
Strg+Umschalt+Entf→ markieren Sie "Cookies" und "Zwischengespeicherte Daten" → klicken Sie auf "Jetzt löschen"Safari: Gehen Sie zu Safari → Einstellungen → Datenschutz → Websitedaten verwalten → Alle entfernen
Schließen Sie nach dem Löschen den Browser und öffnen Sie ihn erneut, bevor Sie die Seite wieder aufrufen.
3. VPN oder Proxy trennen
Wenn Sie ein VPN oder einen Proxy verwenden, teilen Sie möglicherweise eine IP-Adresse mit Hunderten anderer Nutzer. Wenn deren kombinierte Anfragen das Serverlimit überschreiten, werden alle Nutzer dieser IP gedrosselt.
Versuchen Sie, Ihr VPN zu trennen und die Website über Ihre reguläre Internetverbindung aufzurufen. Wenn der 429-Fehler verschwindet, war die VPN-IP das Problem.
Falls Sie das VPN benötigen, wechseln Sie zu einem anderen Serverstandort, um eine neue IP-Adresse zu erhalten.
4. Browser-Erweiterungen deaktivieren
Einige Browser-Erweiterungen senden ohne Ihr Wissen Hintergrundanfragen. Werbeblocker, Preisvergleichs-Tools, SEO-Erweiterungen und Auto-Refresh-Plugins können zusätzliche Anfragen erzeugen, die Rate Limiting auslösen.
Zum Testen öffnen Sie die Website in einem Inkognito-/Privatfenster (in dem die meisten Erweiterungen standardmäßig deaktiviert sind). Wenn der 429-Fehler verschwindet, ist eine Ihrer Erweiterungen der Übeltäter.
Deaktivieren Sie die Erweiterungen einzeln, um die problematische zu finden. In Chrome gehen Sie zu chrome://extensions/ und schalten sie einzeln aus.
5. Ein anderes Netzwerk verwenden
Wenn nichts anderes hilft, drosselt der Server möglicherweise Ihre IP-Adresse gezielt. Versuchen Sie Folgendes:
Wechseln Sie von WLAN zu mobilen Daten (dies gibt Ihnen eine andere IP). Versuchen Sie die Seite über ein komplett anderes Netzwerk. Wenn Sie sich in einem Firmen- oder Schulnetzwerk befinden, versuchen Sie es von zu Hause — große Netzwerke nutzen eine einzige öffentliche IP.
Sie können Ihre aktuelle IP-Adresse mit unserem Tool Meine IP-Adresse überprüfen, um sicherzustellen, dass sie sich geändert hat.
HTTP 429 beheben (für Entwickler)
Wenn Sie eine Anwendung entwickeln, die APIs aufruft, bedeutet der 429-Fehler, dass Ihr Code Anfragen zu schnell sendet. So gehen Sie richtig damit um.
1. Exponentielles Backoff implementieren
Exponentielles Backoff ist die branchenübliche Wiederholungsstrategie. Statt nach einem 429 sofort erneut zu versuchen, verlängern Sie die Wartezeit zwischen Wiederholungen progressiv:
Erster Versuch: 1 Sekunde warten. Zweiter Versuch: 2 Sekunden warten. Dritter Versuch: 4 Sekunden warten. Vierter Versuch: 8 Sekunden warten. Und so weiter.
Hier ist eine grundlegende Implementierung in JavaScript:
async function fetchWithBackoff(url, options = {}, maxRetries = 5) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const response = await fetch(url, options);
if (response.status !== 429) return response;
// Check Retry-After header first
const retryAfter = response.headers.get('Retry-After');
const delay = retryAfter
? parseInt(retryAfter) * 1000
: Math.pow(2, attempt) * 1000; // Exponential backoff
console.log(`Rate limited. Retrying in ${delay / 1000}s...`);
await new Promise(resolve => setTimeout(resolve, delay));
}
throw new Error('Max retries exceeded');
}Fügen Sie Jitter (zufällige Variation) zur Verzögerung hinzu, um zu verhindern, dass mehrere Clients zur exakt gleichen Zeit erneut anfragen. Ersetzen Sie die Verzögerungsberechnung durch Math.pow(2, attempt) * 1000 + Math.random() * 1000.
2. Den Retry-After-Header beachten
Wenn ein Server eine 429-Antwort zurückgibt, enthält diese oft einen Retry-After-Header, der Ihnen genau sagt, wie lange Sie warten müssen. Dieser Header kann entweder eine Anzahl Sekunden oder ein HTTP-Datum enthalten:
Retry-After: 60 bedeutet 60 Sekunden warten. Retry-After: Thu, 06 Mar 2026 12:00:00 GMT bedeutet bis zu diesem Zeitpunkt warten.
Prüfen Sie immer zuerst diesen Header, bevor Sie Ihre eigene Backoff-Logik anwenden. Der Server weiß besser als Ihr Code, wie lange Sie warten sollten.
import requests
import time
def make_request(url):
response = requests.get(url)
if response.status_code == 429:
retry_after = response.headers.get('Retry-After', '5')
wait_time = int(retry_after)
print(f"Rate limited. Waiting {wait_time} seconds...")
time.sleep(wait_time)
return make_request(url) # Retry after waiting
return response3. API-Antworten cachen
Wenn Ihre Anwendung denselben API-Aufruf mehrfach durchführt, speichern Sie die Antwort zwischen, anstatt die API jedes Mal erneut aufzurufen. Dadurch reduziert sich die Anzahl Ihrer Anfragen drastisch.
Verwenden Sie einen In-Memory-Cache (wie Redis oder eine einfache Map) für häufig abgerufene Daten. Setzen Sie eine sinnvolle TTL (Time-to-Live) basierend darauf, wie oft sich die Daten ändern.
Wenn Sie beispielsweise DNS-Einträge für eine Domain abfragen, ändern sich die Ergebnisse in den nächsten 5 Minuten wahrscheinlich nicht — cachen Sie sie.
const cache = new Map();
const CACHE_TTL = 5 * 60 * 1000; // 5 minutes
async function cachedFetch(url) {
const cached = cache.get(url);
if (cached && Date.now() - cached.time < CACHE_TTL) {
return cached.data;
}
const response = await fetch(url);
const data = await response.json();
cache.set(url, { data, time: Date.now() });
return data;
}4. Webhooks statt Polling verwenden
Wenn Sie eine API wiederholt abfragen, um auf Änderungen zu prüfen (z. B. alle 10 Sekunden den Bestellstatus prüfen), wechseln Sie zu Webhooks, sofern der Dienst dies unterstützt.
Mit Webhooks sendet der Server Aktualisierungen an Ihre Anwendung, sobald sich etwas ändert — kein ständiges Polling mehr nötig. Dadurch reduzieren sich Ihre API-Aufrufe von Tausenden pro Stunde auf nur eine Handvoll.
Die meisten modernen APIs (Stripe, GitHub, Twilio, Shopify) unterstützen Webhooks. Schauen Sie in der API-Dokumentation nach der Webhook-Konfiguration.
5. Höhere Rate Limits beantragen
Wenn Sie tatsächlich mehr API-Aufrufe benötigen, kontaktieren Sie den Dienstanbieter. Viele APIs bieten höhere Rate Limits für kostenpflichtige Tarife oder verifizierte Anwendungen an.
Erklären Sie bei der Anfrage Ihren Anwendungsfall und nennen Sie Schätzungen zum erwarteten Anfragevolumen. Dienste wie Google APIs, Twitter API und GitHub API haben alle Prozesse zur Beantragung erhöhter Limits.
Manche APIs bieten auch Bulk-Endpunkte an, mit denen Sie mehrere Ressourcen in einer einzigen Anfrage abrufen können, um die Gesamtanzahl der Aufrufe zu reduzieren.
HTTP 429 beheben (für Website-Betreiber)
Wenn Ihre Besucher oder API-Nutzer 429-Fehler erhalten, liegt das Problem in Ihrer Serverkonfiguration. So diagnostizieren und beheben Sie es.
1. Rate Limits anpassen
Wenn legitime Benutzer auf 429-Fehler stoßen, sind Ihre Rate Limits möglicherweise zu streng eingestellt. Überprüfen und justieren Sie sie.
In Nginx steuert das Rate-Limiting-Modul (ngx_http_limit_req_module) die Anfragenrate:
# Define rate limit zone: 10 requests per second per IP
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
server {
location /api/ {
# Allow bursts of 20, no delay for first 10
limit_req zone=api burst=20 nodelay;
limit_req_status 429;
}
}Der burst-Parameter ist entscheidend — er erlaubt kurze Lastspitzen, ohne den 429-Fehler auszulösen. Ohne ihn können selbst normale Surfmuster das Limit erreichen.
In Apache verwenden Sie mod_ratelimit oder mod_evasive. In Node.js nutzen Sie Pakete wie express-rate-limit.
2. Vertrauenswürdige IPs auf die Whitelist setzen
Wenn bestimmte Clients (Monitoring-Dienste, Zahlungsanbieter, Ihre eigenen Microservices) gedrosselt werden, setzen Sie deren IP-Adressen auf die Whitelist.
In Nginx können Sie eine Map verwenden, um Rate Limiting für vertrauenswürdige IPs zu umgehen:
geo $rate_limit {
default 1;
192.168.0.0/16 0; # Internal network
10.0.0.0/8 0; # Internal network
203.0.113.50 0; # Payment processor
}
map $rate_limit $limit_key {
0 "";
1 $binary_remote_addr;
}
limit_req_zone $limit_key zone=api:10m rate=10r/s;Setzen Sie auch Suchmaschinen-Bots (Googlebot, Bingbot) auf die Whitelist, wenn sie gedrosselt werden — deren Blockierung schadet Ihrer SEO. Sie können Bot-Identitäten über Reverse-DNS-Abfragen verifizieren.
3. WAF- und CDN-Einstellungen prüfen
Wenn Sie Cloudflare, AWS WAF, Sucuri oder einen anderen Sicherheitsdienst nutzen, können deren Rate-Limiting-Regeln die Quelle der 429-Fehler sein — nicht Ihr Ursprungsserver.
In Cloudflare prüfen Sie unter Sicherheit → WAF → Rate-Limiting-Regeln. Sie können sehen, welche Regeln ausgelöst werden, und die Schwellenwerte anpassen. Cloudflares Standard-Modus "I'm Under Attack" ist besonders aggressiv.
In AWS WAF prüfen Sie Ihre Web-ACL-Regeln auf ratenbasierte Regeln. Der Mindestschwellenwert beträgt 100 Anfragen pro 5 Minuten — stellen Sie sicher, dass dies für Ihre Traffic-Menge angemessen ist.
Analysieren Sie die CDN-Statistiken, um zwischen legitimem Traffic und Bot-Traffic zu unterscheiden, bevor Sie Limits anpassen.
4. Serverleistung optimieren
Manchmal treten 429-Fehler auf, weil der Server die Last nicht bewältigen kann und Rate Limiting als Sicherheitsmechanismus greift. Eine Verbesserung der Serverleistung ermöglicht es, Rate Limits sicher anzuheben.
Wichtige Optimierungen sind: Response-Caching aktivieren, um die Backend-Last zu reduzieren, ein CDN für statische Assets verwenden, Datenbank-Query-Caching mit Redis oder Memcached einrichten, Connection Pooling für Datenbankverbindungen implementieren und bei Bedarf horizontal mit Load Balancing skalieren.
Verwenden Sie unser Tool HTTP-Header, um zu überprüfen, ob Ihre Caching-Header korrekt gesetzt sind.
429 im Vergleich zu anderen HTTP-Fehlern
Der 429-Fehler kann leicht mit anderen HTTP-Statuscodes verwechselt werden. So unterscheiden sie sich:
| Statuscode | Name | Bedeutung | Wesentlicher Unterschied |
|---|---|---|---|
| [401](/blog/http-401-unauthorized) | Unauthorized | Authentifizierung erforderlich | Fehlende oder ungültige Anmeldedaten |
| [403](/blog/403-forbidden-error) | Forbidden | Zugriff dauerhaft verweigert | Sie haben keine Berechtigung |
| **429** | **Too Many Requests** | **Vorübergehend rate-limitiert** | **Sie senden Anfragen zu schnell** |
| [500](/blog/http-error-500) | Internal Server Error | Server abgestürzt | Serverseitiger Bug oder Ausfall |
| [502](/blog/http-error-500) | Bad Gateway | Upstream-Server ausgefallen | Proxy konnte Backend nicht erreichen |
| [503](/blog/http-error-503) | Service Unavailable | Server überlastet oder in Wartung | Server ist zu beschäftigt |
| [504](/blog/504-gateway-timeout) | Gateway Timeout | Upstream-Server zu langsam | Backend hat nicht rechtzeitig geantwortet |
Der wesentliche Unterschied: 429 ist vorübergehend und beabsichtigt. Der Server ist funktionsfähig — er lehnt Ihre Anfrage bewusst ab, um sich zu schützen. Andere 5xx-Fehler zeigen hingegen an, dass tatsächlich etwas defekt ist.
Wie Sie 429-Fehler vermeiden
Vorbeugung ist besser als Nachsorge. Hier sind Best Practices, um 429-Fehler von vornherein zu vermeiden:
API-Dokumentation lesen — Kennen Sie die Rate Limits, bevor Sie Code schreiben. Die meisten Dienste veröffentlichen ihre Limits klar und deutlich.
Nutzung überwachen — Verfolgen Sie den
X-RateLimit-Remaining-Header, um zu wissen, wie nah Sie am Limit sind.Anfragen bündeln — Nutzen Sie Bulk-Endpunkte, wenn verfügbar, statt einzelne Aufrufe zu senden.
Anfragen verteilen — Verteilen Sie API-Aufrufe gleichmäßig über die Zeit, anstatt sie gebündelt zu senden.
API-Schlüssel verwenden — Authentifizierte Anfragen erhalten in der Regel höhere Rate Limits als anonyme.
Circuit Breaker implementieren — Wenn Sie wiederholt 429-Fehler erhalten, stoppen Sie die Anfragen komplett für eine Abkühlphase.
Mit Rate-Limit-Simulatoren testen — Simulieren Sie 429-Antworten in der Entwicklungsumgebung, um sicherzustellen, dass Ihre Fehlerbehandlung funktioniert.
429-Antworten protokollieren — Verfolgen Sie, wann und wo Rate Limiting auftritt, um Ihre Anfragemuster zu optimieren.
Server-Rate-Limit-Header prüfen
Verwenden Sie das kostenlose HTTP-Headers-Tool von DNS Robot, um die Antwort-Header eines Servers zu überprüfen — einschließlich Rate-Limit-Header wie Retry-After und X-RateLimit-Limit.
Try HTTP Headers CheckerFrequently Asked Questions
HTTP Error 429 bedeutet "Too Many Requests" (zu viele Anfragen). Der Server drosselt Sie per Rate Limiting, weil Sie in kurzer Zeit zu viele Anfragen gesendet haben. Es handelt sich um eine vorübergehende Sperre — warten Sie einige Minuten und versuchen Sie es erneut.