番号確認API
WhatsApp番号確認のステータス(API)
番号確認タスクの進捗を確認し、タスク内のすべての番号の結果を取得します。番号確認タスクを作成した後、タスクが完了するまでこのエンドポイントをポーリングしてください。
GET
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。設定 → APIキーにあるキーを使用します。代わりにクエリパラメータapi_keyでキーを渡すこともできますが、ヘッダーを使えばサーバーやプロキシのログにキーが残りません。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 | 確認タスクのID。 |
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に対する割合(%)。小数点以下2桁に丸められます。 |
results | array | タスク内のすべての番号(番号順)。ページネーションはなく、リスト全体が一度に返されます。 |
results[].number | string | 整形済みの電話番号。 |
results[].status | string | pending、verified、invalid、unknownのいずれか。番号ステータスの値を参照してください。 |
results[].checked_at | string or null | 番号が確認された日時。pendingの間はnullです。 |
results[].created_at | string | 番号が追加された日時。 |
created_at | string | タスクが作成された日時。 |
last_updated | string | タスクのレコードが最後に変更された日時。番号が確認されても変わらないため、最近の処理状況はchecked_atで確認してください。 |
すべてのタイムスタンプは、マイクロ秒と+00:00オフセットを含むUTCのISO 8601形式です(例:2026-09-16T10:16:12.204551+00:00)。
番号ステータスの値#
| 値 | 意味 |
|---|---|
pending | 確認待ちです。 |
verified | 番号はWhatsAppに登録されています。 |
invalid | 番号がWhatsAppに登録されていない、有効な電話番号ではない、または処理エラーのため確認できませんでした。有効なはずの番号がinvalidと表示される場合は、新しいタスクでもう一度確認してください。 |
unknown | Wbiztoolのサポートによって確認がキャンセルされました。通常の処理でこの値になることはありません。 |
全体ステータスの値#
| 値 | 意味 |
|---|---|
pending | まだどの番号も確認されていません。 |
processing | 一部の番号は確認済みで、一部はまだpendingです。 |
completed | pendingの番号はありません。 |
一部の確認がキャンセルされた場合、completedのタスクでもcompleted_percentageが100未満になることがあります。キャンセルされた番号はtotalには含まれますが、割合には含まれないためです。
エラー#
エラーの場合は、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 | キーが存在し、削除または無効化されていないことを確認してください。 |
400 | campaign_id is required | クエリ文字列にcampaign_idを追加してください。 |
404 | Campaign not found | IDが存在しない、番号確認タスクではない、または別のワークスペースに属しています。タスクを作成したワークスペースのキーを使用してください。 |
500 | Internal server error: … | ほとんどの場合、campaign_idが数値ではありません。数字のみを送信してください。 |
ヒント#
- ポーリングは控えめに:バックグラウンドでは1回の実行で最大10件の番号が確認されるため、30〜60秒ごとの確認で十分です。大きなタスクには長い時間がかかることがあります。
overall_statusがcompletedになったらポーリングを止めてください。pendingのまま進まない場合:番号確認には、同じワークスペースでWhatsApp設定から接続したWhatsApp番号が必要です。接続済みの番号がないと、番号は確認されません。接続済みの番号がメッセージ送信中の間も、確認は待機します。- 大きなタスク:このエンドポイントは、すべての番号を1つのレスポンスで返します。結果をページごとに取得したり、
verifiedの番号だけを取得したりするには、番号確認の結果を使用してください。
