HTTP 429 Too Many Requests

Yavaşlayın: istemci, sunucunun bir zaman penceresinde izin verdiğinden daha fazla istek gönderdi.

HTTP 429 ne anlama gelir

HTTP 429 Too Many Requests, istemcinin bir hız sınırını aştığı anlamına gelir — IP başına, API anahtarı başına, kullanıcı başına veya uç nokta başına. İyi davranan sunucular bir Retry-After başlığı (saniye veya bir tarih) ve genellikle kotayı açıklayan X-RateLimit-* başlıkları içerir.

İstemciler için doğru tepki her zaman aynıdır: geri çekilin. Hemen yeniden denemek durumu kötüleştirir ve geçici bir kısıtlamayı bir yasağa dönüştürebilir.

429 hatalarının yaygın nedenleri

  • Bir API istemcisi çok sık yokluyor veya kotasının üzerinde patlama yapıyor.
  • İstekler arasında gecikme olmadan web kazıma (scraping).
  • Bir hata: aynı uç noktayı geri çekilme olmadan döven bir yeniden deneme döngüsü.
  • Paylaşılan IP (ofis NAT'ı, VPN, sunucusuz çıkış) burada birleşik trafik sınırı aşıyor.
  • Kaba kuvvet korumasına karşı tekrarlanan girişimleri kısıtlayan giriş uç noktaları.

Bir istemci/geliştirici olarak nasıl düzeltilir

  • Retry-After'a tam olarak uyun; yoksa jitter'lı üstel geri çekilme kullanın (örn. 1s, 2s, 4s, 8s…).
  • API'nin X-RateLimit-Remaining/Sıfırla başlıklarını okuyun ve istekleri proaktif olarak hızlandırın.
  • Aynı verileri yeniden almak yerine istekleri toplu hâle getirin ve yanıtları önbelleğe alın.
  • Yükü zamana yayın, tek kullanımlık IP'lere değil — sınırları aşmaya çalışmak genellikle API'nin kullanım koşullarını ihlal eder.

Bir API sahibi olarak nasıl düzeltilir

  • İstemcilerin doğru davranabilmesi için her zaman Retry-After ve kota başlıkları gönderin.
  • Paylaşılan ağları cezalandırmamak için mümkün olduğunda çıplak IP yerine anahtar/kullanıcı başına hız sınırlaması yapın.

Örnek yanıt

HTTP/1.1 429 Too Many Requests
Retry-After: 30
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0

{"error":"rate_limited","retry_after":30}

SSS

Bir 429'dan sonra ne kadar beklemeliyim?

Retry-After ne söylüyorsa. Yoksa, bir veya iki saniyeyle başlayın ve her ardışık 429'da gecikmeyi ikiye katlayın (üstel geri çekilme).

429, yasaklandığım anlamına mı gelir?

Hayır — bu geçici bir kısıtlamadır. Ancak tekrar tekrar göz ardı etmek gerçek bir IP veya anahtar yasağına yol açabilir.

İlk isteğimde neden 429 alıyorum?

Sınır muhtemelen paylaşılıyor: IP'niz (VPN, ofis ağı) veya API anahtarınız kotayı başka bir yerde zaten harcamıştır.