التحقق الجماعي
تحقق من صحة ما يصل إلى 100 عنوان بريد إلكتروني في طلب واحد
المصادقة
أدرج مفتاح API الخاص بك في ترويسة X-API-Key:
X-API-Key: ml_pv_Ab3Kx9mN2pQ7rT4wL8yD...يجب أن يكون الاعتماد اعتماد منتج Validation مع تفعيل قناة Api.
التحقق من دفعة
POST https://api.mail.land/v1/validation/batch{
"emails": [
"[email protected]",
"[email protected]",
"invalid@",
"[email protected]",
"[email protected]"
],
"verify_smtp": true
}| الحقل | النوع | الافتراضي | الوصف |
|---|---|---|---|
emails | array | - | عناوين البريد الإلكتروني للتحقق منها (مطلوب، بحد أقصى 100) |
verify_smtp | bool | true | إجراء التحقق من صندوق البريد عبر SMTP |
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
}'الاستجابة
{
"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"
}
]
}حقول الاستجابة
| الحقل | النوع | الوصف |
|---|---|---|
total_count | int | عناوين البريد الإلكتروني الفريدة في الطلب. تُزال التكرارات المطابقة تمامًا (حساسة لحالة الأحرف) قبل المعالجة وتُتحقق مرة واحدة فقط، لذا قد يكون هذا الرقم أقل من عدد العناوين المُرسَلة. |
processed_count | int | عناوين البريد الإلكتروني التي تمت معالجتها |
successful_count | int | عمليات التحقق التي اكتملت بدون أخطاء |
credits_consumed | int | الأرصدة المخصومة (عمليات التحقق المدفوعة) |
free_validations | int | عمليات التحقق المجانية (نطاقات مؤقتة، أخطاء إملائية، أخطاء SMTP) |
results | array | عنصر واحد لكل عنوان فريد، بترتيب أول ظهور له. طابق النتائج مع مدخلاتك عبر حقل email، وليس عبر الموضع: التكرارات في طلبك لن يكون لها عنصر مقابل. |
كل عنصر في results له نفس بنية استجابة التحقق الفردي.
استهلاك الأرصدة
يتم التحقق من الأرصدة قبل معالجة الدفعة. إذا لم يكن لديك أرصدة كافية للدفعة بأكملها، يتم رفض الطلب بالحالة 402.
داخل الدفعة، تُطبَّق عمليات التحقق المجانية وفقاً لنفس القواعد المستخدمة في التحقق الفردي:
- النطاقات المؤقتة: مجاني
- الأخطاء الإملائية عالية الثقة (90%+)، مجاني
- أخطاء اتصال SMTP: مجاني
توضح الاستجابة التوزيع الدقيق: credits_consumed (مُحاسَب) + free_validations (غير مُحاسَب) = processed_count.
المعالجة المتزامنة
تُنفَّذ عمليات التحقق الجماعي بمعالجة 10 عناوين بريد إلكتروني متزامنة ضمن طلب واحد. هذا يوازن بين الإنتاجية وحدود معدل خوادم SMTP. تُعاد النتائج بنفس ترتيب مصفوفة الإدخال بغض النظر عن ترتيب المعالجة.
للقوائم التي تزيد عن 100 بريد إلكتروني، قسّمها إلى عدة طلبات دفعات. ينطبق حد المعالجة المتزامنة على كل طلب: يمكنك تشغيل عدة طلبات دفعات بالتوازي من خادمك.
سجل التحقق
يتم تسجيل جميع عمليات التحقق (الفردية والجماعية) في سجل التحقق الخاص بك:
GET https://api.mail.land/v1/validation/history| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
cursor | string | - | مؤشر معتم من nextCursor للصفحة السابقة. احذفه للصفحة الأولى. |
limit | int | 20 | عدد العناصر في الصفحة (بحد أقصى 100) |
result | string | - | تصفية: Deliverable أو Risky أو Unknown أو Undeliverable أو Invalid |
from | datetime | - | تاريخ البداية |
to | datetime | - | تاريخ النهاية |
search | string | - | البحث بعنوان البريد الإلكتروني |
{
"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
}يتم إخفاء عناوين البريد الإلكتروني جزئياً في السجل لحماية الخصوصية (مثال: u***@example.com).
إحصائيات التحقق
احصل على إحصائيات مجمّعة لاستخدام التحقق الخاص بك:
GET https://api.mail.land/v1/validation/stats| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
from | datetime | - | تاريخ البداية |
to | datetime | - | تاريخ النهاية |
{
"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
}الحدود
| الحد | القيمة |
|---|---|
| الحد الأقصى لعناوين البريد في الدفعة | 100 |
| عمليات التحقق المتزامنة لكل دفعة | 10 |
| مهلة SMTP لكل بريد إلكتروني | 30 ثانية |
| الحد الأقصى لطول البريد الإلكتروني | 320 حرفاً |
استجابات الأخطاء
| الحالة | الكود | الوصف |
|---|---|---|
400 | INVALID_REQUEST | يجب توفير عنوان بريد إلكتروني واحد على الأقل |
400 | CONTENT_TOO_LARGE | الدفعة تتجاوز 100 بريد إلكتروني |
402 | INSUFFICIENT_CREDITS | أرصدة غير كافية للدفعة |
أفضل الممارسات
- تحقق قبل الاستيراد: قم بتشغيل التحقق الجماعي على قوائم المشتركين الجديدة قبل استيرادها لتجنب ارتفاع معدلات الارتداد.
- صفّي حسب النتيجة: استورد فقط عناوين
Deliverable. تعامل مع عناوينRiskyبحذر وتجنبUndeliverableتماماً. - تحقق من اقتراحات الأخطاء الإملائية: عندما تكون قيمة
syntax.has_typoهيtrue، اعرضsyntax.suggestionعلى المستخدم للتأكيد قبل الإرسال. - استخدمه أثناء التسجيل: تحقق من عناوين البريد الإلكتروني في عملية التسجيل باستخدام التحقق الفردي لمنع العناوين غير الصالحة من الدخول إلى نظامك.
- راقب استهلاك الأرصدة: تحقق من
/validation/creditsلتتبع الاستهلاك والتخطيط للترقيات قبل الوصول إلى حد حصتك.
الخطوات التالية
- التحقق من بريد إلكتروني واحد: التحقق في الوقت الفعلي للعناوين الفردية
- قوائم المنع: إدارة قوائم المنع
- تسخين عناوين IP: تسخين النطاقات بقوائم نظيفة ومُتحقق منها