API التحقق من الأرقام
حالة التحقق من أرقام WhatsApp (API)
تحقّق من تقدم مهمة التحقق من الأرقام واحصل على نتيجة كل رقم فيها. استعلم من نقطة النهاية هذه بعد إنشاء مهمة تحقق حتى تكتمل المهمة.
https://wbiztool.com/api/v1/verification/status/?campaign_id=4521مثال سريع#
curl "https://wbiztool.com/api/v1/verification/status/?campaign_id=4521" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
response = requests.get(
"https://wbiztool.com/api/v1/verification/status/",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={"campaign_id": 4521},
timeout=60,
)
result = response.json() # read the body even when the HTTP code is 4xx or 5xx
if result["status"] == "success":
progress = result["progress"]
print(result["overall_status"], f"{progress['completed_percentage']}% done")
for item in result["results"]:
print(item["number"], item["status"])
else:
print(f"Failed ({response.status_code}):", result["message"])// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const url = new URL("https://wbiztool.com/api/v1/verification/status/");
url.searchParams.set("campaign_id", "4521");
const response = await fetch(url, {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const result = await response.json(); // read the body even when the HTTP code is 4xx or 5xx
if (result.status === "success") {
console.log(result.overall_status, `${result.progress.completed_percentage}% done`);
for (const item of result.results) {
console.log(item.number, item.status);
}
} else {
console.error(`Failed (${response.status}):`, result.message);
}<?php
$ch = curl_init('https://wbiztool.com/api/v1/verification/status/?campaign_id=4521');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
if (($result['status'] ?? '') === 'success') {
echo $result['overall_status'] . ' - ' . $result['progress']['completed_percentage'] . "% done\n";
foreach ($result['results'] as $item) {
echo $item['number'] . ': ' . $item['status'] . "\n";
}
} else {
echo 'Failed: ' . ($result['message'] ?? 'no response');
}معاملات الطلب#
Authorizationheaderمطلوب
Bearer YOUR_API_KEY، باستخدام مفتاح من Settings → API keys (الإعدادات ← مفاتيح API). يمكنك تمرير المفتاح كمعامل استعلامapi_keyبدلًا من ذلك، لكن الترويسة تُبقيه بعيدًا عن سجلات الخوادم والوكلاء (proxies).campaign_idintegerمطلوبقيمة
campaign_idالتي يُرجعها إنشاء تحقق، وتُرسَل في سلسلة الاستعلام. يجب أن تكون مهمة تحقق في مساحة العمل نفسها التي ينتمي إليها مفتاح API.
الاستجابة#
يُرجع الطلب الناجح HTTP 200:
{
"status": "success",
"campaign_id": 4521,
"campaign_name": "Website leads - September",
"overall_status": "processing",
"progress": {
"total": 3,
"pending": 1,
"verified": 1,
"invalid": 1,
"completed_percentage": 66.67
},
"results": [
{
"number": "14155550123",
"status": "pending",
"checked_at": null,
"created_at": "2026-09-16T10:15:00.483101+00:00"
},
{
"number": "919876543210",
"status": "verified",
"checked_at": "2026-09-16T10:16:12.204551+00:00",
"created_at": "2026-09-16T10:15:00.482913+00:00"
},
{
"number": "919876543211",
"status": "invalid",
"checked_at": "2026-09-16T10:16:19.915372+00:00",
"created_at": "2026-09-16T10:15:00.483020+00:00"
}
],
"created_at": "2026-09-16T10:15:00.471820+00:00",
"last_updated": "2026-09-16T10:15:00.471820+00:00"
}
| الحقل | النوع | الوصف |
|---|---|---|
status | string | "success". تُرجع الأخطاء "error". |
campaign_id | integer | معرّف مهمة التحقق. |
campaign_name | string | اسم المهمة. |
overall_status | string | pending أو processing أو completed. راجع قيم الحالة العامة. |
progress.total | integer | عدد الأرقام في المهمة. |
progress.pending | integer | الأرقام التي لم يُتحقق منها بعد. |
progress.verified | integer | الأرقام المسجّلة على WhatsApp. |
progress.invalid | integer | الأرقام التي حالتها invalid (غير مسجّلة على WhatsApp، أو ليست رقمًا صالحًا، أو فشل فحصها). |
progress.completed_percentage | number | الأرقام التي تم التحقق منها (verified + invalid) كنسبة مئوية من total، مقرّبة إلى منزلتين عشريتين. |
results | array | كل الأرقام في المهمة، مرتبة حسب الرقم. تُرجَع القائمة كاملة مرة واحدة، بدون تقسيم إلى صفحات. |
results[].number | string | رقم الهاتف بعد التنظيف. |
results[].status | string | pending أو verified أو invalid أو unknown. راجع قيم حالة الرقم. |
results[].checked_at | string or null | وقت التحقق من الرقم، أو null ما دام معلّقًا. |
results[].created_at | string | وقت إضافة الرقم. |
created_at | string | وقت إنشاء المهمة. |
last_updated | string | آخر وقت تغيّر فيه سجل المهمة. لا يتغير مع التحقق من الأرقام، لذا استخدم checked_at لمعرفة النشاط الأخير. |
كل الطوابع الزمنية بصيغة ISO 8601 بتوقيت UTC مع أجزاء من المليون من الثانية والفرق +00:00، مثل 2026-09-16T10:16:12.204551+00:00.
قيم حالة الرقم#
| القيمة | المعنى |
|---|---|
pending | بانتظار التحقق. |
verified | الرقم مسجّل على WhatsApp. |
invalid | الرقم غير مسجّل على WhatsApp، أو ليس رقم هاتف صالحًا، أو تعذّر التحقق منه بسبب خطأ في المعالجة. إذا ظهر رقم تتوقع أنه صالح بالحالة invalid، فتحقّق منه مرة أخرى في مهمة جديدة. |
unknown | ألغى فريق دعم Wbiztool الفحص. المعالجة العادية لا تضبط هذه القيمة. |
قيم الحالة العامة#
| القيمة | المعنى |
|---|---|
pending | لم يُتحقق من أي رقم بعد. |
processing | تم التحقق من بعض الأرقام وبعضها لا يزال معلّقًا. |
completed | لا توجد أرقام معلّقة. |
قد تُظهر المهمة التي حالتها completed قيمة completed_percentage أقل من 100 إذا أُلغيت بعض الفحوص، لأن الأرقام الملغاة تُحتسب ضمن total لكنها لا تُحتسب في النسبة المئوية.
الأخطاء#
تُرجع الأخطاء جسم JSON مع status بقيمة "error" ورمز خطأ HTTP:
{ "status": "error", "message": "Campaign not found" }
| HTTP | الرسالة | طريقة الإصلاح |
|---|---|---|
405 | Only GET method allowed | أرسل طلب GET. |
401 | API key required | أضف الترويسة Authorization: Bearer YOUR_API_KEY. |
401 | Invalid API key | تأكد من أن المفتاح موجود ولم يُحذف أو يُعطَّل. |
400 | campaign_id is required | أضف campaign_id إلى سلسلة الاستعلام. |
404 | Campaign not found | المعرّف غير موجود، أو ليس مهمة تحقق، أو ينتمي إلى مساحة عمل أخرى. استخدم مفتاحًا من مساحة العمل التي أنشأت المهمة. |
500 | Internal server error: … | غالبًا لا تكون قيمة campaign_id رقمًا. أرسل أرقامًا فقط. |
نصائح#
- استعلم بهدوء. يُتحقق من 10 أرقام كحد أقصى في كل دورة في الخلفية، لذا يكفي الاستعلام كل 30 إلى 60 ثانية، وقد تستغرق المهمة الكبيرة وقتًا طويلًا.
- توقف عن الاستعلام عندما تصبح قيمة
overall_statusهيcompleted. - عالقة عند
pending؟ يحتاج التحقق إلى رقم WhatsApp متصل في إعدادات WhatsApp في مساحة العمل نفسها. بدونه، لا يُتحقق من الأرقام أبدًا. كما تنتظر الفحوص ما دام رقمك المتصل مشغولًا بإرسال الرسائل. - المهام الكبيرة: تُرجع نقطة النهاية هذه كل الأرقام في استجابة واحدة. لقراءة النتائج صفحة بصفحة، أو لقراءة الأرقام
verifiedفقط، استخدم نتائج التحقق.
