Hata Kodları
Mail.Land API hata kodlarının ve anlamlarının kapsamlı referansı
MailLand API'den dönen her hata yanıtı, makine tarafından okunabilir bir hata kodu içeren code alanı ve insan tarafından okunabilir bir açıklama içeren message alanı içerir.
Hata Yanıt Formatı
{
"code": "DOMAIN_NOT_VERIFIED",
"message": "Domain is not verified",
"timestamp": "2026-02-18T12:35:00Z",
"traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
}Bazı hatalar ek details bilgisi içerir:
{
"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"
}
}İstek Doğrulama (400)
İstek gövdesi, sorgu parametreleri veya başlıklar hatalı biçimlendirilmiş olduğunda veya gerekli alanlar eksik olduğunda döner.
| Kod | Açıklama |
|---|---|
INVALID_REQUEST | Genel geçersiz istek |
VALIDATION_FAILED | Bir veya daha fazla alan doğrulamadan geçemedi |
INVALID_EMAIL_FORMAT | E-posta adresi formatı geçersiz |
WEBHOOK_DESTINATION_NOT_ALLOWED | Bir webhook URL'si hedef politikası tarafından reddedildi: webhook'lar yalnızca 443 numaralı bağlantı noktasında HTTPS ile teslim edilir ve MailLand'in kendi sunucularına, adreslerine veya ana makine adlarına işaret edemez |
MISSING_CONTENT | 2026-04 itibarıyla kullanımdan kaldırıldı. Yerine VALIDATION_FAILED kullanın: send/scheduled uç noktaları artık yapılandırılmış doğrulama hataları döndürüyor. |
CONTENT_TOO_LARGE | "The message is too large to send: it would exceed the platform's message-size limit. Reduce the HTML, text, attachments or recipients.", Mesaj platformun boyut sınırını aşıyor. POST /v1/transactional/send ve send-batch bunu 413 ile döndürür; hiçbir şey kuyruğa alınmaz. Mesajı küçültün. CSV içe aktarmada 400 olur |
transactional_recipient_limit_exceeded | İşlemsel kimlik bilgisinde 5'ten fazla alıcı (küçük harfli kod) |
marketing_recipient_limit_exceeded | Pazarlama kimlik bilgisinde 1.000'den fazla alıcı (küçük harfli kod) |
VALIDATION_FAILED | 10.000'den fazla alıcı ile toplu gönderim |
SEND_FAILED | E-posta gönderme işlemi başarısız oldu, "tüm alıcılar engellendi" dahil |
BATCH_SEND_FAILED | Toplu gönderim işlemi başarısız oldu |
IDEMPOTENCY_KEY_INVALID | İdempotans anahtarı boş, hatalı biçimli, 255 karakterden uzun ya da başlık birden çok kez gönderildi (yalnızca send/send-batch) |
IDEMPOTENCY_KEY_CONFLICT | X-Idempotency-Key başlığı ve idempotencyKey gövde alanı birlikte gönderildi ve farklılar |
INVALID_CURSOR | İmleç sayfalama parametresi hatalı biçimli |
PASSWORD_REQUIRED | Şifre doğrulaması gerekli |
RECIPIENT_SUPPRESSED | Alıcı engelleme listesinde |
Kimlik Doğrulama (401)
İstek kimlik bilgileri içermediğinde veya kimlik bilgileri geçersiz olduğunda döner.
| Kod | Açıklama |
|---|---|
UNAUTHORIZED | X-API-Key eksik, geçersiz, süresi dolmuş veya iptal edilmiş: API anahtarı ara yazılımı her durumda açıklayıcı bir message ile bu tek kodu döndürür. Eksik/geçersiz/süresi dolmuş/iptal edilmiş durumlarını kodla ayırt etmez. Yanlış giriş şifresi de 401 UNAUTHORIZED döndürür. |
LOGIN_REQUIRED | Bu işlem için giriş yapılması gerekli |
İki Faktörlü Kimlik Doğrulama
2FA hataları açıklayıcı bir message ile 400 INVALID_REQUEST döndürür (ör. "Invalid code", "2FA is already enabled"). Ayrılmış 2FA hata kodları yoktur, message alanını okuyun.
Yetkilendirme (403)
Kimliği doğrulanmış kullanıcının istenen işlemi gerçekleştirme yetkisi olmadığında döner.
| Kod | Açıklama |
|---|---|
FORBIDDEN | Genel erişim engellendi |
INSUFFICIENT_PERMISSIONS | Kullanıcı gerekli rol veya izne sahip değil |
ACCOUNT_SUSPENDED | Kullanıcı hesabı askıya alınmış |
ACCOUNT_DISABLED | Kullanıcı hesabı devre dışı bırakılmış |
ACCOUNT_NOT_ACTIVE | Kullanıcı hesabı aktif değil |
IP_NOT_ALLOWED | İstemci IP adresi, kimlik bilgisinin izin listesinde değil |
VALIDATION_CREDENTIAL_REQUIRED | E-posta doğrulama uç noktaları için bir Doğrulama API anahtarı gerekir. Gönderim veya Gelen anahtarı reddedilir; oturum açmış bir oturum ya da Doğrulama ürünü anahtarı kabul edilir |
PLAN_LIMIT_REACHED | Plan kaynak sınırına ulaşıldı: yükseltme gerekli |
SENDING_BLOCKED | Hesabın doğrulama düzeyi bu gönderime izin vermiyor. Not: politika motorunun kendi SendingBlocked reddi 403'tür; hız/ısınma politika yolundan gelen aynı kod 429'dur, aşağıdaki Politika Motoru bölümüne bakın. |
SUBSCRIPTION_EXPIRED | Abonelik süresi dolmuş |
NO_ACTIVE_SUBSCRIPTION | Aktif abonelik bulunamadı |
TENANT_APPROVAL_REQUIRED | Hesap göndermeden önce incelemeyi bekliyor. Yeniden denemek yardımcı olmaz; destekle iletişime geçin |
MARKETING_NOT_YET_ALLOWED | Pazarlama gönderimi henüz açık değil. Temiz bir işlemsel geçmişle otomatik açılır (en az 7 günde teslim edilmiş en az 500 işlemsel e-posta, sert geri dönmeler %2 altında, şikayetler %0,1 altında) |
MARKETING_SUSPENDED | Pazarlama e-postası platform genelinde geçici olarak kullanılamıyor. İşlemsel e-posta etkilenmez; kampanyalar ve otomasyonlar korunur ve pazarlama açıldığında devam eder |
ACTION_REQUIRED | Gönderimin devam edebilmesi için kullanıcı eylemi gerekli. Çalışma alanında aktif bir teslimat askıya alması olduğu sürece (geri dönme/şikayet oranı ihlali) her gönderim için de döndürülür: SMTP relay aynı askıya alma için 550 döndürür. Bkz. Teslimat Askıya Alma |
Bulunamadı (404)
İstenen kaynak mevcut olmadığında veya farklı bir çalışma alanına ait olduğunda döner.
| Kod | Açıklama |
|---|---|
RESOURCE_NOT_FOUND | Genel kaynak bulunamadı |
USER_NOT_FOUND | Kullanıcı mevcut değil |
WEBHOOK_NOT_FOUND | Webhook mevcut değil |
DELIVERY_NOT_FOUND | Webhook teslimatı mevcut değil |
Çoğu 404 yanıtı RESOURCE_NOT_FOUND kodunu kullanır. message alanı hangi kaynağın bulunamadığı hakkında bağlam bilgisi sağlar (ör. "Domain not found", "Template not found", "Campaign not found"). Webhook uç noktaları istisnadır: bir webhook teslimatını yeniden denemek WEBHOOK_NOT_FOUND / DELIVERY_NOT_FOUND kullanır.
Çakışma (409)
İşlem, kaynağın mevcut durumu ile çakıştığında döner.
| Kod | Açıklama |
|---|---|
CONFLICT | Genel kaynak çakışması |
IDEMPOTENCY_KEY_REUSED | İdempotans anahtarı bu hesapta farklı bir uç nokta için zaten kullanımda (yalnızca send/send-batch) |
Alan Adı ve Gönderim (422)
İstek doğru biçimlendirilmiş olmasına rağmen iş mantığı kısıtlamaları nedeniyle işlenemediğinde döner.
| Kod | Açıklama |
|---|---|
DOMAIN_NOT_FOUND | Alan adı çalışma alanında mevcut değil |
DOMAIN_NOT_VERIFIED | Alan adı doğrulanmamış: önce DNS kurulumunu tamamlayın |
DOMAIN_NOT_ALLOWED_FOR_CREDENTIAL | Kimlik bilgisi bu gönderici alan adı için yetkili değil |
CAMPAIGN_LINK_BLOCKED | Bir kampanyadaki bağlantı güvensiz olarak işaretlenmiş bir hedefe gidiyor; kampanya zamanlanmaz veya gönderilmez |
DOMAIN_SUSPENDED | Alan adı askıya alınmış |
DOMAIN_VERIFICATION_EXPIRED | Alan adı doğrulaması süresi dolmuş, yeniden doğrulayın |
Ödeme Gerekli (402)
Çalışma alanının kredi bakiyesi istenen işlemi karşılayamadığında döner.
| Kod | Açıklama |
|---|---|
INSUFFICIENT_CREDITS | İşlemi tamamlamak için yeterli kredi yok |
Hız Sınırlaması (429)
İstek hız sınırlarını aştığında döner. Genellikle Retry-After başlığı içerir; yoksa, hiç beklemeye gerek olmadığını varsaymak yerine üstel geri çekilme uygulayın.
API Hız Sınırları
| Kod | Açıklama |
|---|---|
RATE_LIMIT_EXCEEDED | Genel API hız sınırı aşıldı |
IP_RATE_LIMIT_EXCEEDED | IP tabanlı hız sınırı aşıldı |
SUPPORT_RATE_LIMITED | Destek API hız sınırı aşıldı |
TOO_MANY_LOGIN_ATTEMPTS | Çok fazla başarısız giriş denemesi, geçici olarak kilitlendi |
E-posta Gönderim Hız Sınırları
| Kod | Açıklama |
|---|---|
DAILY_LIMIT_EXCEEDED | Günlük e-posta gönderim sınırı aşıldı |
WARMUP_LIMIT_EXCEEDED | Hesabın yeni gönderim için günlük ısınma sınırına ulaşıldı; 00:00 UTC'de sıfırlanır (bkz. IP Isıtma) |
PAYMENT_DAILY_LIMIT_EXCEEDED | Ödemesi gecikmiş bir hesapta günlük sınıra ulaşıldı |
Platform Kapasitesi (429)
Bu ret yanıtları, yeni gönderimleri şu anda hesap kotanızın değil platformun sınırladığı anlamına gelir. Her biri Retry-After başlıklı bir 429'dur, hiçbir şey kuyruğa alınmamıştır ve aynı isteği yeniden denemek güvenlidir. SMTP üzerinde geçici 421 Try again later: <message> olarak döner. message, API'nin döndürdüğü İngilizce metindir.
| Kod | message (döndüğü gibi) | Ne zaman yeniden denenir |
|---|---|---|
WARMUP_POOL_BUDGET_EXCEEDED | "Sending is temporarily paused for today. It resumes automatically at 00:00 UTC; no action is needed." | Retry-After sonrası (sonraki 00:00 UTC) |
WARMUP_POOL_BUDGET_EXCEEDED | "Sending is briefly delayed. Please retry in a few minutes." (aynı kod; platform kapasitesi kısa süreliğine doğrulanamadığında) | Kısa Retry-After sonrası |
WARMUP_POOL_EMPTY | "Sending is temporarily paused. It resumes automatically; no action is needed." | Retry-After sonrası; işlem gerekmez |
PLATFORM_DAILY_CAPACITY_REACHED | "Platform sending capacity for today is fully booked. This is a temporary platform-wide limit, not your account quota, and it resets at midnight UTC." | Retry-After sonrası (sonraki 00:00 UTC) |
PLATFORM_CAPACITY_PROTECTION | "New sending is briefly paused to protect platform capacity. Mail already accepted is not affected. This is transient and clears on its own; retry shortly." | Kısa Retry-After sonrası |
PROBATION_CAP_REACHED | "New accounts can send to N recipients per rolling 24 hours until our team has reviewed the account. Capacity returns as earlier sends age out of the 24-hour window; contact support to request a review." (veya kısa kesintide “…cannot be verified right now, so sending is briefly paused…”) | Retry-After sonrası veya destekten inceleme isteyin |
Önceden kabul edilmiş e-postalar bu retlerden asla etkilenmez. Diğer 429 yanıtları gibi ele alın: geri çekilin, Retry-After değerine uyun ve yeniden deneyin. Yapılandırılacak veya yükseltilecek bir şey yoktur.
Akış Sınırları
transactional_recipient_limit_exceeded ve marketing_recipient_limit_exceeded 429 değil 400'dür, yukarıdaki İstek Doğrulama bölümüne bakın. BATCH_NOT_ALLOWED_FOR_TRANSACTIONAL de 400'dür: hız sınırlarından bağımsız olarak işlemsel bir kimlik bilgisinde toplu gönderime izin verilmez.
Kota ve Faturalandırma
| Kod | Açıklama |
|---|---|
QUOTA_EXCEEDED | Mevcut faturalandırma dönemi için kullanım kotası aşıldı |
Politika Motoru
| Kod | Açıklama |
|---|---|
SENDING_BLOCKED | Hız/ısınma politika motoru bu gönderimi engelledi: doğrulama düzeyi, sandbox izin listesi, hesap kısıtlaması veya olağandışı bir hacim artışı |
MARKETING_PAUSED | Bu çalışma alanı için pazarlama e-postaları duraklatıldı |
Sunucu Hataları (5xx)
| Kod | HTTP Durumu | Açıklama |
|---|---|---|
INTERNAL_ERROR | 500 | Beklenmeyen dahili sunucu hatası |
AUTHENTICATION_FAILED | 500 | API anahtarı doğrulaması dahili olarak başarısız oldu (yanlış giriş değil, yeniden deneyin) |
TIMEOUT | 504 | İşlem zaman aşımına uğradı |
SERVICE_UNAVAILABLE | 503 | Hizmet geçici olarak kullanılamıyor |
DATABASE_ERROR | 503 | Veritabanı hatası oluştu |
Sunucu hataları (5xx) geçici niteliktedir. İsteği üstel geri çekilme stratejisi ile yeniden deneyin. Hata devam ederse MailLand durum sayfasını kontrol edin veya destekle iletişime geçin.
Hataların Yönetimi
Yeniden Deneme Stratejisi
| HTTP Durumu | Yeniden Dene? | Strateji |
|---|---|---|
| 400 | Hayır | İsteği düzeltin ve tekrar deneyin |
| 401 | Hayır | Kimlik bilgilerini kontrol edin veya token'ınızı yenileyin |
| 403 | Hayır | İzinleri doğrulayın veya planınızı yükseltin |
| 404 | Hayır | Kaynak kimliğini kontrol edin |
| 409 | Hayır | Çakışmayı çözümleyin |
| 422 | Hayır | İş mantığı sorununu düzeltin (ör. alan adını doğrulayın) |
| 429 | Evet | Retry-After süresini bekleyin, ardından yeniden deneyin |
| 500 | Evet | Üstel geri çekilme ile yeniden deneyin (maksimum 3 deneme) |
| 503 | Evet | Üstel geri çekilme ile yeniden deneyin (maksimum 5 deneme) |
Hız Sınırı Başlıklarını Okuma
Çoğu yanıt X-RateLimit-Limit ve X-RateLimit-Remaining içerir:
| Başlık | Açıklama |
|---|---|
X-RateLimit-Limit | Mevcut pencerede izin verilen maksimum istek sayısı |
X-RateLimit-Remaining | Mevcut pencerede kalan istek sayısı |
IP tabanlı bir 429 ayrıca şunu ekler:
| Başlık | Açıklama |
|---|---|
X-RateLimit-Reset | Mevcut pencerenin sıfırlandığı ISO-8601 UTC zaman damgası (yalnızca IP hız sınırı yanıtlarında) |
Retry-After | Yeniden denemeden önce beklenecek saniye sayısı |
Sonraki Adımlar
- Hız Sınırları: ayrıntılı hız sınırı kademeleri ve en iyi uygulamalar
- Kimlik Doğrulama: token ve API key yönetimi
- Değişiklik Günlüğü: API değişikliklerini takip edin