MailLandDocs
Referans

Hız Sınırları

API hız sınırlarını, e-posta gönderim sınırlarını ve hız sınırlı yanıtların nasıl yönetileceğini anlayın

MailLand, adil kullanım ve platform kararlılığını sağlamak için birden fazla düzeyde hız sınırlaması uygular. Sınırlar akış türüne (işlemsel ve pazarlama), kimlik doğrulama yöntemine ve plan kademesine göre değişir.

API İstek Sınırları

IP Tabanlı Sınırlar

Her istek, kimlik doğrulamasından önce uygulanan IP tabanlı hız sınırlamasına tabidir. Bu sınırlar, kötüye kullanım ve DDoS saldırılarına karşı koruma sağlar.

EndpointSınırPencere
Genel API300 istekDakika başına
Yönetici girişi10 istekDakika başına
Takım davetleri10 istekDakika başına
SSO alan adı kontrolleri15 istekDakika başına

(Yönetici olmayan) kullanıcı girişi bu IP penceresine tabi değildir: buna uygulanan 5 deneme/15 dakikalık kilitleme için aşağıdaki Giriş Hız Sınırlaması bölümüne bakın.

IP tabanlı sınırlar kaynak IP adresi başına uygulanır. Paylaşımlı bir proxy arkasında çalışıyorsanız, tüm istemciler aynı sınırı paylaşır.

Giriş Hız Sınırlaması

Başarısız giriş denemeleri IP + e-posta kombinasyonu bazında izlenir:

ParametreDeğer
Maksimum başarısız deneme5
İzleme penceresi15 dakika
Kilitleme süresi15 dakika

15 dakika içinde 5 başarısız giriş denemesinin ardından, IP + e-posta çifti 15 dakika süreyle kilitlenir. Başarılı giriş sayacı sıfırlar.

API Key Kimlik Doğrulama

Başarısız API key kimlik doğrulama denemeleri iki boyutta izlenir:

BoyutMaksimum BaşarısızPencereEngelleme Süresi
Key ön eki başına10 deneme15 dakika15 dakika
IP adresi başına20 deneme15 dakika15 dakika

Her iki boyuttan biri eşiğini aşarsa, kimlik doğrulama geçici olarak engellenir.

E-posta Gönderim Sınırları

