コンテンツへスキップ
Wbiztool

番号確認API

WhatsApp番号確認の結果(API)

番号確認の結果を、タスクやステータスで絞り込みながらページごとに取得します。WhatsAppを利用している番号のエクスポート、連絡先リストからの無効な番号の削除、CRMへの結果の同期などに利用できます。

GEThttps://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"

リクエストパラメータ#

すべてのパラメータはクエリ文字列で指定します。

認証

Authorizationheader必須

Bearer YOUR_API_KEY設定 → APIキーにあるキーを使用します。代わりにクエリパラメータapi_keyでキーを渡すこともできますが、ヘッダーを使えばサーバーやプロキシのログにキーが残りません。

フィルターとページネーション

campaign_idinteger任意

この番号確認タスクの番号のみを返します。APIキーと同じワークスペースの番号確認タスクである必要があります。省略すると、すべてのタスクの結果を取得します。

statusstring任意

このステータスの番号のみを返します:pendingverifiedinvalid。それ以外の値は無視され、ステータスによる絞り込みは行われません。unknownも同様に無視されるため、status=unknownではすべてのステータスが返ります。値は大文字と小文字が区別されます。Verifiedは無視され、すべてのステータスが返ります。

limitinteger任意

1ページあたりの結果数です。デフォルトは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"
    }
  ]
}
フィールド説明
statusstring"success"。エラーの場合は"error"が返ります。
total_countinteger全ページを通じた、フィルターに一致する結果の数。
returned_countintegerこのレスポンスに含まれる結果の数。
limitinteger使用されたlimit
offsetinteger使用されたoffset
has_morebooleanoffset + limittotal_countより小さく、次のページがある場合はtrue
resultsarray結果(新しい順)。
results[].idintegerこの確認レコードのID。
results[].campaign_idinteger or null番号が属するタスクのID。
results[].campaign_namestring or nullそのタスクの名前。
results[].numberstring整形済みの電話番号。
results[].statusstringpendingverifiedinvalid、または確認がキャンセルされた場合はunknown
results[].checked_atstring or null番号が確認された日時。pendingの間はnullです。
results[].created_atstring番号が追加された日時。

タイムスタンプは+00:00オフセット付きのUTCのISO 8601形式です。各ステータスの意味は番号ステータスの値をご覧ください。

エラー#

エラーの場合は、status"error"のJSONボディとHTTPエラーコードが返ります。

{ "status": "error", "message": "Campaign not found" }
HTTPメッセージ対処方法
405Only GET method allowedGETリクエストを送信してください。
401API key requiredAuthorization: Bearer YOUR_API_KEYヘッダーを追加してください。
401Invalid API keyキーが存在し、削除または無効化されていないことを確認してください。
404Campaign not foundcampaign_idが存在しない、番号確認タスクではない、または別のワークスペースに属しています。
500Internal server error: …通常は、campaign_idlimitoffsetのいずれかが整数でないか、offsetが負の値か、offset + limitが負の値です。

すべてのページを読み取る#

has_morefalseになるまで、offsetlimitずつ増やしてください。

タスクから確認済みの番号をすべてエクスポートする
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")

ヒント#

  • ページ取得時はidで重複を除く:結果は作成日時の新しい順に並びます。同じタスクの番号はほぼ同じタイムスタンプを持ち、ページ取得中に新しい確認が追加されることもあるため、同じ行が2つのページに表示されたり、スキップされたりすることがあります。campaign_idで絞り込み、タスクの完了を待つと、これを減らせます。
  • 完了を待ってからエクスポートするoverall_statuscompletedになるまで番号確認のステータスを確認するか、コードでpendingの結果に対応してください。
  • 連絡先リストを整理するstatus=invalidをエクスポートし、次のキャンペーンの前にそれらの番号を削除しましょう。
  • ページサイズlimitに上限はありませんが、ページが非常に大きいとレスポンスも大きく、遅くなります。