API di verifica numeri
Stato della verifica di numeri WhatsApp (API)
Controlla l'avanzamento di un'attività di verifica dei numeri e ottieni il risultato per ogni numero che contiene. Interroga periodicamente questo endpoint dopo aver creato un'attività di verifica, finché l'attività non è completata.
https://wbiztool.com/api/v1/verification/status/?campaign_id=4521Esempio rapido#
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');
}Parametri della richiesta#
AuthorizationheaderobbligatorioBearer YOUR_API_KEY, usando una chiave da Impostazioni → Chiavi API. In alternativa puoi passare la chiave come parametro di queryapi_key, ma l'header evita che finisca nei log del server e dei proxy.campaign_idintegerobbligatorioIl
campaign_idrestituito da Crea verifica, inviato nella query string. Deve essere un'attività di verifica dello stesso spazio di lavoro della chiave API.
Risposta#
Una richiesta riuscita restituisce 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"
}
| Campo | Tipo | Descrizione |
|---|---|---|
status | string | "success". Gli errori restituiscono "error". |
campaign_id | integer | ID dell'attività di verifica. |
campaign_name | string | Nome dell'attività. |
overall_status | string | pending, processing o completed. Vedi Valori dello stato complessivo. |
progress.total | integer | Numeri presenti nell'attività. |
progress.pending | integer | Numeri non ancora verificati. |
progress.verified | integer | Numeri registrati su WhatsApp. |
progress.invalid | integer | Numeri contrassegnati come invalid (non su WhatsApp, non validi, oppure una verifica non riuscita). |
progress.completed_percentage | number | Numeri verificati (verified + invalid) come percentuale di total, arrotondata a 2 decimali. |
results | array | Tutti i numeri dell'attività, ordinati per numero. L'intero elenco viene restituito in una volta, senza paginazione. |
results[].number | string | Il numero di telefono ripulito. |
results[].status | string | pending, verified, invalid o unknown. Vedi Valori di stato dei numeri. |
results[].checked_at | string or null | Quando è stato verificato il numero, oppure null finché è in attesa. |
results[].created_at | string | Quando è stato aggiunto il numero. |
created_at | string | Quando è stata creata l'attività. |
last_updated | string | L'ultima modifica del record dell'attività. Non cambia man mano che i numeri vengono verificati, quindi usa checked_at per vedere l'attività recente. |
Tutti i timestamp sono in formato ISO 8601 in UTC, con i microsecondi e l'offset +00:00, ad esempio 2026-09-16T10:16:12.204551+00:00.
Valori di stato dei numeri#
| Valore | Significato |
|---|---|
pending | In attesa di verifica. |
verified | Il numero è registrato su WhatsApp. |
invalid | Il numero non è registrato su WhatsApp, non è un numero di telefono valido oppure non è stato possibile verificarlo a causa di un errore di elaborazione. Se un numero che ti aspetti valido risulta invalid, verificalo di nuovo in una nuova attività. |
unknown | La verifica è stata annullata dall'assistenza di Wbiztool. L'elaborazione normale non imposta questo valore. |
Valori dello stato complessivo#
| Valore | Significato |
|---|---|
pending | Nessun numero è stato ancora verificato. |
processing | Alcuni numeri sono stati verificati e altri sono ancora in attesa. |
completed | Nessun numero è in attesa. |
Un'attività completed può mostrare un completed_percentage inferiore a 100 se alcune verifiche sono state annullate, perché i numeri annullati contano in total ma non nella percentuale.
Errori#
Gli errori restituiscono un corpo JSON con status impostato su "error" e un codice di errore HTTP:
{ "status": "error", "message": "Campaign not found" }
| HTTP | Messaggio | Come risolvere |
|---|---|---|
405 | Only GET method allowed | Invia una richiesta GET. |
401 | API key required | Aggiungi l'header Authorization: Bearer YOUR_API_KEY. |
401 | Invalid API key | Verifica che la chiave esista e non sia stata eliminata o disattivata. |
400 | campaign_id is required | Aggiungi campaign_id alla query string. |
404 | Campaign not found | L'ID non esiste, non è un'attività di verifica oppure appartiene a un altro spazio di lavoro. Usa una chiave dello spazio di lavoro che ha creato l'attività. |
500 | Internal server error: … | Molto spesso campaign_id non è un numero. Invia solo cifre. |
Suggerimenti#
- Interroga con moderazione. In background vengono verificati fino a 10 numeri per esecuzione, quindi un controllo ogni 30-60 secondi è più che sufficiente, e un'attività grande può richiedere molto tempo.
- Smetti di interrogare quando
overall_statusècompleted. - Bloccato su
pending? La verifica richiede un numero WhatsApp collegato nelle Impostazioni WhatsApp dello stesso spazio di lavoro. Senza, i numeri non vengono mai verificati. Le verifiche restano inoltre in attesa mentre il tuo numero collegato è occupato a inviare messaggi. - Attività grandi: questo endpoint restituisce tutti i numeri in una sola risposta. Per leggere i risultati pagina per pagina, o solo i numeri
verified, usa Risultati della verifica.
