Domain Name API Hız Sınırı, Throttling & Toplu Kullanım Politikası

Domain Name API, bayi entegrasyon süreçlerini geniş ölçekte optimize etmek için tasarlanmış, kurumsal düzeyde yüksek erişilebilirlikli bir API altyapısı sunmaktadır. Tüm ortaklar için adil, dengeli ve sürdürülebilir API erişimi sağlamak amacıyla kullanım; ayrı endpoint’ler, hız sınırları ve API throttling kontrolleriyle iki kategoriye ayrılmıştır.
Hızlı Kural Özeti
Tüm hız sınırı, API throttling ve endpoint kuralları için hızlı başvuru tablosu.
1. Tanımlar: Hız Sınırlama ve API Throttling
API Hız Sınırlama (Rate Limiting) Nedir?
API hız sınırlama; bir istemcinin belirli bir zaman aralığında gönderebileceği istek sayısını kısıtlayan bir kontrol mekanizmasıdır. Domain Name API’de bu sınır API Anahtarı başına saniyede 1 istektir. Bu sınırı aşan istekler throttle edilir — yani reddedilir — ve istemci HTTP 429 Çok Fazla İstek yanıtı alır.
API Throttling Nedir?
Throttling; hız sınırlarının sunucu tarafından uygulanmasıdır. İstek hızınız izin verilen eşiği aştığında sunucu, platform stabilitesini korumak için isteklerinizi throttle eder. Throttling otomatiktir ve müzakere edilemez. Tüm API Anahtarlarına eşit şekilde uygulanır; bir ceza değil — tüm bayi ağı için bir koruma mekanizmasıdır.
2. Standart ve Toplu API Kullanımı Nedir?
Standart API Kullanımı
Standart API kullanımı; doğrudan bir kullanıcı eylemi tarafından tetiklenen, düşük frekanslı ve gerçek zamanlı çağrıları kapsar.
- Domain uygunluk sorgulama (kullanıcı başlatımlı)
- Tekil domain kayıt istekleri
- Bayi kontrol paneli üzerinden yapılan işlemler
Toplu API Kullanımı
Toplu kullanım; doğrudan insan müdahalesi olmaksızın yazılım tarafından otomatik tetiklenen yüksek frekanslı ve tekrarlayan API çağrılarını kapsar.
Saniyede 1’den fazla otomatik istek içeren her senaryo toplu kullanım olarak sınıflandırılır ve yalnızca /api-bulk kullanılmalıdır. Bu; async model, thread sayısı veya eşzamanlılık stratejisinden bağımsız olarak geçerlidir.
Örnekler
- Domain uygunluk tarama scriptleri
- Backorder ve dro-catching sistemleri
- Toplu domain kontrol / kayıt iş akışları
- Cron job ve arka plan worker servisleri
- Webhook retry ve olay tabanlı otomasyon
3. Toplu API Endpoint Kuralları (/api-bulk)
Tüm otomatik ve toplu işlemler ayrılmış endpoint üzerinden yürütülmelidir. Her iki endpoint de aynı işlevselliği sunar; tek fark kullanılan temel URI’dir.
/api’nin toplu işlemler için kötüye kullanımı anında throttling tetikler ve kalıcı API erişim sonlandırmasına yol açabilir.
- Otomatik izleme tarafından gerçek zamanlı tespit edilir — manuel inceleme gerekmez
- Etkilenen istekler bildirim yapılmaksızın anında throttle veya engellenir
- Tekrarlanan ihlaller geçici veya kalıcı API erişim askıya alınmasıyla sonuçlanır
- Ağır veya süregen kötüye kullanım tam hesap kapatılmasıyla sonuçlanır
Toplu trafik için /api’nin yanlış kullanımında herhangi bir performans, hız veya öncelik avantajı YOKTUR. Sistem bunu imkânsız kılacak şekilde tasarlanmıştır.
4. API Hız Sınırları ve Throttling Açıklandı
Saniyede maksimum 1 (bir) istek / API Anahtarı
- API Anahtarı başına uygulanır. IP veya hesap başına değil.
- Burst traffic (bir saniye içinde birden fazla istek) da ihlal sayılır.
- Sınırı aşan istekler HTTP 429 Çok Fazla İstek ile reddedilir.
- 429 yanıtındaki Retry-After header değeri mutlaka dikkate alınmalıdır.
- Sürekli ihlaller kademeli throttling ve erişim kısıtlamalarını tetikler.
Eşzamanlılık Kuralı
Sisteminiz çok thread’li veya tamamen asenkron olsa bile toplam gönderilen istek hızı API Anahtarı başına saniyede 1 isteği geçemez.
- Paralel async çağrılar aynı hız sınırına dahil sayılır
- Çok thread’li yapı daha yüksek bir kota hakkı sağlamaz
- Tüm thread ve worker’larda ortak merkezi bir hız sınırlayıcı veya kuyruk kullanın
5. HTTP 429 Hataları Nasıl Düzeltilir (Hız Sınırı Aşımı Çözümü)
Entegrasyonunuz HTTP 429 Çok Fazla İstek alıyorsa aşağıdaki adımları izleyin:
- İstekleri hemen durdurun
- 429 yanıtından Retry-After header değerini okuyun
- En az 1 saniye (veya Retry-After değeri, hangisi büyükse) bekleyin
- Başarısız isteği yeniden deneyin
- 429 sürüyorsa -> üstel backoff uygulayın: 1sn -> 2sn -> 4sn -> 8sn -> ...
- Tüm otomatik çağrılar için /api-bulk kullandığınızı doğrulayın
- Tüm thread’lerde toplam eşzamanlılığın 1 istek/sn’yi geçmediğini kontrol edin
6. Kod Örnekleri (Toplu API En İyi Uygulamaları)
Aşağıdaki örnekler en yaygın entegrasyon dillerinde doğru hız sınırı yönetimi ve üstel backoff uygulanmasını göstermektedir.
C# (.NET / Windows entegrasyonları)
// C# — Retry-After destekli Üstel Backoff
var delay = 1000; // 1 saniyeden başla
var maxDelay = 60000; // 60 saniyede sınırla
while (true)
{
var response = await client.SendAsync(request);
if ((int)response.StatusCode == 429)
{
var retryAfter = response.Headers.RetryAfter?.Delta?.TotalMilliseconds ?? delay;
await Task.Delay((int)Math.Max(retryAfter, delay));
delay = Math.Min(delay * 2, maxDelay); // ustel backoff
continue;
}
break; // basarili -- donguden cik
}
PHP (WordPress / cPanel entegrasyonları)
// PHP — Retry-After destekli Üstel Backoff
function sendWithRetry($url, $headers, $maxRetries = 5) {
$delay = 1; // saniye
for ($i = 0; $i < $maxRetries; $i++) {
$response = httpRequest($url, $headers);
if ($response['status'] === 429) {
$retryAfter = $response['headers']['Retry-After'] ?? $delay;
sleep(max((int)$retryAfter, $delay));
$delay = min($delay * 2, 60); // 60 saniyede sinirla
continue;
}
return $response; // basarili
}
throw new Exception('Maksimum deneme sayisi asildi');
}
Python (script / otomasyon)
# Python — Retry-After destekli Üstel Backoff
import time, requests
def send_with_retry(url, headers, max_retries=5):
delay = 1 # saniye
for attempt in range(max_retries):
response = requests.get(url, headers=headers)
if response.status_code == 429:
retry_after = int(response.headers.get('Retry-After', delay))
time.sleep(max(retry_after, delay))
delay = min(delay * 2, 60) # ustel backoff, 60sn sinir
continue
return response # basarili
raise Exception('Maksimum deneme sayisi asildi')
7. İstek Akış Diyagramı
Her toplu API isteği bu akışı izlemelidir. Entegrasyon ekibiniz için referans olarak kaydedin.
TOPLU API İSTEK AKISI
+---------------------+
| Domain'i istek |
| kuyruğuna ekle |
+----------+----------+
|
v
+---------------------+
| /api-bulk'a istek |
| gönder |
+----------+----------+
|
+-----+------+
| |
200 OK 429 Çok Fazla İstek
| |
v v
Sonucu Retry-After header oku
iŞle En az 1 saniye bekle
| |
| v
| Üstel backoff uygula
| 1sn -> 2sn -> 4sn -> 8sn
| |
| v
| İsteği yeniden dene
| |
+-----+------+
|
v
+---------------------+
| Kuyruktaki sonraki |
| öğe |
+---------------------+
8. Toplu API Entegrasyonu İçin En İyi Uygulamalar
İstek Kuyruğu
Hiçbir zaman hız kontrolü olmadan paralel istek göndermeyin. Tüm thread ve worker’larda ortak saniyede maksimum 1 gönderilen istek kuralını uygulayan merkezi bir kuyruk kullanın.
Tekrarlayan İsteklerden Kaçının
Aynı session içinde aynı domain’i birden fazla kez sorgulamayın. Sonuçları yerel olarak önbelleğe alın ve işlem öncesinde giriş listenizdeki tekrarları temizleyin.
Hata Oranınızı İzleyin
429 yanıtlarının başarılı yanıtlara oranını takip edin. Artan 429 oranı, erişim kısıtlamaları tetiklenmeden önce entegrasyonunuzun düzeltilmesi gerektiğinin erken uyarısıdır.
9. Kaçınılması Gereken Yaygın Entegrasyon Hataları
- Merkezi hız sınırlayıcı veya kuyruk olmadan paralel istek göndermek
- Otomatik veya script tabanlı işlemler için /api-bulk yerine /api kullanmak
- HTTP 429 yanıtlarını yok saymak ve istek göndermeye devam etmek
- Retry mantığı veya üstel backoff uygulamamak
- Kısa aralıklarla aynı domain’i tekrar tekrar sorgulamak
- Hız sınırlarını atlatmak için API anahtarları veya IP döndürmek (izlenmekte, kötüye kullanım sayılır)
- Async veya çok thread’li çağrıların ayrı ayrı sayıldığını sanmak
10. SSS — Sıkça Sorulan Sorular
API hız sınırlama, throttling ve toplu API kullanımı hakkındaki yaygın sorular.
11. Otomatik İzleme ve Kötüye Kullanım Tespiti
Aşağıdaki davranışlar tüm API trafikğinde sürekli izlenmektedir:
- Ölçülebilir sistem performansı düşüşüne neden olan yüksek hacimli trafik
- Aynı domain için tekrarlayan kayıt veya sorgulama denemeleri
- Yüksek hata-başarı oranı (fail rate)
- Anormal veya şüpheli trafik örüntüleri
- Bağlantı kararsızlığı ve zaman aşımı anomalileri
12. Bu Politika Neden Var?
Bu politika şunları sağlamak için oluşturulmuştur:
- Tüm bayiler için adil ve eşit API erişimi
- Kurumsal ölçekte stabil ve öngörülebilir platform performansı
- İstenmeden oluşan kötüye kullanım ve sistem aşırı yüklenmesine karşı koruma
- Doğru yapılandırılmış yüksek hacimli otomasyon iş akışlarını kullanan bayilere destek
- Tüm bayi ağı genelinde tutarlı hizmet kalitesi
