Перейти к содержимому
Wbiztool

API проверки номеров

Результаты проверки номеров WhatsApp (API)

Получайте результаты проверки номеров постранично с фильтрацией по задаче или статусу. Используйте этот 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необязательно

Возвращать только номера с этим статусом: pending, verified или invalid. Любое другое значение игнорируется, и фильтр по статусу не применяется, в том числе unknown, поэтому status=unknown возвращает номера со всеми статусами. Значения чувствительны к регистру: Verified игнорируется и возвращает номера со всеми статусами.

limitintegerнеобязательно

Результатов на странице. По умолчанию 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_morebooleantrue, если offset + limit меньше total_count, то есть есть ещё одна страница.
resultsarrayРезультаты, начиная с самых новых.
results[].idintegerID этой записи проверки.
results[].campaign_idinteger or nullID задачи, к которой относится номер.
results[].campaign_namestring or nullНазвание этой задачи.
results[].numberstringОчищенный номер телефона.
results[].statusstringpending, verified, invalid или unknown для отменённой проверки.
results[].checked_atstring or nullКогда номер был проверен, или null, пока проверка не выполнена.
results[].created_atstringКогда номер был добавлен.

Метки времени указываются в формате ISO 8601 в UTC со смещением +00:00. Значение каждого статуса описано в разделе Значения статуса номера.

Ошибки#

Ошибки возвращают JSON-тело со status, равным "error", и кодом ошибки HTTP:

{ "status": "error", "message": "Campaign not found" }
HTTPСообщениеКак исправить
405Only GET method allowedОтправьте запрос GET.
401API key requiredДобавьте заголовок Authorization: Bearer YOUR_API_KEY.
401Invalid API keyПроверьте, что ключ существует, не удалён и не отключён.
404Campaign not foundcampaign_id не существует, не является задачей проверки или принадлежит другому рабочему пространству.
500Internal server error: …Обычно campaign_id, limit или offset не является целым числом, offset отрицательный или сумма offset + limit отрицательная.

Чтение всех страниц#

Увеличивайте offset на limit, пока has_more не станет false.

Экспорт всех подтверждённых номеров задачи
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 при постраничном чтении. Результаты отсортированы по времени создания, начиная с самых новых. У номеров одной задачи почти одинаковые метки времени, а во время чтения могут добавляться новые проверки, поэтому строка может появиться на двух страницах или быть пропущена. Фильтр по campaign_id и ожидание завершения задачи уменьшают этот эффект.
  • Дождитесь завершения перед экспортом. Проверяйте API статуса проверки, пока overall_status не станет completed, или обрабатывайте результаты со статусом pending в своём коде.
  • Очистите список контактов: экспортируйте status=invalid и удалите эти номера перед следующей кампанией.
  • Размер страницы: максимального limit нет, но очень большая страница означает большой и медленный ответ.