API v2 (beta)
Pemeriksaan nomor
Pemeriksaan nomor mencari tahu nomor telepon mana yang memiliki akun WhatsApp, tanpa mengirim apa pun ke nomor-nomor tersebut. Bersihkan daftar sebelum kampanye, atau periksa nomor pendaftar sebelum Anda mengirim pesan. Pemeriksaan yang dibuat dengan API sama dengan daftar di halaman Verifikasi nomor di dashboard.
| Operasi | Endpoint | Scope |
|---|---|---|
| Memulai pemeriksaan | POST /api/v2/number-checks | contacts |
| Daftar pemeriksaan | GET /api/v2/number-checks | contacts |
| Mengambil pemeriksaan | GET /api/v2/number-checks/{id} | contacts |
| Mengambil hasil | GET /api/v2/number-checks/{id}/results | contacts |
Memulai pemeriksaan memerlukan paket yang mencakup verifikasi nomor; jika tidak, dijawab dengan 403 plan_required. Membaca pemeriksaan berfungsi di paket apa pun.
Memulai pemeriksaan#
https://wbiztool.com/api/v2/number-checksBody: JSON (application/json)
Nomor-nomor masuk antrean, dan responsnya 201 dengan pemeriksaan berstatus pending. Nomor WhatsApp yang terhubung di workspace Anda memeriksanya dalam beberapa menit berikutnya. Lakukan polling pemeriksaan sampai status bernilai completed, lalu baca hasilnya.
Body
numbersarray of stringswajibNomor yang akan diperiksa, 1 hingga 10.000 entri. Tulis dalam format internasional dengan
+(+919876543210). Nomor tanpa kode negara mendapat kode negara workspace. Nomor yang berulang diperiksa sekali, dan entri yang bukan nomor telepon dilewati.namestringopsionalNama pemeriksaan, hingga 500 karakter, seperti yang tampil di halaman Verifikasi nomor. Default:
API checkdiikuti tanggal dan waktu dalam UTC, sepertiAPI check 2026-10-18 10:40.
curl -X POST https://wbiztool.com/api/v2/number-checks \
-H "Authorization: Bearer $WBIZTOOL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: october-leads" \
-d '{
"name": "October leads",
"numbers": ["+919876543210", "+447700900123", "+14155550123"]
}'import os
import time
import requests
API = "https://wbiztool.com/api/v2"
headers = {"Authorization": f"Bearer {os.environ['WBIZTOOL_API_KEY']}"}
check = requests.post(f"{API}/number-checks", headers=headers, timeout=60, json={
"name": "October leads",
"numbers": ["+919876543210", "+447700900123", "+14155550123"],
}).json()
print("Skipped entries:", check["skipped"])
while check["status"] != "completed":
time.sleep(30)
check = requests.get(f"{API}/number-checks/{check['id']}", headers=headers, timeout=30).json()
print(check["counts"])
params = {"limit": 100}
while True:
page = requests.get(f"{API}/number-checks/{check['id']}/results",
headers=headers, params=params, timeout=30).json()
for result in page["data"]:
print(result["number"], result["status"])
if not page["next_cursor"]:
break
params["cursor"] = page["next_cursor"]// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const API = "https://wbiztool.com/api/v2";
const headers = { Authorization: `Bearer ${process.env.WBIZTOOL_API_KEY}`, "Content-Type": "application/json" };
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
let check = await (await fetch(`${API}/number-checks`, {
method: "POST",
headers,
body: JSON.stringify({ name: "October leads", numbers: ["+919876543210", "+447700900123", "+14155550123"] }),
})).json();
while (check.status !== "completed") {
await sleep(30000);
check = await (await fetch(`${API}/number-checks/${check.id}`, { headers })).json();
}
const params = new URLSearchParams({ limit: "100" });
while (true) {
const page = await (await fetch(`${API}/number-checks/${check.id}/results?${params}`, { headers })).json();
for (const result of page.data) console.log(result.number, result.status);
if (!page.next_cursor) break;
params.set("cursor", page.next_cursor);
}<?php
$ch = curl_init('https://wbiztool.com/api/v2/number-checks');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('WBIZTOOL_API_KEY'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'name' => 'October leads',
'numbers' => ['+919876543210', '+447700900123', '+14155550123'],
]),
CURLOPT_RETURNTRANSFER => true,
]);
$check = json_decode(curl_exec($ch), true);
curl_close($ch);
// Save $check['id'], then poll GET /api/v2/number-checks/{id} until status is completed.
echo $check['id'] . ' ' . $check['status'] . ' skipped: ' . $check['skipped'];Respons (201):
{
"id": 51207,
"name": "October leads",
"status": "pending",
"counts": { "total": 3, "pending": 3, "on_whatsapp": 0, "not_on_whatsapp": 0, "cancelled": 0 },
"created_at": "2026-10-18T10:40:02.511Z",
"skipped": 0
}
skipped adalah jumlah entri yang bukan nomor telepon (teks, kurang dari 7 atau lebih dari 15 digit): entri ini tidak diperiksa dan tidak dihitung dalam paket Anda.
Batas paket#
Paket Anda menentukan berapa banyak nomor yang dapat Anda periksa (lihat Batas paket):
- Per pemeriksaan: satu pemeriksaan tidak boleh berisi lebih banyak nomor daripada batas paket. Jika melewatinya, pemeriksaan ditolak dengan
too_many_numbers, besertacountdanlimit. - Per periode penagihan: semua pemeriksaan bersama-sama, dari API dan dashboard, juga tidak boleh melewatinya. Pemeriksaan yang akan melewatinya ditolak dengan
number_check_quota_reached, besertarequested,used, danlimit. - Paket tanpa batas tidak memiliki keduanya. API menerima paling banyak 10.000 nomor per request, apa pun paketnya.
- Pemeriksaan yang ditolak tidak memasukkan apa pun ke antrean. Pecah daftarnya, tunggu periode berikutnya, atau tingkatkan paket.
Error saat memulai pemeriksaan#
| HTTP | Kode | Kapan |
|---|---|---|
400 | validation_failed | numbers tidak ada, kosong, atau bukan daftar string, atau name kosong atau terlalu panjang |
403 | plan_required | Paket tidak mencakup verifikasi nomor |
422 | no_valid_numbers | Tidak ada entri yang berupa nomor telepon; skipped menunjukkan jumlah entrinya |
422 | too_many_numbers | Lebih dari 10.000 entri, atau lebih banyak nomor daripada yang diizinkan paket per pemeriksaan |
422 | number_check_quota_reached | Pemeriksaan akan melewati jatah nomor paket untuk periode penagihan ini |
Daftar pemeriksaan#
https://wbiztool.com/api/v2/number-checksPemeriksaan workspace, yang terbaru lebih dulu, dalam halaman (limit 1 hingga 100, default 25, dan cursor), termasuk yang dimulai di dashboard. Masing-masing berupa Number check.
curl https://wbiztool.com/api/v2/number-checks \
-H "Authorization: Bearer $WBIZTOOL_API_KEY"
Mengambil pemeriksaan#
https://wbiztool.com/api/v2/number-checks/{id}Pemeriksaan beserta progresnya. Lakukan polling kira-kira setiap 30 detik sampai status bernilai completed.
curl https://wbiztool.com/api/v2/number-checks/51207 \
-H "Authorization: Bearer $WBIZTOOL_API_KEY"
{
"id": 51207,
"name": "October leads",
"status": "processing",
"counts": { "total": 3, "pending": 1, "on_whatsapp": 1, "not_on_whatsapp": 1, "cancelled": 0 },
"created_at": "2026-10-18T10:40:02.511Z"
}
Pemeriksaan yang tidak ada dijawab dengan 404 number_check_not_found.
Pemeriksaan memerlukan nomor WhatsApp workspace yang terhubung dengan kode QR atau kode penautan, dan menunggu selama nomor Anda sedang mengirim. Pemeriksaan dapat tetap pending atau processing selama beberapa waktu; lihat Cara kerja pemeriksaan.
Mengambil hasil#
https://wbiztool.com/api/v2/number-checks/{id}/resultsNomor-nomor dalam pemeriksaan dan hasilnya, dalam halaman (limit 1 hingga 100, default 25, dan cursor). Anda dapat membacanya selama pemeriksaan berjalan: nomor yang belum diperiksa bernilai pending.
curl "https://wbiztool.com/api/v2/number-checks/51207/results?limit=100" \
-H "Authorization: Bearer $WBIZTOOL_API_KEY"
{
"data": [
{ "number": "14155550123", "on_whatsapp": null, "status": "pending", "checked_at": null },
{ "number": "447700900123", "on_whatsapp": false, "status": "not_on_whatsapp", "checked_at": "2026-10-18T10:42:57.204Z" },
{ "number": "919876543210", "on_whatsapp": true, "status": "on_whatsapp", "checked_at": "2026-10-18T10:42:51.880Z" }
],
"next_cursor": null
}
| Field | Jenis | Keterangan |
|---|---|---|
number | string | Nomor yang diperiksa: digitnya dengan kode negara, tanpa +. |
on_whatsapp | boolean or null | true atau false setelah diperiksa; null selama masih menunggu atau jika dibatalkan. |
status | string | pending, on_whatsapp, not_on_whatsapp, atau cancelled (dihentikan sebelum diperiksa). |
checked_at | string or null | Kapan nomor diperiksa. |
Objek Number check#
| Field | Jenis | Keterangan |
|---|---|---|
id | integer | ID pemeriksaan. |
name | string | Namanya. |
status | string | pending (belum ada yang diperiksa), processing (sebagian sudah diperiksa), atau completed (tidak ada lagi yang perlu diperiksa). |
counts | object | total, pending, on_whatsapp, not_on_whatsapp, dan cancelled. |
created_at | string | Kapan pemeriksaan dimulai. |
skipped | integer | Hanya di respons Memulai pemeriksaan: entri yang bukan nomor telepon. |
Terkait#
- Verifikasi nomor di dashboard
- Paket dan tagihan
- Error
