مرجع REST API لأداة Email Verifier
مرجع Email Verifier REST API الكامل للمصادقة والنطاقات و8 نقاط نهاية والرصيد والمهام المجمعة والتقسيم إلى صفحات وتصدير CSV والأخطاء.
تفاصيل المقال
النوع والصعوبة والخطط ومعلومات آخر تحديث.
▼
تفاصيل المقال
النوع والصعوبة والخطط ومعلومات آخر تحديث.
- النوع
- مرجع
- الصعوبة
- متوسط
- الخطط
- Nano · Starter · Pro · Agency
- آخر تحديث
- 10 سبتمبر 2026
تتوفر API لأداة Email Verifier ضمن /api/v1. استخدم مضيف TrekMail الذي يستخدمه حسابك لتسجيل الدخول. تستخدم الأمثلة أدناه https://YOUR-TREKMAIL-HOST كقيمة نائبة.
المصادقة والنطاقات
مرر رمز API في ترويسة Authorization:
Authorization: Bearer YOUR_API_TOKEN
فعّل النطاقات عند إنشاء الرمز:
| النطاق | مطلوب من أجل |
|---|---|
verify:read |
الرصيد وقوائم المهام وحالة المهمة والتنزيلات. |
verify:write |
الفحوصات الفردية والإرسال المجمع والإلغاء والحذف. |
امنح العميل كلا النطاقين إذا كان يجب أن يرسل العمل ثم يقرأ النتيجة أو ينزلها.
المضيف وتنسيق الطلب
تستخدم كل الأمثلة أجسام طلب JSON ورمز Bearer. أداة رفع الملفات في لوحة التحكم منفصلة عن API: تقبل POST /verify/bulk مصفوفة JSON باسم emails، وليس ملف multipart. استخدم المضيف المطابق للحساب والرمز بالضبط. لا تفترض أن رمزًا أو رصيدًا من مضيف ذي علامة تجارية يعمل على مضيف آخر.
أرسل Content-Type: application/json مع طلبات POST /verify وPOST /verify/bulk. خزّن الرمز وقيمة منع التكرار خارج التعليمات البرمجية من جانب العميل.
منع التكرار
تتطلب POST /api/v1/verify/bulk وDELETE /api/v1/verify/bulk/{jobId} ترويسة Idempotency-Key. أنشئ قيمة جديدة لكل عملية مقصودة، ولا تعد استخدامها إلا عند إعادة محاولة العملية نفسها.
Idempotency-Key: 58dfa0de-96eb-4521-a0f9-2e5eac6721ee
لا يتطلب التحقق الفردي وإلغاء المهمة هذه الترويسة. كما يُحمى الطلب المجمع بكشف القائمة المكررة للقائمة الموحّدة والوضع نفسيهما خلال 24 ساعة، لكن مفتاح منع التكرار يظل آلية إعادة المحاولة الصحيحة.
التعامل مع نتيجة شبكة غير مؤكدة
إذا فقد تطبيقك استجابة طلب مجمع، فلا تنشئ مفتاحًا جديدًا ولا ترسل قائمة أخرى. كرر الطلب المطابق بالمفتاح نفسه. خزّن المفتاح مع معرّف القائمة المصدر إلى أن يعيد TrekMail معرّف مهمة. بذلك تظل إعادة المحاولة مرتبطة بالعملية الأصلية المقصودة بدلًا من إنشاء خصم ثانٍ يمكن تجنبه.
ملخص نقاط النهاية
| الطريقة والمسار | النطاق | الغرض |
|---|---|---|
GET /verify/credits |
verify:read |
قراءة الرصيد المتاح. |
POST /verify |
verify:write |
التحقق من عنوان واحد فورًا. |
POST /verify/bulk |
verify:write |
إنشاء مهمة مجمعة غير متزامنة. |
GET /verify/bulk/{jobId} |
verify:read |
قراءة تقدم المهمة والنتائج المتاحة. |
GET /verify/bulk/{jobId}/download |
verify:read |
تنزيل ملف تصدير CSV. |
GET /verify/bulk |
verify:read |
عرض قائمة المهام. |
POST /verify/bulk/{jobId}/cancel |
verify:write |
إلغاء مهمة معلقة أو قيد التشغيل. |
DELETE /verify/bulk/{jobId} |
verify:write |
حذف مهمة غير قيد التشغيل نهائيًا. |
أضف /api/v1 في بداية كل مسار في هذا الجدول.
قراءة رصيد التحقق
GET /api/v1/verify/credits
على مضيف TrekMail القياسي، تتضمن الاستجابة حصة الخطة والرصيد المشترى:
{
"monthly_limit": 300,
"monthly_used": 120,
"monthly_remaining": 180,
"purchased_balance": 5000,
"total_available": 5180,
"plan": "pro",
"trialing": false,
"resets_at": "2026-10-01T00:00:00+00:00"
}
على مضيف White Label، لا يتوفر للمنتج ذي العلامة التجارية سوى الرصيد المشترى، لذلك تحتوي الاستجابة على purchased_balance وtotal_available.
مثال للطلب:
curl https://YOUR-TREKMAIL-HOST/api/v1/verify/credits \
-H "Authorization: Bearer YOUR_API_TOKEN"
اقرأ الرصيد مباشرة قبل إرسال طلب كبير. استجابة الرصيد لقطة لحظية، لذا يجب على التطبيق الذي يرسل عدة مهام تسجيل المبلغ المخصوم في كل استجابة مجمعة بدلًا من حسابه لاحقًا من رقم قديم.
حقول الرصيد
| الحقل | المعنى |
|---|---|
monthly_limit |
حصة الخطة لفترة إعادة التعيين الحالية. |
monthly_used |
الرصيد المنفق بالفعل من تلك الحصة. |
monthly_remaining |
الحصة التي ما زالت متاحة قبل الحاجة إلى الرصيد المشترى. |
purchased_balance |
الرصيد المشترى بشكل منفصل ولم يُنفق بعد. |
total_available |
المقدار القابل للإنفاق على المهمة التالية في هذا المضيف. |
resets_at |
وقت إعادة التعيين التالي المعروف عندما يكون متاحًا. |
تحتوي استجابات رصيد White Label على حقول أقل عمدًا لأن المنتج ذي العلامة التجارية يستخدم الرصيد المشترى فقط.
التحقق من عنوان واحد
POST /api/v1/verify
{
"email": "person@example.com",
"mode": "quick"
}
| الحقل | مطلوب | الملاحظات |
|---|---|---|
email |
نعم | عنوان بريد إلكتروني واحد، حتى 320 حرفًا. |
mode |
لا | quick هو الافتراضي، ويُقبل deep عندما يتوفر Deep. |
تتضمن الاستجابة email وstatus وtrust_score وchecks وprovider وrisk_factors وcredits_remaining. على المضيف القياسي، تحتوي credits_remaining على قيمتَي monthly وpurchased. قد يختلف الشكل التفصيلي لـchecks حسب الوضع وما يتيحه موفر الاستقبال.
يكلف Quick رصيدًا واحدًا. يكلف Deep عادة رصيدين، بينما تُحسب الاستثناءات الخاصة بالموفر برصيد واحد. إذا تعذر تشغيل التحقق بعد الخصم، يعيد طلب العنوان الفردي ذلك الخصم ويرجع استجابة عدم توفر مؤقت.
مثال للطلب:
curl -X POST https://YOUR-TREKMAIL-HOST/api/v1/verify \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"email":"person@example.com","mode":"quick"}'
استخدم status وtrust_score وprovider وrisk_factors ذات المستوى الأعلى كعقد التطبيق المعتاد. تتضمن checks أدلة مساندة مفيدة، لكن قد تختلف المفاتيح الفردية عند تخطي فحص سابق أو عدم توفره أو حصول Deep على معلومات إضافية.
تفسير النتيجة الفردية
| الحقل | استخدامه |
|---|---|
email |
مطابقة النتيجة مع الإدخال الموحّد الذي خزّنه تطبيقك. |
status |
وضع العنوان في مسار المراجعة أو الحملة. |
trust_score |
ترتيب العمل أو تحديد أولويته ضمن حالة، وليس بديلًا للموافقة. |
provider |
توضيح النطاق الذي أخذته أداة التحقق في الاعتبار. |
risk_factors |
عرض سبب موجز للمراجعة على المشغّل. |
checks |
عرض تفاصيل مساندة عندما يحتاج المشغّل إلى فهم النتيجة. |
لا تجعل التطبيق يعامل الاستجابة البعيدة المقبولة كفحص للملكية أو الإذن. أبقِ قرارات الاشتراك وإلغاء الاشتراك وتفضيلات الاتصال منفصلة.
إنشاء مهمة مجمعة
POST /api/v1/verify/bulk
{
"emails": ["first@example.com", "second@example.net"],
"name": "September contacts",
"mode": "deep"
}
| الحقل | مطلوب | الملاحظات |
|---|---|---|
emails |
نعم | مصفوفة تضم حتى 50,000 إدخال مرسل. تُستبعد الإدخالات غير الصالحة نحويًا ويُبلغ عنها. |
name |
لا | تسمية يصل طولها إلى 255 حرفًا. |
mode |
لا | quick افتراضيًا، أو deep عندما يتوفر. |
تُوحّد التكرارات قبل التسعير. تعيد المهمة الجديدة الناجحة 201 مع:
{
"job_id": 42,
"total": 2,
"status": "pending",
"rejected_count": 0,
"rejected_sample": [],
"credits_charged": 4,
"breakdown": {"probe": 2, "skip": 0, "deep_savings": 0}
}
توضح probe وskip حساب سعر Deep. تمثل deep_savings الفرق عن تحصيل سعر Deep الكامل لكل عنوان مرسل. تعيد القائمة المكررة job_id والحالة الموجودين بدلًا من بدء مهمة أخرى.
مثال للطلب:
curl -X POST https://YOUR-TREKMAIL-HOST/api/v1/verify/bulk \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 58dfa0de-96eb-4521-a0f9-2e5eac6721ee" \
-d '{"name":"September contacts","mode":"deep","emails":["first@example.com","second@example.net"]}'
تختبر API القيم المرسلة للتأكد من صحة بنية البريد قبل قبول المهمة. إذا رُفضت كل الإدخالات، تعيد 422 ولا تنشئ مهمة. إذا رُفض بعضها، تعرض الاستجابة الناجحة rejected_count وما يصل إلى خمس قيم في rejected_sample. لا تعتمد على تلك العينة الصغيرة كتقرير تنظيف كامل للبيانات، بل احتفظ بنتيجة التحقق من المصدر في أداة الاستيراد لديك.
قائمة تحقق للإرسال المجمع
- اقرأ المصدر ووحّده في تطبيقك.
- اجعل الطلب في حدود 50,000 إدخال مرسل.
- أنشئ مفتاح منع التكرار وخزّنه قبل الطلب.
- اختر اسمًا للمهمة يتيح للمشغّل التعرف عليها لاحقًا.
- خزّن
job_idوcredits_chargedوتفصيل السعر الذي يعيده TrekMail. - استعلم دوريًا عن
job_idالمخزّن، ولا تستنتج الاكتمال من طلب HTTP الأصلي.
قراءة مهمة
GET /api/v1/verify/bulk/{jobId}
تتضمن الاستجابة الأساسية job_id وname وstatus وtotal وprocessed وprogress وsummary وcreated_at وcompleted_at.
عندما تتوفر نتائج لمهمة مكتملة أو جزئية أو فاشلة، تتضمن الاستجابة أيضًا:
{
"results": [
{
"email": "person@example.com",
"status": "valid",
"trust_score": 82,
"checks": {},
"provider": "example.com",
"risk_factors": ["no_dmarc"]
}
],
"pagination": {"page": 1, "per_page": 100, "total": 1, "last_page": 1}
}
معلمات الاستعلام الاختيارية:
| المعلمة | الملاحظات |
|---|---|
page |
رقم صفحة النتائج. |
per_page |
من 1 إلى 500، والقيمة الافتراضية 100. |
status |
pending أوqueued أوsafe أوvalid أوrisky أوinvalid أوunknown. |
search |
بحث حرفي جزئي في البريد، حتى 320 حرفًا. |
يمكن تنزيل مهمة ملغاة تتضمن صفوفًا معالجة، لكن استخدم نقطة نهاية التنزيل لتصديرها.
قراءة حالات المهمة دون تخمين
| الحالة | معناها لعميل API |
|---|---|
pending |
قُبلت المهمة وتنتظر المعالجة. |
processing |
العمل قيد التشغيل. استخدم processed وprogress لتحديث المستخدم. |
completed |
اكتملت المهمة بالكامل. اقرأ النتائج أو نزّل CSV. |
partial |
اكتملت مجموعة فرعية. راجعها كمجموعة فرعية لا كنتيجة للقائمة كاملة. |
cancelled |
أُوقفت المهمة. قد تظل الصفوف المعالجة قابلة للتنزيل. |
failed |
تعذر إكمال المهمة. اقرأ الحالة وسياق الخطأ قبل إعادة المحاولة. |
ينبغي لعميل API الاستعلام دوريًا مع زيادة وقت الانتظار. لا ترسل مهمة مجمعة جديدة لمجرد أن المهمة الحالية ما زالت معلقة أو لأن مهلة طلب شبكة انتهت محليًا.
مثال لاستجابة الحالة
{
"job_id": 42,
"name": "September contacts",
"status": "processing",
"total": 1500,
"processed": 400,
"progress": 27,
"summary": {"safe": 220, "valid": 105, "risky": 55, "invalid": 20},
"created_at": "2026-09-04T13:15:00+00:00",
"completed_at": null
}
يمكن أن تتسع summary مع اكتمال العمل. استخدم processed وtotal لعرض التقدم بدلًا من جمع الفئات التي يتعرف عليها تطبيقك حاليًا فقط.
تنزيل مهمة
GET /api/v1/verify/bulk/{jobId}/download
يتوفر التنزيل للمهام المكتملة أو الجزئية أو الملغاة التي تتضمن صفوفًا معالجة. وهو يبث CSV بأعمدة Email وStatus وTrust Score وProvider وRisk Factors.
| معلمة الاستعلام | القيم المسموحة |
|---|---|
filter |
all (الافتراضي) وsafe وsafe_risky (Safe + Valid + Risky). |
مثال:
curl -o september-results.csv \
"https://YOUR-TREKMAIL-HOST/api/v1/verify/bulk/42/download?filter=safe_risky" \
-H "Authorization: Bearer YOUR_API_TOKEN"
احفظ الملف المنزّل خلال مدة الاحتفاظ بالنتائج البالغة 15 يومًا. CSV ملف تصدير لمسار عملك، ولا يغيّر الموافقة أو الاشتراكات أو سجلات جهات الاتصال في نظام آخر.
تعيد نقطة نهاية التنزيل تعارضًا عندما لا يتوفر تصدير معالج. افحص حالة المهمة أولًا. يبث الطلب الناجح CSV بدلًا من إعادته داخل JSON، لذا تعامل معه كاستجابة ملف في عميل HTTP.
عرض قائمة المهام
GET /api/v1/verify/bulk
استخدم page وper_page وstatus الاختيارية. القيمة الافتراضية لـper_page هي 20 وتقبل من 1 إلى 100. حالات المهمة هي pending وprocessing وcompleted وpartial وcancelled وfailed.
تحتوي الاستجابة على مصفوفة jobs وكائن pagination. يتضمن كل سجل معرّفه واسمه وحالته والإجمالي والعدد المعالج والتقدم والطوابع الزمنية.
مثال:
curl "https://YOUR-TREKMAIL-HOST/api/v1/verify/bulk?status=processing&per_page=20" \
-H "Authorization: Bearer YOUR_API_TOKEN"
استخدم نقطة نهاية القائمة عند إعادة تشغيل العامل أو عندما تحتاج إلى مطابقة معرّفات المهام. لا تعامل اسم المهمة كمعرّف فريد، بل خزّن job_id الرقمي المعاد.
شكل استجابة قائمة المهام
{
"jobs": [
{
"job_id": 42,
"name": "September contacts",
"status": "completed",
"total": 1500,
"processed": 1500,
"progress": 100,
"created_at": "2026-09-04T13:15:00+00:00",
"completed_at": "2026-09-04T13:28:00+00:00"
}
],
"pagination": {"page": 1, "per_page": 20, "total": 1, "last_page": 1}
}
استخدم معلمة الاستعلام status عندما تحتاج صفحة العمليات إلى العمل النشط فقط أو المكتمل فقط. التقسيم إلى صفحات مهم للحسابات التي تتحقق من قوائم كثيرة، فلا تفترض أن استجابة واحدة تتضمن السجل الكامل.
إلغاء مهمة
POST /api/v1/verify/bulk/{jobId}/cancel
ألغِ العمل المعلق أو قيد التشغيل فقط. الاستجابة الناجحة هي:
{"status":"cancelled","credits_refunded":40}
تخص إعادة الرصيد العمل غير المعالج. إذا وصلت المهمة إلى حالة نهائية قبل وصول الإلغاء، تعيد API تعارضًا بدلًا من تغيير نتيجتها.
curl -X POST https://YOUR-TREKMAIL-HOST/api/v1/verify/bulk/42/cancel \
-H "Authorization: Bearer YOUR_API_TOKEN"
لا يؤدي الإلغاء إلى حذف المهمة. نزّل الصفوف المعالجة إن لزم أو احذف السجل المكتمل بعد ذلك.
حذف مهمة
DELETE /api/v1/verify/bulk/{jobId}
ألغِ المهمة قيد التشغيل أولًا. يزيل الحذف المهمة ونتائجها نهائيًا بعد أن يزيل TrekMail القائمة المصدر المرحلية بأمان. الاستجابة الناجحة هي:
{"deleted":true}
curl -X DELETE https://YOUR-TREKMAIL-HOST/api/v1/verify/bulk/42 \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Idempotency-Key: 843ef0c5-4dc0-4c09-bacd-5bd0fe87e847"
هذه العملية نهائية لسجل أداة التحقق. وهي لا تسحب ملفات CSV التي نزّلها تطبيقك بالفعل، لذا طبّق عملية الاحتفاظ الخاصة بك على تلك النسخ.
ترتيب الحذف
- اقرأ حالة المهمة.
- ألغها إذا كانت معلقة أو قيد المعالجة.
- احفظ أي تصدير معالج يجب الاحتفاظ به.
- احذف مهمة التحقق غير قيد التشغيل باستخدام مفتاح منع التكرار.
- أزل النسخ التي يحتفظ بها نظامك وفق قواعد الخصوصية والاحتفاظ لديه.
الأخطاء وإعادة المحاولة
| الحالة | السبب المعتاد | ما ينبغي فعله |
|---|---|---|
| 402 | الرصيد غير كافٍ. | أضف رصيدًا أو قلل حجم المهمة. |
| 404 | المهمة غير موجودة أو لا تنتمي إلى هذا الحساب. | تحقق من المعرّف وحساب الرمز. |
| 409 | لا يمكن تنزيل المهمة أو إلغاؤها أو حذفها في حالتها الحالية. | اقرأ حالتها واتخذ الخطوة التالية المشار إليها. |
| 422 | إدخال غير صالح أو Deep غير متوفر أو مفتاح منع التكرار مفقود حيث يكون مطلوبًا. | صحح الطلب. |
| 429 | بلوغ حد معدل الطلبات. | أعد المحاولة لاحقًا مع زيادة وقت الانتظار. |
| 503 | فشل مؤقت في التحقق. | أعد المحاولة لاحقًا. |
حد مسار التحقق الفردي هو 60 طلبًا في الدقيقة، وحد مسار الإرسال المجمع 10 طلبات في الدقيقة. أنشئ منطق إعادة محاولة يزيد وقت الانتظار، واحتفظ بالمفتاح نفسه لإعادة محاولة طلب مجمع، ولا تعد محاولة طلب دون تحقق بعد نتيجة شبكة مجهولة.
نمط آمن لإعادة المحاولة
- أنشئ مفتاح منع تكرار واحدًا وخزّنه قبل الإرسال المجمع.
- أرسل الطلب بذلك المفتاح.
- إذا فُقدت الاستجابة، فأعد الطلب المطابق بالمفتاح نفسه.
- خزّن
job_idالمعاد وتوقف عن إنشاء عمليات إرسال جديدة لتلك القائمة المصدر. - استعلم عن المهمة حتى تصل إلى حالة نهائية، ثم نزّل نتيجتها أو عالجها.
في التحقق الفردي، تعني 503 المؤقتة أن الخدمة لم تتمكن من إكمال الفحص. أعد المحاولة لاحقًا مع زيادة وقت الانتظار المعتادة. لا تحوّل تلك الاستجابة إلى نتيجة Invalid في قاعدة بياناتك.
الحفاظ على أمان بيانات جهات الاتصال
قوائم البريد بيانات شخصية في سياقات كثيرة. أرسل البيانات اللازمة للتحقق فقط، واقصر الوصول إلى الرمز على النظام الذي ينفذ المهمة، وتجنب تسجيل مصفوفات العناوين الكاملة في سجلات التطبيق. عند الحاجة إلى التسجيل، خزّن معرّف المهمة والعدد والتوقيت والنتيجة العامة بدلًا من القائمة الكاملة.
يحتفظ TrekMail بالنتائج لمدة 15 يومًا. خطط لتخزين التصدير الآمن أو لمسار الحذف قبل دمج القوائم ذات الحجم الكبير.
لا تثبت مؤشرات التحقق ملكية الشخص أو موافقته أو التسليم المستقبلي. أبقِ معالجة الأذونات والمنع في تطبيقك حتى عندما يحصل العنوان على Safe.
مقالات ذات صلة
انتقل إلى الأدلة القريبة التي تُكمل سير العمل.