API de vérification de numéros
Statut de vérification de numéros WhatsApp (API)
Suivez la progression d'une tâche de vérification de numéros et obtenez le résultat de chaque numéro qu'elle contient. Interrogez cet endpoint après avoir créé une tâche de vérification, jusqu'à ce que la tâche soit terminée.
https://wbiztool.com/api/v1/verification/status/?campaign_id=4521Exemple rapide#
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');
}Paramètres de la requête#
AuthorizationheaderobligatoireBearer YOUR_API_KEY, avec une clé issue de Paramètres → Clés API. Vous pouvez aussi transmettre la clé via le paramètre de requêteapi_key, mais l'en-tête évite qu'elle n'apparaisse dans les journaux des serveurs et des proxys.campaign_idintegerobligatoireLe
campaign_idrenvoyé par Créer une vérification, envoyé dans la chaîne de requête. Il doit s'agir d'une tâche de vérification du même espace de travail que la clé API.
Réponse#
Une requête réussie renvoie le code 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"
}
| Champ | Type | Description |
|---|---|---|
status | string | "success". Les erreurs renvoient "error". |
campaign_id | integer | ID de la tâche de vérification. |
campaign_name | string | Nom de la tâche. |
overall_status | string | pending, processing ou completed. Consultez Valeurs du statut global. |
progress.total | integer | Nombre de numéros dans la tâche. |
progress.pending | integer | Numéros pas encore vérifiés. |
progress.verified | integer | Numéros enregistrés sur WhatsApp. |
progress.invalid | integer | Numéros marqués invalid (absents de WhatsApp, numéro non valide ou vérification en échec). |
progress.completed_percentage | number | Numéros vérifiés (verified + invalid) en pourcentage de total, arrondi à 2 décimales. |
results | array | Tous les numéros de la tâche, triés par numéro. La liste complète est renvoyée en une seule fois, sans pagination. |
results[].number | string | Le numéro de téléphone nettoyé. |
results[].status | string | pending, verified, invalid ou unknown. Consultez Valeurs de statut des numéros. |
results[].checked_at | string or null | Date de vérification du numéro, ou null tant qu'il est en attente. |
results[].created_at | string | Date d'ajout du numéro. |
created_at | string | Date de création de la tâche. |
last_updated | string | Date de dernière modification de l'enregistrement de la tâche. Elle ne change pas au fil de la vérification des numéros : utilisez donc checked_at pour voir l'activité récente. |
Tous les horodatages sont au format ISO 8601 en UTC, avec microsecondes et un décalage +00:00, par exemple 2026-09-16T10:16:12.204551+00:00.
Valeurs de statut des numéros#
| Valeur | Signification |
|---|---|
pending | En attente de vérification. |
verified | Le numéro est enregistré sur WhatsApp. |
invalid | Le numéro n'est pas enregistré sur WhatsApp, n'est pas un numéro de téléphone valide, ou n'a pas pu être vérifié à cause d'une erreur de traitement. Si un numéro que vous pensiez valide affiche invalid, vérifiez-le à nouveau dans une nouvelle tâche. |
unknown | La vérification a été annulée par le support Wbiztool. Le traitement normal ne définit pas ce statut. |
Valeurs du statut global#
| Valeur | Signification |
|---|---|
pending | Aucun numéro n'a encore été vérifié. |
processing | Certains numéros ont été vérifiés et d'autres sont toujours en attente. |
completed | Plus aucun numéro n'est en attente. |
Une tâche completed peut afficher un completed_percentage inférieur à 100 si certaines vérifications ont été annulées, car les numéros annulés sont comptés dans total mais pas dans le pourcentage.
Erreurs#
Les erreurs renvoient un corps JSON avec status à "error" et un code d'erreur HTTP :
{ "status": "error", "message": "Campaign not found" }
| HTTP | Message | Comment corriger |
|---|---|---|
405 | Only GET method allowed | Envoyez une requête GET. |
401 | API key required | Ajoutez l'en-tête Authorization: Bearer YOUR_API_KEY. |
401 | Invalid API key | Vérifiez que la clé existe et n'a pas été supprimée ni désactivée. |
400 | campaign_id is required | Ajoutez campaign_id à la chaîne de requête. |
404 | Campaign not found | L'ID n'existe pas, ne correspond pas à une tâche de vérification ou appartient à un autre espace de travail. Utilisez une clé de l'espace de travail qui a créé la tâche. |
500 | Internal server error: … | Le plus souvent, campaign_id n'est pas un nombre. Envoyez uniquement des chiffres. |
Conseils#
- Interrogez l'API avec modération. Jusqu'à 10 numéros sont vérifiés à chaque passage en arrière-plan : une vérification toutes les 30 à 60 secondes suffit largement, et une tâche volumineuse peut prendre longtemps.
- Arrêtez d'interroger l'API lorsque
overall_statusvautcompleted. - Bloqué sur
pending? La vérification nécessite un numéro WhatsApp connecté dans les paramètres WhatsApp du même espace de travail. Sans cela, les numéros ne sont jamais vérifiés. Les vérifications attendent aussi lorsque votre numéro connecté est occupé à envoyer des messages. - Tâches volumineuses : cet endpoint renvoie tous les numéros dans une seule réponse. Pour lire les résultats page par page, ou uniquement les numéros
verified, utilisez Résultats de la vérification.
