انتقل إلى المحتوى
Wbiztool

API التحقق من الأرقام

نتائج التحقق من أرقام WhatsApp ‏(API)

اقرأ نتائج التحقق من الأرقام صفحة بصفحة، مع التصفية حسب المهمة أو الحالة. استخدمه لتصدير الأرقام المسجّلة على WhatsApp، أو لتنظيف قائمة جهات الاتصال من الأرقام غير الصالحة، أو لمزامنة النتائج مع نظام CRM لديك.

GEThttps://wbiztool.com/api/v1/verification/results/

بدون عوامل تصفية، يُرجع كل عمليات التحقق في مساحة العمل الخاصة بك، من الأحدث إلى الأقدم. ويشمل ذلك المهام التي أُنشئت من صفحة التحقق من الأرقام في لوحة التحكم، لا تلك التي أُنشئت عبر API فقط.

مثال سريع#

curl "https://wbiztool.com/api/v1/verification/results/?campaign_id=4521&status=verified&limit=100&offset=0" \
  -H "Authorization: Bearer YOUR_API_KEY"

معاملات الطلب#

توضع كل المعاملات في سلسلة الاستعلام (query string).

المصادقة

Authorizationheaderمطلوب

‏Bearer YOUR_API_KEY، باستخدام مفتاح من Settings → API keys (الإعدادات ← مفاتيح API). يمكنك تمرير المفتاح كمعامل استعلام api_key بدلًا من ذلك، لكن الترويسة تُبقيه بعيدًا عن سجلات الخوادم والوكلاء (proxies).

التصفية والتقسيم إلى صفحات

campaign_idintegerاختياري

يُرجع فقط الأرقام من مهمة التحقق هذه. يجب أن تكون مهمة تحقق في مساحة العمل نفسها التي ينتمي إليها مفتاح API. احذفه للحصول على النتائج من كل المهام.

statusstringاختياري

يُرجع فقط الأرقام التي لها هذه الحالة: pending أو verified أو invalid. أي قيمة أخرى تُتجاهل ولا تُطبَّق أي تصفية حسب الحالة، بما في ذلك unknown، لذا فإن status=unknown يُرجع كل الحالات. القيم حساسة لحالة الأحرف: Verified تُتجاهل وتُرجع كل الحالات.

limitintegerاختياري

عدد النتائج في كل صفحة. القيمة الافتراضية 100. استخدم قيمة تساوي 1 أو أكثر.

offsetintegerاختياري

عدد النتائج التي يجب تخطّيها. القيمة الافتراضية 0. يجب أن تكون 0 أو أكثر.

الاستجابة#

يُرجع الطلب الناجح HTTP 200:

{
  "status": "success",
  "total_count": 2,
  "returned_count": 2,
  "limit": 100,
  "offset": 0,
  "has_more": false,
  "results": [
    {
      "id": 88215,
      "campaign_id": 4521,
      "campaign_name": "Website leads - September",
      "number": "14155550123",
      "status": "verified",
      "checked_at": "2026-09-16T10:16:26.730114+00:00",
      "created_at": "2026-09-16T10:15:00.483101+00:00"
    },
    {
      "id": 88213,
      "campaign_id": 4521,
      "campaign_name": "Website leads - September",
      "number": "919876543210",
      "status": "verified",
      "checked_at": "2026-09-16T10:16:12.204551+00:00",
      "created_at": "2026-09-16T10:15:00.482913+00:00"
    }
  ]
}
الحقلالنوعالوصف
statusstring‏"success". تُرجع الأخطاء "error".
total_countintegerعدد النتائج المطابقة لعوامل التصفية، عبر كل الصفحات.
returned_countintegerعدد النتائج في هذه الاستجابة.
limitintegerقيمة limit المستخدمة.
offsetintegerقيمة offset المستخدمة.
has_moreboolean‏true إذا كان offset + limit أقل من total_count، أي توجد صفحة أخرى.
resultsarrayالنتائج، من الأحدث إلى الأقدم.
results[].idintegerمعرّف سجل التحقق هذا.
results[].campaign_idinteger or nullمعرّف المهمة التي ينتمي إليها الرقم.
results[].campaign_namestring or nullاسم تلك المهمة.
results[].numberstringرقم الهاتف بعد التنظيف.
results[].statusstring‏pending أو verified أو invalid، أو unknown لفحص أُلغي.
results[].checked_atstring or nullوقت التحقق من الرقم، أو null ما دام معلّقًا.
results[].created_atstringوقت إضافة الرقم.

الطوابع الزمنية بصيغة ISO 8601 بتوقيت UTC مع الفرق +00:00. لمعرفة معنى كل حالة، راجع قيم حالة الرقم.

الأخطاء#

تُرجع الأخطاء جسم JSON مع status بقيمة "error" ورمز خطأ HTTP:

{ "status": "error", "message": "Campaign not found" }
HTTPالرسالةطريقة الإصلاح
405Only GET method allowedأرسل طلب GET.
401API key requiredأضف الترويسة Authorization: Bearer YOUR_API_KEY.
401Invalid API keyتأكد من أن المفتاح موجود ولم يُحذف أو يُعطَّل.
404Campaign not foundقيمة campaign_id غير موجودة، أو ليست مهمة تحقق، أو تنتمي إلى مساحة عمل أخرى.
500Internal server error: …غالبًا لا تكون قيمة campaign_id أو limit أو offset عددًا صحيحًا، أو تكون offset سالبة، أو يكون offset + limit سالبًا.

قراءة كل الصفحات#

زِد offset بمقدار limit حتى تصبح قيمة has_more هي false.

تصدير كل الأرقام الصحيحة من مهمة
import requests

numbers, offset, limit = [], 0, 500

while True:
    response = requests.get(
        "https://wbiztool.com/api/v1/verification/results/",
        headers={"Authorization": "Bearer YOUR_API_KEY"},
        params={"campaign_id": 4521, "status": "verified", "limit": limit, "offset": offset},
        timeout=60,
    )
    result = response.json()
    if result["status"] != "success":
        raise RuntimeError(result["message"])

    numbers += [item["number"] for item in result["results"]]
    if not result["has_more"]:
        break
    offset += limit

print(len(numbers), "numbers are on WhatsApp")

نصائح#

  • أزل التكرارات حسب id أثناء التنقل بين الصفحات. تُرتَّب النتائج حسب وقت الإنشاء، من الأحدث إلى الأقدم. أرقام المهمة الواحدة تتشارك تقريبًا الطابع الزمني نفسه، وقد تُضاف عمليات تحقق جديدة أثناء تنقلك بين الصفحات، لذا قد يظهر صف في صفحتين أو يُتخطّى. التصفية حسب campaign_id وانتظار انتهاء المهمة يقللان من ذلك.
  • انتظر الاكتمال قبل التصدير. تحقّق من حالة التحقق حتى تصبح قيمة overall_status هي completed، أو تعامل مع النتائج pending في الكود الخاص بك.
  • نظّف قائمة جهات الاتصال بتصدير status=invalid وحذف تلك الأرقام قبل حملتك التالية.
  • حجم الصفحة: لا يوجد حد أقصى لـ limit، لكن الصفحة الكبيرة جدًا تعني استجابة كبيرة وبطيئة.