Toplu Dogrulama
Tek bir istekte 100'e kadar e-posta adresini dogrulayin
Kimlik Dogrulama
API anahtarinizi X-API-Key basligina ekleyin:
X-API-Key: ml_pv_Ab3Kx9mN2pQ7rT4wL8yD...Kimlik bilgisi, Api kanali etkinlestirilmis bir Validation urun kimlik bilgisi olmalidir.
Bir Toplu Islemi Dogrulama
POST https://api.mail.land/v1/validation/batch{
"emails": [
"[email protected]",
"[email protected]",
"invalid@",
"[email protected]",
"[email protected]"
],
"verify_smtp": true
}| Alan | Tip | Varsayilan | Aciklama |
|---|---|---|---|
emails | array | - | Dogrulanacak e-posta adresleri (zorunlu, maksimum 100) |
verify_smtp | bool | true | SMTP posta kutusu dogrulamasi yap |
curl -X POST https://api.mail.land/v1/validation/batch \
-H "X-API-Key: ml_pv_Ab3Kx9mN2pQ7rT4wL8yD..." \
-H "Content-Type: application/json" \
-d '{
"emails": ["[email protected]", "[email protected]", "[email protected]"],
"verify_smtp": true
}'Yanit
{
"total_count": 5,
"processed_count": 5,
"successful_count": 5,
"credits_consumed": 4,
"free_validations": 1,
"results": [
{
"email": "[email protected]",
"result": "Deliverable",
"score": 95,
"syntax": { "is_valid": true, "has_typo": false },
"disposable": { "is_disposable": false },
"role": { "is_role_account": false },
"mx": { "has_mx": true, "records": ["mx.example.com"], "accepts_mail": true },
"smtp": { "can_connect": true, "is_deliverable": true, "is_catch_all": false, "reachability": "safe" },
"provider": { "name": "Unknown", "type": "unknown" },
"cached": false,
"verified_at": "2026-02-17T12:34:56Z"
},
{
"email": "[email protected]",
"result": "Deliverable",
"score": 95,
"syntax": { "is_valid": true, "has_typo": false },
"disposable": { "is_disposable": false },
"role": { "is_role_account": false },
"mx": { "has_mx": true, "records": ["gmail-smtp-in.l.google.com"], "accepts_mail": true },
"smtp": { "can_connect": true, "is_deliverable": true, "is_catch_all": false, "reachability": "safe" },
"provider": { "name": "Gmail", "type": "consumer" },
"cached": false,
"verified_at": "2026-02-17T12:34:56Z"
},
{
"email": "invalid@",
"result": "Undeliverable",
"score": 0,
"syntax": { "is_valid": false, "has_typo": false },
"disposable": { "is_disposable": false },
"role": { "is_role_account": false },
"mx": { "has_mx": false, "records": [], "accepts_mail": false },
"smtp": null,
"provider": { "name": "Unknown", "type": "unknown" },
"cached": false,
"verified_at": "2026-02-17T12:34:56Z"
},
{
"email": "[email protected]",
"result": "Undeliverable",
"score": 10,
"syntax": { "is_valid": true, "has_typo": false },
"disposable": { "is_disposable": true },
"role": { "is_role_account": false },
"mx": { "has_mx": true, "records": ["mx.tempmail.org"], "accepts_mail": true },
"smtp": null,
"provider": { "name": "Unknown", "type": "unknown" },
"cached": false,
"verified_at": "2026-02-17T12:34:56Z"
},
{
"email": "[email protected]",
"result": "Deliverable",
"score": 85,
"syntax": { "is_valid": true, "has_typo": false },
"disposable": { "is_disposable": false },
"role": { "is_role_account": true },
"mx": { "has_mx": true, "records": ["mx.company.com"], "accepts_mail": true },
"smtp": { "can_connect": true, "is_deliverable": true, "is_catch_all": false, "reachability": "safe" },
"provider": { "name": "Unknown", "type": "unknown" },
"cached": false,
"verified_at": "2026-02-17T12:34:56Z"
}
]
}Yanit Alanlari
| Alan | Tip | Aciklama |
|---|---|---|
total_count | int | Istekteki benzersiz adres sayisi. Tam ve buyuk/kucuk harfe duyarli tekrarlar islenmeden once tekillestirilir ve yalnizca bir kez dogrulanir, bu yuzden bu sayi gonderdiginiz e-posta sayisindan dusuk olabilir. |
processed_count | int | Islenen e-posta sayisi |
successful_count | int | Hatasiz tamamlanan dogrulama sayisi |
credits_consumed | int | Dusurelen kredi (ucretli dogrulamalar) |
free_validations | int | Ucretsiz dogrulamalar (tek kullanimlik, yazim hatasi, SMTP hatalari) |
results | array | Her benzersiz adres icin, ilk gorunme sirasina gore bir oge. Sonuclari girisinizle eslestirmek icin konum degil email alanini kullanin: isteginizdeki tekrarlarin karsilik gelen bir ogesi olmaz. |
results dizisindeki her oge, tekli dogrulama yaniti ile ayni yapidadir.
Kredi Tuketimi
Krediler toplu islem islenmeden once kontrol edilir. Tum toplu islem icin yeterli krediniz yoksa istek 402 ile reddedilir.
Toplu islem icinde ucretsiz dogrulamalar, tekli dogrulama ile ayni kurallara tabidir:
- Tek kullanimlik alan adlari: ucretsiz
- Yuksek guvenilirlikli yazim hatalari (%90+), ucretsiz
- SMTP baglanti hatalari: ucretsiz
Yanit tam dokumu gosterir: credits_consumed (faturalandirilan) + free_validations (faturalandirilmayan) = processed_count.
Es Zamanlilik
Toplu dogrulamalar tek bir istek icinde 10'a kadar e-postayi es zamanli olarak calistirir. Bu, verimlilik ile SMTP sunucu hiz sinirlari arasinda denge kurar. Sonuclar, isleme sirasindan bagimsiz olarak giris dizisiyle ayni sirada dondurulur.
100'den fazla e-posta iceren listeler icin bunlari birden fazla toplu istege bolun. Es zamanlilik siniri istek basina uygulanir: sunucunuzdan birden fazla toplu istegi paralel olarak calistirabilirsiniz.
Dogrulama Gecmisi
Tum dogrulamalar (tekli ve toplu) dogrulama gecmisinize kaydedilir:
GET https://api.mail.land/v1/validation/history| Parametre | Tip | Varsayilan | Aciklama |
|---|---|---|---|
cursor | string | - | Önceki sayfanın nextCursor değerinden alınan opak imleç. İlk sayfa için belirtmeyin. |
limit | int | 20 | Sayfa basina oge sayisi (maksimum 100) |
result | string | - | Filtre: Deliverable, Risky, Unknown, Undeliverable, Invalid |
from | datetime | - | Baslangic tarihi |
to | datetime | - | Bitis tarihi |
search | string | - | E-posta adresine gore arama |
{
"items": [
{
"email": "u***@example.com",
"result": "Deliverable",
"score": 95,
"is_disposable": false,
"is_role_account": false,
"has_valid_mx": true,
"smtp_deliverable": true,
"provider": "Unknown",
"was_cached": false,
"smtp_verified": true,
"credit_consumed": true,
"verified_at": "2026-02-17T12:34:56Z"
}
],
"nextCursor": "eyJ2IjoxLCJzIjoidmFsaWRhdGlvbjp2ZXJpZmllZGF0OmRlc2MiLCJrIjoi...",
"hasMore": true
}Gecmisteki e-posta adresleri gizlilik icin kismi olarak maskelenir (ornegin, u***@example.com).
Dogrulama Istatistikleri
Dogrulama kullaniminiz icin toplu istatistikleri alin:
GET https://api.mail.land/v1/validation/stats| Parametre | Tip | Varsayilan | Aciklama |
|---|---|---|---|
from | datetime | - | Baslangic tarihi |
to | datetime | - | Bitis tarihi |
{
"total_validations": 450,
"deliverable": 320,
"risky": 65,
"undeliverable": 50,
"unknown": 15,
"deliverable_rate": 71.11,
"risky_rate": 14.44,
"undeliverable_rate": 11.11,
"unknown_rate": 3.33,
"credits_consumed": 380,
"free_validations": 70
}Sinirlar
| Sinir | Deger |
|---|---|
| Toplu islem basina maksimum e-posta | 100 |
| Toplu islem basina es zamanli dogrulama | 10 |
| E-posta basina SMTP zaman asimi | 30 saniye |
| Maksimum e-posta uzunlugu | 320 karakter |
Hata Yanitlari
| Durum | Kod | Aciklama |
|---|---|---|
400 | INVALID_REQUEST | En az bir e-posta gereklidir |
400 | CONTENT_TOO_LARGE | Toplu islem 100 e-postayi asiyor |
402 | INSUFFICIENT_CREDITS | Toplu islem icin yeterli kredi yok |
En Iyi Uygulamalar
- Iceri aktarmadan once dogrulayin: geri donus artislarini onlemek icin yeni abone listelerini iceri aktarmadan once toplu dogrulama yapin.
- Sonuca gore filtreleyin: yalnizca
Deliverablee-postalari iceri aktarin.Riskye-postalara dikkatle yaklasipUndeliverablee-postalardan tamamen kacinin. - Yazim hatasi onerilerini kontrol edin:
syntax.has_typodegeritrueoldugunda, gondermeden once onay icin kullaniciyasyntax.suggestiondegerini sunun. - Kayit sirasinda kullanin: kotu adreslerin sisteminize girmesini onlemek icin kayit akisinizda tekli dogrulama ile e-postalari dogrulayin.
- Kredi kullanimini izleyin: tuketimi takip etmek ve kota sinirini asmadan once yukseltme planlamak icin
/validation/creditskontrol edin.
Sonraki Adimlar
- Tekli E-posta Dogrulamasi: bireysel adresler icin gercek zamanli dogrulama
- Bastirilmislar: bastirma listelerini yonetin
- IP Isitma: temiz, dogrulanmis listelerle alan adlarini isitma