Numara doğrulama API'si
WhatsApp numara doğrulama durumu (API)
Bir numara doğrulama görevinin ilerlemesini kontrol edin ve içindeki her numaranın sonucunu alın. Bir doğrulama görevi oluşturduktan sonra görev tamamlanana kadar bu endpoint'i sorgulayın.
https://wbiztool.com/api/v1/verification/status/?campaign_id=4521Hızlı örnek#
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');
}İstek parametreleri#
AuthorizationheaderzorunluAyarlar → API anahtarları sayfasındaki bir anahtarla
Bearer YOUR_API_KEY. Anahtarı bunun yerineapi_keysorgu parametresi olarak da iletebilirsiniz, ancak başlık kullanmak anahtarı sunucu ve proxy günlüklerinin dışında tutar.campaign_idintegerzorunluDoğrulama oluşturma tarafından döndürülen
campaign_id; sorgu dizesinde gönderilir. API anahtarıyla aynı çalışma alanındaki bir doğrulama görevi olmalıdır.
Yanıt#
Başarılı bir istek HTTP 200 döndürür:
{
"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"
}
| Alan | Tür | Açıklama |
|---|---|---|
status | string | "success". Hatalar "error" döndürür. |
campaign_id | integer | Doğrulama görevinin ID'si. |
campaign_name | string | Görevin adı. |
overall_status | string | pending, processing veya completed. Bkz. Genel durum değerleri. |
progress.total | integer | Görevdeki numaralar. |
progress.pending | integer | Henüz kontrol edilmemiş numaralar. |
progress.verified | integer | WhatsApp'a kayıtlı numaralar. |
progress.invalid | integer | invalid olarak işaretlenen numaralar (WhatsApp'ta değil, geçerli bir numara değil veya kontrol başarısız oldu). |
progress.completed_percentage | number | Kontrol edilen numaraların (verified + invalid) total içindeki yüzdesi, 2 ondalık basamağa yuvarlanmış. |
results | dizi | Görevdeki her numara, numaraya göre sıralı. Listenin tamamı sayfalama olmadan tek seferde döndürülür. |
results[].number | string | Temizlenmiş telefon numarası. |
results[].status | string | pending, verified, invalid veya unknown. Bkz. Numara durumu değerleri. |
results[].checked_at | string veya null | Numaranın kontrol edildiği zaman; beklemedeyken null. |
results[].created_at | string | Numaranın eklendiği zaman. |
created_at | string | Görevin oluşturulduğu zaman. |
last_updated | string | Görev kaydının son değiştirildiği zaman. Numaralar kontrol edildikçe değişmez; son etkinliği görmek için checked_at kullanın. |
Tüm zaman damgaları mikrosaniyeli ve +00:00 farkıyla UTC'de ISO 8601 biçimindedir; örneğin 2026-09-16T10:16:12.204551+00:00.
Numara durumu değerleri#
| Değer | Anlamı |
|---|---|
pending | Kontrol edilmeyi bekliyor. |
verified | Numara WhatsApp'a kayıtlı. |
invalid | Numara WhatsApp'a kayıtlı değil, geçerli bir telefon numarası değil veya bir işleme hatası nedeniyle kontrol edilemedi. Geçerli olmasını beklediğiniz bir numara invalid görünüyorsa, yeni bir görevde tekrar doğrulayın. |
unknown | Kontrol Wbiztool destek ekibi tarafından iptal edildi. Normal işleme bu değeri ayarlamaz. |
Genel durum değerleri#
| Değer | Anlamı |
|---|---|
pending | Henüz hiçbir numara kontrol edilmedi. |
processing | Bazı numaralar kontrol edildi, bazıları hâlâ bekliyor. |
completed | Bekleyen numara yok. |
completed durumundaki bir görev, bazı kontroller iptal edildiyse 100'ün altında bir completed_percentage gösterebilir; çünkü iptal edilen numaralar total içinde sayılır ama yüzdeye dahil edilmez.
Hatalar#
Hatalar, status değeri "error" olan bir JSON gövdesi ve bir HTTP hata kodu döndürür:
{ "status": "error", "message": "Campaign not found" }
| HTTP | Mesaj | Nasıl düzeltilir |
|---|---|---|
405 | Only GET method allowed | Bir GET isteği gönderin. |
401 | API key required | Authorization: Bearer YOUR_API_KEY başlığını ekleyin. |
401 | Invalid API key | Anahtarın mevcut olduğunu ve silinmediğini veya devre dışı bırakılmadığını kontrol edin. |
400 | campaign_id is required | Sorgu dizesine campaign_id ekleyin. |
404 | Campaign not found | ID mevcut değil, bir doğrulama görevi değil veya başka bir çalışma alanına ait. Görevi oluşturan çalışma alanından bir anahtar kullanın. |
500 | Internal server error: … | Çoğu zaman campaign_id bir sayı değildir. Yalnızca rakam gönderin. |
İpuçları#
- Nazikçe sorgulayın. Arka planda her çalıştırmada en fazla 10 numara kontrol edilir; bu yüzden 30 ila 60 saniyede bir kontrol etmek fazlasıyla yeterlidir ve büyük bir görev uzun sürebilir.
overall_statusdeğericompletedolduğunda sorgulamayı durdurun.pendingdurumunda mı takıldı? Doğrulama, aynı çalışma alanında WhatsApp ayarları sayfasında bağlı bir WhatsApp numarası gerektirir. Bağlı numara yoksa numaralar hiçbir zaman kontrol edilmez. Kontroller, bağlı numaranız mesaj göndermekle meşgulken de bekler.- Büyük görevler: bu endpoint her numarayı tek bir yanıtta döndürür. Sonuçları sayfa sayfa veya yalnızca
verifiednumaraları okumak için Doğrulama sonuçları endpoint'ini kullanın.
