المطورون
واجهة API للتحقق من البريد الإلكتروني تعمل ببساطة
تحقق من عنوان واحد في الوقت الفعلي، أو أرسل قائمة كاملة كدفعة. تستخدم جميع الطلبات HTTPS وتُرجع JSON. أنشئ مفاتيح API من لوحة التحكم ضمن مفاتيح API.
- REST وJSON
- استدعاءات الدفعات
- الرصيد نفسه المستخدم في لوحة التحكم
المصادقة
أرسل مفتاح API بوصفه رمز bearer في ترويسة Authorization مع كل طلب. احتفظ بالمفاتيح على خادمك. لا تضعها أبدًا في كود المتصفح أو تطبيقات الجوال.
Authorization: Bearer YOUR_API_KEY
عنوان URL الأساسي لكل نقطة نهاية هو https://bouncebell.com/api/v1.
تحقق من عنوان واحد
GET https://bouncebell.com/api/v1/verify
| المعامل | مطلوب | الوصف |
|---|---|---|
email | نعم | العنوان المراد فحصه. رمّزه بترميز URL. |
timeout | لا | عدد الثواني لانتظار خادم البريد، من ٣ إلى ٣٠. القيمة الافتراضية ١٠. إذا انتهى الوقت، تكون الحالة unknown ولا يُستخدم أي رصيد. |
مثال
curl "https://bouncebell.com/api/v1/verify?email=rini.elizabeth%40acme-foods.example" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"email": "rini.elizabeth@acme-foods.example",
"status": "valid",
"reason": "mailbox_exists",
"domain": "acme-foods.example",
"mx_record": "mx1.acme-foods.example",
"disposable": false,
"role": false,
"free_provider": false,
"catch_all": false,
"did_you_mean": null,
"checked_at": "2026-10-30T09:30:12Z",
"credits_used": 1
}
حقول النتيجة
| الحقل | النوع | الوصف |
|---|---|---|
email | string | العنوان كما أرسلته. |
status | string | النتيجة. اطّلع على الحالات. |
reason | string | سبب النتيجة، مثل mailbox_not_found أو no_mail_server. |
domain | string | جزء النطاق، بأحرف صغيرة. |
mx_record | string or null | خادم البريد ذو الأولوية الأعلى. |
disposable | boolean | تكون القيمة true إذا كان النطاق خدمة بريد مؤقت. |
role | boolean | تكون القيمة true لصناديق البريد المشتركة مثل info@ أو support@. |
free_provider | boolean | تكون القيمة true لمزودي البريد المجاني مثل Gmail. |
catch_all | boolean | تكون القيمة true عندما يقبل النطاق كل العناوين. |
did_you_mean | string or null | عنوان مصحَّح عندما يبدو النطاق خطأً إملائيًا. |
checked_at | string | وقت إجراء الفحص، بتنسيق ISO ٨٦٠١ بتوقيت UTC. |
credits_used | integer | ١، أو ٠ عندما تكون الحالة unknown. |
الحالات
| الحالة | المعنى | الإجراء المقترح |
|---|---|---|
valid | صندوق البريد موجود ويقبل الرسائل. | إرسال |
invalid | العنوان أو النطاق أو صندوق البريد غير موجود. | احذف |
disposable | خدمة صندوق بريد مؤقت. | احذف |
catch_all | النطاق يقبل جميع العناوين، لذا لا يمكن تأكيد صندوق البريد. | راجع |
role | صندوق بريد مشترك موجود. | راجع |
unknown | لم يقدّم خادم البريد إجابة في الوقت المحدد. بلا رسوم. | أعد المحاولة لاحقًا |
الدفعات
أرسل ما يصل إلى ١٠٠٬٠٠٠ عنوان في طلب واحد. تعمل الدفعة في الخلفية؛ استعلم عن حالتها أو قدّم callback_url وسنستدعيه عند اكتمال الدفعة.
إنشاء دفعة
POST https://bouncebell.com/api/v1/batches
curl -X POST "https://bouncebell.com/api/v1/batches" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "October import", "emails": ["a@example.com", "b@example.com"],
"callback_url": "https://yourapp.example/hooks/bouncebell"}'
{ "id": "bat_8f2k1q3m9x7w4p", "status": "queued", "total": 2, "done": 0 }
يُحجز الرصيد لكل عنوان فريد عند إنشاء الدفعة، ويُسترد رصيد النتائج غير المعروفة عند انتهائها. يتلقى الاستدعاء طلب POST يحتوي على {"event": "batch.completed", "batch_id": "...", "status": "done", "counts": {...}}. يجب أن تستخدم روابط الاستدعاء HTTPS.
التحقق من التقدم
GET https://bouncebell.com/api/v1/batches/{id}
{ "id": "bat_8f2k1q3m9x7w4p", "status": "running", "total": 2, "done": 1 }
تكون الحالة queued أو running أو done. وعندما تكون done، تتضمن الاستجابة أيضًا counts حسب الحالة.
تنزيل النتائج
GET https://bouncebell.com/api/v1/batches/{id}/results
يُرجع JSON افتراضيًا. أضف ?format=csv للحصول على ملف CSV. يحتوي كل صف على الحقول نفسها الموجودة في الفحص الفردي.
الرصيد
GET https://bouncebell.com/api/v1/credits
{ "credits_remaining": 33420 }
الأخطاء والحدود
تُرجع الأخطاء نص JSON يحتوي على رمز error وmessage مقروءة.
| رمز HTTP | الخطأ | ما الذي يجب فعله |
|---|---|---|
| ٤٠٠ | bad_request | هناك معامل مفقود أو غير صحيح. اقرأ الرسالة. |
| ٤٠١ | invalid_key | تأكد من أن المفتاح صحيح وأنه لم يُبطَل. |
| ٤٠٢ | no_credits | اشترِ المزيد من الرصيد. |
| ٤٠٣ | email_not_confirmed | افتح رابط التأكيد الذي أرسلناه إليك بالبريد الإلكتروني عند التسجيل. |
| ٤٠٤ | not_found | الدفعة غير موجودة أو حُذفت بعد ٣٠ يومًا. |
| ٤٢٩ | rate_limited | أبطئ. انتظر عدد الثواني المذكور في ترويسة Retry-After. |
| ٥٠٠ | server_error | أعد المحاولة بعد مهلة قصيرة. إذا استمرت المشكلة، تواصل مع الدعم. |
الفحوص الفردية محدودة بـ ٢٠ طلبًا في الثانية لكل مفتاح. اطلب منا إذا احتجت إلى المزيد.