API Verifikasi Nomor
Status verifikasi nomor WhatsApp (API)
Periksa progres tugas verifikasi nomor dan dapatkan hasil untuk setiap nomor di dalamnya. Lakukan polling ke endpoint ini setelah membuat tugas verifikasi sampai tugas selesai.
https://wbiztool.com/api/v1/verification/status/?campaign_id=4521Contoh singkat#
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');
}Parameter request#
AuthorizationheaderwajibBearer YOUR_API_KEY, menggunakan key dari Settings → API keys (Pengaturan → Kunci API). Anda dapat mengirim key sebagai parameter queryapi_key, tetapi header menjaga key tidak tercatat di log server dan proxy.campaign_idintegerwajibcampaign_idyang dikembalikan oleh Buat verifikasi, dikirim di query string. ID ini harus merupakan tugas verifikasi di workspace yang sama dengan API key.
Respons#
Request yang berhasil mengembalikan 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"
}
| Field | Tipe | Deskripsi |
|---|---|---|
status | string | "success". Error mengembalikan "error". |
campaign_id | integer | ID tugas verifikasi. |
campaign_name | string | Nama tugas. |
overall_status | string | pending, processing, atau completed. Lihat Nilai status keseluruhan. |
progress.total | integer | Jumlah nomor dalam tugas. |
progress.pending | integer | Nomor yang belum diperiksa. |
progress.verified | integer | Nomor yang terdaftar di WhatsApp. |
progress.invalid | integer | Nomor yang ditandai invalid (tidak terdaftar di WhatsApp, bukan nomor yang valid, atau pemeriksaannya gagal). |
progress.completed_percentage | number | Nomor yang sudah diperiksa (verified + invalid) sebagai persentase dari total, dibulatkan ke 2 desimal. |
results | array | Setiap nomor dalam tugas, diurutkan berdasarkan nomor. Seluruh daftar dikembalikan sekaligus, tanpa paginasi. |
results[].number | string | Nomor telepon yang sudah dibersihkan. |
results[].status | string | pending, verified, invalid, atau unknown. Lihat Nilai status nomor. |
results[].checked_at | string atau null | Waktu nomor diperiksa, atau null selama masih pending. |
results[].created_at | string | Waktu nomor ditambahkan. |
created_at | string | Waktu tugas dibuat. |
last_updated | string | Waktu terakhir data tugas diubah. Nilai ini tidak berubah saat nomor diperiksa, jadi gunakan checked_at untuk melihat aktivitas terbaru. |
Semua timestamp menggunakan ISO 8601 dalam UTC dengan mikrodetik dan offset +00:00, misalnya 2026-09-16T10:16:12.204551+00:00.
Nilai status nomor#
| Nilai | Arti |
|---|---|
pending | Menunggu diperiksa. |
verified | Nomor terdaftar di WhatsApp. |
invalid | Nomor tidak terdaftar di WhatsApp, bukan nomor telepon yang valid, atau tidak dapat diperiksa karena error pemrosesan. Jika nomor yang Anda harapkan valid menampilkan invalid, verifikasi ulang di tugas baru. |
unknown | Pemeriksaan dibatalkan oleh tim dukungan Wbiztool. Pemrosesan normal tidak menghasilkan nilai ini. |
Nilai status keseluruhan#
| Nilai | Arti |
|---|---|
pending | Belum ada nomor yang diperiksa. |
processing | Sebagian nomor sudah diperiksa dan sebagian masih pending. |
completed | Tidak ada nomor yang pending. |
Tugas berstatus completed dapat menampilkan completed_percentage di bawah 100 jika sebagian pemeriksaan dibatalkan, karena nomor yang dibatalkan dihitung dalam total tetapi tidak dalam persentase.
Error#
Error mengembalikan body JSON dengan status bernilai "error" dan kode error HTTP:
{ "status": "error", "message": "Campaign not found" }
| HTTP | Pesan | Cara memperbaikinya |
|---|---|---|
405 | Only GET method allowed | Kirim request GET. |
401 | API key required | Tambahkan header Authorization: Bearer YOUR_API_KEY. |
401 | Invalid API key | Pastikan key tersebut ada dan belum dihapus atau dinonaktifkan. |
400 | campaign_id is required | Tambahkan campaign_id ke query string. |
404 | Campaign not found | ID tidak ada, bukan tugas verifikasi, atau milik workspace lain. Gunakan key dari workspace yang membuat tugas tersebut. |
500 | Internal server error: … | Paling sering karena campaign_id bukan angka. Kirim hanya angka. |
Tips#
- Lakukan polling secukupnya. Hingga 10 nomor diperiksa per putaran di latar belakang, jadi memeriksa setiap 30 hingga 60 detik sudah cukup, dan tugas besar bisa memakan waktu lama.
- Hentikan polling saat
overall_statusbernilaicompleted. - Tertahan di
pending? Verifikasi memerlukan nomor WhatsApp yang terhubung di WhatsApp settings (pengaturan WhatsApp) di workspace yang sama. Tanpa itu, nomor tidak pernah diperiksa. Pemeriksaan juga menunggu selama nomor Anda yang terhubung sedang sibuk mengirim pesan. - Tugas besar: endpoint ini mengembalikan setiap nomor dalam satu respons. Untuk membaca hasil per halaman, atau hanya nomor
verified, gunakan Hasil verifikasi.