E-posta gönderim sınırları çalışma alanı başına uygulanır ve akış türüne göre değişir. İşlemsel e-postalar (faturalar, şifre sıfırlama) pazarlama e-postalarından (bültenler, kampanyalar) daha yüksek sınırlara sahiptir. Dakika başına değer, gerçekten planınızdan gelen değerdir (Politika Özeti'ne bakın); saniye başına ve saat başına değerler bundan türetilir, bağımsız olarak ayarlanmaz; yalnızca gün/ay için sabit platform varsayılanları kullanılır.

İşlemsel Akış

PencereNasıl türetildiği
Saniye başınaPlanın dakika başına oranı ÷ 60 (en az 1); başka bir isteğin kabul edilmediği bir saniyede en fazla 5 alıcılı tek bir istek kabul edilir, aşağıya bakın
Dakika başınaPlanınızdan (TransactionalRatePerMin)
Saat başınaPlanın dakika başına oranı × 60
Gün başına1,000,000 (platform varsayılanı)
Ay başına10,000,000 (platform varsayılanı)

Birden çok alıcılı istekler. Her alıcı her zaman penceresinde sayılır. Alıcı sayısı saniye başına sınırınızı aşan işlemsel bir istek (en fazla 5 alıcı), o saniyede başka bir istek kabul edilmemişse yine de kabul edilir; aynı saniyedeki diğer istekler Retry-After: 1 ile 429 alır. Örneğin dakikada 60 (saniyede 1) olan bir planda 3 alıcılı bir istek kabul edilir, o saniyedeki başka bir istek ise bir sonraki saniyeye kadar reddedilir. Dakika, saat, gün ve ay sınırları, ısınma ve aylık kotanız 3 alıcının tamamını saymaya devam eder. SMTP aynı kuralı her mesaja uygular ve mesajın benzersiz RCPT TO adreslerini sayar.

Pazarlama Akışı

PencereNasıl türetildiği
Saniye başınaKontrol edilmez: pazarlama gönderimleri, toplu olsun olmasın, saniye başına kontrolü her zaman atlar
Dakika başınaPlanınızdan (MarketingRatePerMin)
Saat başınaPlanın dakika başına oranı × 60
Gün başına100,000 (platform varsayılanı)
Ay başına1,000,000 (platform varsayılanı)

Dakika başına oranlar plana özgüdür: mevcut sınırlarınızı, GET /v1/account/subscription/policy-summary API rotasına dayanan Faturalandırma sayfasından kontrol edin.

Akış Önceliği

İşlemsel e-postalar, pazarlama e-postalarından (öncelik 2) daha yüksek önceliğe (öncelik 1) sahiptir. Sistem yük altındayken işlemsel e-postalar öncelikli olarak işlenir.

Toplu İşlemler

Toplu gönderim işlemleri (ör. POST /v1/transactional/send-batch) yalnızca pazarlama içindir ve her pazarlama gönderimi gibi saniye başına hız kontrollerini atlar, ancak dakika başına, saat başına, gün başına ve ay başına sınırlara tabi olmaya devam eder.

Çalışma Alanı Gönderim Sınırları

Doğrulama düzeyi bir hacim sınırı belirlemez, hangi özelliklerin kullanılabilir olduğunu belirler. Günlük/aylık gönderim hacminiz planınızdan gelir (Politika Özeti'ne bakın), doğrulama düzeyinizden değil.

Doğrulama DüzeyiİşlemselPazarlamaGelen
SandboxYalnızca izin listesindeki alıcılarHayırHayır
BasicVerified / SenderVerifiedEvetHayırEvet
BusinessVerifiedEvetEvetEvet

Çalışma alanı sınırları, akış hız sınırlarından önce kontrol edilir. Mevcut sınırlarınızı ve kullanımınızı, GET /v1/account/subscription/policy-summary ile beslenen Faturalandırma sayfasında görüntüleyebilirsiniz.

IP Isındırma

Isındırma plan ailesine göre değişir, sabit bir takvim değildir. Free planlar, her biri 5 gün süren 6 aşamadan geçer (50 → 100 → 250 → 500 → 750 → 1.000/gün), toplamda 30 gün; Pro planlar 14 gün boyunca 500 → 1.000 → 2.500 → 5.000 → 10.000 → 25.000/gün ilerler; Max planlarda ısındırma yoktur. Planınızın ısındırma takvimini yukarıdaki Faturalandırma sayfasından görebilirsiniz.

Hız Sınırı Başlıkları

Çoğu API yanıtı şunları içerir:

BaşlıkAçıklama
X-RateLimit-LimitMevcut pencerede izin verilen maksimum istek sayısı
X-RateLimit-RemainingMevcut pencerede kalan istek sayısı

IP tabanlı bir 429 ayrıca şunu ekler:

BaşlıkAçıklama
X-RateLimit-ResetMevcut pencerenin sıfırlandığı ISO-8601 UTC zaman damgası
Retry-AfterYeniden denemeden önce beklenecek saniye sayısı

429 Yanıtlarını Yönetme

429 Too Many Requests yanıtı aldığınızda, gövde hangi sınırın aşıldığına dair detaylar içerir:

Hız sınırı hata yanıtı
{
  "code": "IP_RATE_LIMIT_EXCEEDED",
  "message": "Too many requests from this IP. Retry after 45 seconds.",
  "details": {
    "limit": 300,
    "current": 301,
    "retryAfter": 45,
    "resetAt": "2026-02-18T12:35:00Z"
  }
}

E-posta gönderim hız sınırları için:

E-posta hız sınırı yanıtı
{
  "code": "RATE_LIMIT_EXCEEDED",
  "message": "Per-minute rate limit exceeded (transactional)"
}

Yukarıdaki message metni bir örnektir: politika motorunun karar gerekçesinden üretilir ve garantili sabit bir dize değildir. message yerine code üzerinden eşleştirin.

Yeniden Deneme Stratejisi

retry-with-backoff.sh
#!/bin/bash
MAX_RETRIES=3
ATTEMPT=0

while [ $ATTEMPT -le $MAX_RETRIES ]; do
  RESPONSE=$(curl -s -D - -o /tmp/body -w "%{http_code}" -X POST https://api.mail.land/v1/transactional/send \
    -H "X-API-Key: ml_pet_Ab3Kx9mN2pQ7rT4wL8yD..." \
    -H "Content-Type: application/json" \
    -d '{ "from": {"email": "[email protected]"}, "to": [{"email": "[email protected]"}], "subject": "Hello", "htmlContent": "<p>Hi</p>" }')

  HTTP_CODE=$(echo "$RESPONSE" | tail -n1)

  if [ "$HTTP_CODE" -ne 429 ]; then
    cat /tmp/body
    exit 0
  fi

  # Read the Retry-After header, not the response body - not every 429 has a `details` block.
  RETRY_AFTER=$(echo "$RESPONSE" | grep -i '^Retry-After:' | tr -d '\r' | cut -d' ' -f2)
  RETRY_AFTER=${RETRY_AFTER:-60}
  ATTEMPT=$((ATTEMPT + 1))
  echo "Rate limited. Retrying in ${RETRY_AFTER}s (attempt ${ATTEMPT}/${MAX_RETRIES})"
  sleep "$RETRY_AFTER"
done

echo "Max retries exceeded"
exit 1

En İyi Uygulamalar

Kullanımınızı izleyin. Sınırlara ulaşmadan önce istekleri kısmak için X-RateLimit-Remaining başlığını proaktif olarak kontrol edin.

Üstel geri çekilme kullanın. 429 yanıtından sonra yeniden denerken her zaman Retry-After başlığına uyun. Başlık mevcut değilse, 1 saniyeden başlayarak üstel geri çekilme uygulayın.

Toplu endpoint'leri tercih edin. Yüksek hacimli (pazarlama) gönderimler için POST /v1/transactional/send işlemini döngüde çağırmak yerine POST /v1/transactional/send-batch kullanın. Toplu endpoint'ler her pazarlama gönderimi gibi saniye başına kontrolleri atlar ve daha verimlidir.

İşlemsel ve pazarlamayı ayırın. İşlemsel ve pazarlama e-postaları için ayrı API kimlik bilgileri kullanın. Bu, pazarlama gönderimlerinin işlemsel teslimatı hiçbir zaman etkilememesini sağlar.

Gönderimi zamana yayın. Büyük kampanyalar için MailLand teslimatı otomatik olarak hızlandırır. API tabanlı toplu gönderimler için istekleri ani yükler halinde göndermek yerine eşit şekilde dağıtın.

Şifre Sıfırlama Sınırları

Şifre sıfırlama isteklerinin ayrı hız sınırları vardır:

ParametreDeğer
İstekler arası bekleme süresi60 saniye
Günlük maksimum istek5

Sonraki Adımlar

Bu sayfada