Saltar al contenido
Wbiztool

API de verificación de números

Resultados de la verificación de números de WhatsApp (API)

Lee los resultados de la verificación de números página a página, filtrados por tarea o por estado. Úsala para exportar los números que están en WhatsApp, quitar los números no válidos de tu lista de contactos o sincronizar los resultados con tu CRM.

GEThttps://wbiztool.com/api/v1/verification/results/

Sin filtros, devuelve todas las verificaciones de tu espacio de trabajo, de la más reciente a la más antigua. Eso incluye las tareas creadas desde la página Verificación de Números del panel, no solo las creadas a través de la API.

Ejemplo rápido#

curl "https://wbiztool.com/api/v1/verification/results/?campaign_id=4521&status=verified&limit=100&offset=0" \
  -H "Authorization: Bearer YOUR_API_KEY"

Parámetros de la solicitud#

Todos los parámetros van en la query string.

Autenticación

Authorizationheaderobligatorio

Bearer YOUR_API_KEY, con una clave de Configuración → Claves API. También puedes pasar la clave como parámetro de consulta api_key, pero la cabecera evita que quede en los registros del servidor y de los proxies.

Filtros y paginación

campaign_idintegeropcional

Devuelve solo los números de esta tarea de verificación. Debe ser una tarea de verificación del mismo espacio de trabajo que la clave API. Omítelo para obtener los resultados de todas las tareas.

statusstringopcional

Devuelve solo los números con este estado: pending, verified o invalid. Cualquier otro valor se ignora y no se aplica ningún filtro de estado, incluido unknown, así que status=unknown devuelve todos los estados. Los valores distinguen mayúsculas y minúsculas: Verified se ignora y devuelve todos los estados.

limitintegeropcional

Resultados por página. Valor predeterminado: 100. Usa un valor de 1 o más.

offsetintegeropcional

Cuántos resultados se omiten. Valor predeterminado: 0. Debe ser 0 o más.

Respuesta#

Una solicitud correcta devuelve 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"
    }
  ]
}
CampoTipoDescripción
statusstring"success". Los errores devuelven "error".
total_countintegerResultados que coinciden con tus filtros, en todas las páginas.
returned_countintegerResultados de esta respuesta.
limitintegerEl limit utilizado.
offsetintegerEl offset utilizado.
has_morebooleantrue si offset + limit es menor que total_count, es decir, si hay otra página.
resultsarrayLos resultados, del más reciente al más antiguo.
results[].idintegerID de este registro de verificación.
results[].campaign_idinteger or nullID de la tarea a la que pertenece el número.
results[].campaign_namestring or nullNombre de esa tarea.
results[].numberstringEl número de teléfono limpio.
results[].statusstringpending, verified, invalid o unknown para una comprobación cancelada.
results[].checked_atstring or nullCuándo se comprobó el número, o null mientras está pendiente.
results[].created_atstringCuándo se añadió el número.

Las marcas de tiempo están en ISO 8601 en UTC, con un desfase +00:00. Para saber qué significa cada estado, consulta Valores de estado del número.

Errores#

Los errores devuelven un cuerpo JSON con status con valor "error" y un código de error HTTP:

{ "status": "error", "message": "Campaign not found" }
HTTPMensajeCómo solucionarlo
405Only GET method allowedEnvía una solicitud GET.
401API key requiredAñade la cabecera Authorization: Bearer YOUR_API_KEY.
401Invalid API keyComprueba que la clave existe y que no se ha eliminado ni desactivado.
404Campaign not foundEl campaign_id no existe, no es una tarea de verificación o pertenece a otro espacio de trabajo.
500Internal server error: …Normalmente campaign_id, limit u offset no es un número entero, offset es negativo, o offset + limit es negativo.

Leer todas las páginas#

Aumenta offset en limit hasta que has_more sea false.

Exportar todos los números verificados de una tarea
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")

Consejos#

  • Elimina duplicados por id al paginar. Los resultados se ordenan por fecha de creación, del más reciente al más antiguo. Los números de una misma tarea tienen casi la misma marca de tiempo y se pueden añadir nuevas verificaciones mientras paginas, así que una fila puede aparecer en dos páginas u omitirse. Filtrar por campaign_id y esperar a que la tarea termine lo reduce.
  • Espera a que termine antes de exportar. Consulta Estado de la verificación hasta que overall_status sea completed, o gestiona en tu código los resultados pending.
  • Limpia tu lista de contactos exportando status=invalid y eliminando esos números antes de tu próxima campaña.
  • Tamaño de página: no hay un limit máximo, pero una página muy grande genera una respuesta grande y lenta.