नंबर वेरिफिकेशन API
WhatsApp नंबर वेरिफिकेशन नतीजे (API)
नंबर वेरिफिकेशन के नतीजे पेज-दर-पेज पढ़ें, टास्क या स्टेटस के हिसाब से फिल्टर करके। इसका इस्तेमाल WhatsApp पर मौजूद नंबर एक्सपोर्ट करने, अपनी संपर्क सूची से invalid नंबर हटाने या नतीजों को अपने CRM में सिंक करने के लिए करें।
https://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"import requests
response = requests.get(
"https://wbiztool.com/api/v1/verification/results/",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={"campaign_id": 4521, "status": "verified", "limit": 100, "offset": 0},
timeout=60,
)
result = response.json() # read the body even when the HTTP code is 4xx or 5xx
if result["status"] == "success":
print(f"{result['returned_count']} of {result['total_count']} results")
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/results/");
url.search = new URLSearchParams({ campaign_id: "4521", status: "verified", limit: "100", offset: "0" });
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.returned_count} of ${result.total_count} results`);
for (const item of result.results) {
console.log(item.number, item.status);
}
} else {
console.error(`Failed (${response.status}):`, result.message);
}<?php
$query = http_build_query([
'campaign_id' => 4521,
'status' => 'verified',
'limit' => 100,
'offset' => 0,
]);
$ch = curl_init('https://wbiztool.com/api/v1/verification/results/?' . $query);
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['returned_count'] . ' of ' . $result['total_count'] . " results\n";
foreach ($result['results'] as $item) {
echo $item['number'] . ': ' . $item['status'] . "\n";
}
} else {
echo 'Failed: ' . ($result['message'] ?? 'no response');
}रिक्वेस्ट पैरामीटर#
सभी पैरामीटर क्वेरी स्ट्रिंग में भेजे जाते हैं।
ऑथेंटिकेशन
Authorizationheaderआवश्यकBearer YOUR_API_KEY, सेटिंग्स → API Keys की किसी की के साथ। इसके बजाय आप की कोapi_keyक्वेरी पैरामीटर के रूप में भी भेज सकते हैं, लेकिन हेडर इस्तेमाल करने से की सर्वर और प्रॉक्सी लॉग में नहीं आती।
फिल्टर और पेजिनेशन
campaign_idintegerवैकल्पिककेवल इस वेरिफिकेशन टास्क के नंबर लौटाएं। यह API की वाले वर्कस्पेस का ही वेरिफिकेशन टास्क होना चाहिए। सभी टास्क के नतीजे पाने के लिए इसे छोड़ दें।
statusstringवैकल्पिककेवल इस स्टेटस वाले नंबर लौटाएं:
pending,verifiedयाinvalid। कोई भी दूसरी वैल्यू नज़रअंदाज़ कर दी जाती है और कोई स्टेटस फिल्टर लागू नहीं होता,unknownभी, इसलिएstatus=unknownहर स्टेटस लौटाता है। वैल्यू case-sensitive हैं: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"
}
]
}
| फील्ड | टाइप | विवरण |
|---|---|---|
status | string | "success"। एरर होने पर "error" लौटता है। |
total_count | integer | आपके फिल्टर से मेल खाने वाले नतीजे, सभी पेजों को मिलाकर। |
returned_count | integer | इस रिस्पॉन्स में नतीजे। |
limit | integer | इस्तेमाल किया गया limit। |
offset | integer | इस्तेमाल किया गया offset। |
has_more | boolean | अगर offset + limit, total_count से कम है, तो true, यानी एक और पेज है। |
results | array | नतीजे, सबसे नया पहले। |
results[].id | integer | इस वेरिफिकेशन रिकॉर्ड का ID। |
results[].campaign_id | integer or null | उस टास्क का ID जिसका यह नंबर है। |
results[].campaign_name | string or null | उस टास्क का नाम। |
results[].number | string | साफ किया गया फोन नंबर। |
results[].status | string | pending, verified, invalid, या कैंसल हुई जांच के लिए unknown। |
results[].checked_at | string or null | नंबर कब जांचा गया, या pending रहने तक null। |
results[].created_at | string | नंबर कब जोड़ा गया। |
टाइमस्टैम्प UTC में ISO 8601 फॉर्मेट में, +00:00 ऑफसेट के साथ होते हैं। हर स्टेटस का मतलब जानने के लिए नंबर स्टेटस वैल्यू देखें।
एरर#
एरर होने पर status = "error" वाली JSON बॉडी और 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 | जांचें कि की मौजूद है और डिलीट या डिसेबल नहीं की गई है। |
404 | Campaign not found | campaign_id मौजूद नहीं है, वेरिफिकेशन टास्क नहीं है, या किसी दूसरे वर्कस्पेस का है। |
500 | Internal server error: … | आमतौर पर campaign_id, limit या offset पूर्ण संख्या नहीं होता, offset नेगेटिव होता है, या offset + limit नेगेटिव होता है। |
हर पेज पढ़ना#
जब तक has_more false न हो जाए, offset को limit जितना बढ़ाते रहें।
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")// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const numbers = [];
const limit = 500;
let offset = 0;
while (true) {
const url = new URL("https://wbiztool.com/api/v1/verification/results/");
url.search = new URLSearchParams({ campaign_id: "4521", status: "verified", limit: String(limit), offset: String(offset) });
const response = await fetch(url, { headers: { Authorization: "Bearer YOUR_API_KEY" } });
const result = await response.json();
if (result.status !== "success") throw new Error(result.message);
numbers.push(...result.results.map((item) => item.number));
if (!result.has_more) break;
offset += limit;
}
console.log(numbers.length, "numbers are on WhatsApp");सुझाव#
- पेज करते समय
idसे डुप्लिकेट हटाएं। नतीजे बनाए जाने के समय के हिसाब से, सबसे नया पहले, क्रम में होते हैं। एक ही टास्क के नंबरों का टाइमस्टैम्प लगभग एक जैसा होता है और पेज करते समय नए वेरिफिकेशन जुड़ सकते हैं, इसलिए कोई पंक्ति दो पेजों पर दिख सकती है या छूट सकती है।campaign_idसे फिल्टर करने और टास्क पूरा होने का इंतज़ार करने से यह कम होता है। - पूरा होने का इंतज़ार करें एक्सपोर्ट करने से पहले। वेरिफिकेशन स्टेटस तब तक जांचें जब तक
overall_statuscompletedन हो जाए, या अपने कोड मेंpendingनतीजों को संभालें। - अपनी संपर्क सूची साफ करें:
status=invalidएक्सपोर्ट करें और अगले कैंपेन से पहले उन नंबरों को हटा दें। - पेज साइज़:
limitकी कोई अधिकतम सीमा नहीं है, लेकिन बहुत बड़ा पेज एक बड़ा और धीमा रिस्पॉन्स बनाता है।
