المطورون

واجهة API للتحقق من البريد الإلكتروني تعمل ببساطة

تحقق من عنوان واحد في الوقت الفعلي، أو أرسل قائمة كاملة كدفعة. تستخدم جميع الطلبات HTTPS وتُرجع JSON. أنشئ مفاتيح API من لوحة التحكم ضمن مفاتيح API.

  • REST وJSON
  • استدعاءات الدفعات
  • الرصيد نفسه المستخدم في لوحة التحكم
صفحة مفاتيح API في BounceBell مع المفاتيح النشطة ونموذج لإنشاء مفتاح جديد

المصادقة

أرسل مفتاح 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
}

حقول النتيجة

الحقلالنوعالوصف
emailstringالعنوان كما أرسلته.
statusstringالنتيجة. اطّلع على الحالات.
reasonstringسبب النتيجة، مثل mailbox_not_found أو no_mail_server.
domainstringجزء النطاق، بأحرف صغيرة.
mx_recordstring or nullخادم البريد ذو الأولوية الأعلى.
disposablebooleanتكون القيمة true إذا كان النطاق خدمة بريد مؤقت.
rolebooleanتكون القيمة true لصناديق البريد المشتركة مثل info@ أو support@.
free_providerbooleanتكون القيمة true لمزودي البريد المجاني مثل Gmail.
catch_allbooleanتكون القيمة true عندما يقبل النطاق كل العناوين.
did_you_meanstring or nullعنوان مصحَّح عندما يبدو النطاق خطأً إملائيًا.
checked_atstringوقت إجراء الفحص، بتنسيق ISO ٨٦٠١ بتوقيت UTC.
credits_usedinteger١، أو ٠ عندما تكون الحالة 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أعد المحاولة بعد مهلة قصيرة. إذا استمرت المشكلة، تواصل مع الدعم.

الفحوص الفردية محدودة بـ ٢٠ طلبًا في الثانية لكل مفتاح. اطلب منا إذا احتجت إلى المزيد.