curl "https://lookup.proweblook.com/api/v1/wavalidation/batch/550e8400-e29b-41d4-a716-446655440000?api_key=YOUR_API_KEY"
import requests
import time
batch_id = "550e8400-e29b-41d4-a716-446655440000"
api_key = "YOUR_API_KEY"
while True:
r = requests.get(
f"https://lookup.proweblook.com/api/v1/wavalidation/batch/{batch_id}",
params={"api_key": api_key}
)
data = r.json()
print(f"Status: {data['status']} | {data['completed']}/{data['total_numbers']} done")
if data["status"] == "completed":
print("All done!", data["results"])
break
time.sleep(10)
{
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "processing",
"total_numbers": 4,
"completed": 2,
"failed": 0,
"pending": 2,
"results": [
{
"phone_number": "+14155552671",
"status": "completed",
"wa_status": "VALID_CONFIRMED",
"numberstatus": true,
"businessnumber": false,
"formatted_number": "+14155552671",
"carrier": "T-Mobile",
"country": "US"
},
{
"phone_number": "+919876543210",
"status": "pending"
}
]
}
{
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"total_numbers": 3,
"completed": 3,
"failed": 0,
"pending": 0,
"results": [
{
"phone_number": "+14155552671",
"status": "completed",
"wa_status": "VALID_CONFIRMED",
"numberstatus": true,
"businessnumber": false,
"formatted_number": "+14155552671",
"carrier": "T-Mobile",
"country": "US"
},
{
"phone_number": "+919876543210",
"status": "completed",
"wa_status": "VALID_CONFIRMED",
"numberstatus": true,
"businessnumber": true,
"formatted_number": "+919876543210",
"carrier": "Jio",
"country": "IN"
},
{
"phone_number": "+441234567890",
"status": "completed",
"wa_status": "INVALID",
"numberstatus": false,
"businessnumber": false,
"formatted_number": "+441234567890",
"carrier": "",
"country": "GB"
}
]
}
{
"error": "Batch not found or access denied."
}
API Reference
WA Batch Validation — Poll Results
Poll the status and results of a previously submitted WhatsApp batch validation job.
GET
/
api
/
v1
/
wavalidation
/
batch
/
{batch_id}
curl "https://lookup.proweblook.com/api/v1/wavalidation/batch/550e8400-e29b-41d4-a716-446655440000?api_key=YOUR_API_KEY"
import requests
import time
batch_id = "550e8400-e29b-41d4-a716-446655440000"
api_key = "YOUR_API_KEY"
while True:
r = requests.get(
f"https://lookup.proweblook.com/api/v1/wavalidation/batch/{batch_id}",
params={"api_key": api_key}
)
data = r.json()
print(f"Status: {data['status']} | {data['completed']}/{data['total_numbers']} done")
if data["status"] == "completed":
print("All done!", data["results"])
break
time.sleep(10)
{
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "processing",
"total_numbers": 4,
"completed": 2,
"failed": 0,
"pending": 2,
"results": [
{
"phone_number": "+14155552671",
"status": "completed",
"wa_status": "VALID_CONFIRMED",
"numberstatus": true,
"businessnumber": false,
"formatted_number": "+14155552671",
"carrier": "T-Mobile",
"country": "US"
},
{
"phone_number": "+919876543210",
"status": "pending"
}
]
}
{
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"total_numbers": 3,
"completed": 3,
"failed": 0,
"pending": 0,
"results": [
{
"phone_number": "+14155552671",
"status": "completed",
"wa_status": "VALID_CONFIRMED",
"numberstatus": true,
"businessnumber": false,
"formatted_number": "+14155552671",
"carrier": "T-Mobile",
"country": "US"
},
{
"phone_number": "+919876543210",
"status": "completed",
"wa_status": "VALID_CONFIRMED",
"numberstatus": true,
"businessnumber": true,
"formatted_number": "+919876543210",
"carrier": "Jio",
"country": "IN"
},
{
"phone_number": "+441234567890",
"status": "completed",
"wa_status": "INVALID",
"numberstatus": false,
"businessnumber": false,
"formatted_number": "+441234567890",
"carrier": "",
"country": "GB"
}
]
}
{
"error": "Batch not found or access denied."
}
Overview
After submitting a batch, use this endpoint to check its progress and retrieve results. Poll periodically until the top-levelstatus changes to completed.
Path Parameters
string
required
The UUID returned from the Submit Batch endpoint.
Query Parameters
string
required
Your ProWebLook API key. Must match the key used to submit the batch.
Response
string
The batch UUID.
string
Overall batch status:
processing— Still running. Keep polling.completed— All numbers have been processed. Stop polling.
integer
Total number of phone numbers in the batch.
integer
Number of phone numbers that have finished processing (success or failure).
integer
Number of phone numbers that encountered an error during processing.
integer
Number of phone numbers still awaiting processing. Calculated as
total_numbers - completed - failed.array
Array of result objects, one per phone number.
Show Result Object Fields
Show Result Object Fields
string
The phone number from the submitted list.
string
Per-number status:
pending, completed, or failed.string
WhatsApp validation result:
VALID_CONFIRMED or INVALID. Present when status is completed.boolean
true if the number has an active WhatsApp account. Present when status is completed.boolean
true if the WhatsApp account is a Business account. Present when status is completed.string
E.164 formatted phone number. Present when
status is completed.string
Carrier/operator name. Present when
status is completed.string
Country code of the number. Present when
status is completed.object
Full phone validation data (carrier, location, timezone, etc.). Present when
status is completed.string
Error message if processing failed. Present when
status is failed. Temporary upstream lookup failures are retried internally first; if retries are exhausted, the row remains failed and can be retried by submitting it again.Polling Best Practices
Poll every 5–10 seconds for small batches (<100 numbers) and every 30–60 seconds for large batches (1,000 numbers). Avoid polling more frequently than every 2 seconds.
JavaScript polling loop
async function pollBatchUntilDone(batchId, apiKey) {
const url = `https://lookup.proweblook.com/api/v1/wavalidation/batch/${batchId}?api_key=${apiKey}`;
while (true) {
const response = await fetch(url);
const data = await response.json();
console.log(`Status: ${data.status} | Completed: ${data.completed}/${data.total_numbers}`);
if (data.status === "completed") {
console.log("Batch done!", data.results);
return data.results;
}
// Wait 10 seconds before polling again
await new Promise(resolve => setTimeout(resolve, 10000));
}
}
curl "https://lookup.proweblook.com/api/v1/wavalidation/batch/550e8400-e29b-41d4-a716-446655440000?api_key=YOUR_API_KEY"
import requests
import time
batch_id = "550e8400-e29b-41d4-a716-446655440000"
api_key = "YOUR_API_KEY"
while True:
r = requests.get(
f"https://lookup.proweblook.com/api/v1/wavalidation/batch/{batch_id}",
params={"api_key": api_key}
)
data = r.json()
print(f"Status: {data['status']} | {data['completed']}/{data['total_numbers']} done")
if data["status"] == "completed":
print("All done!", data["results"])
break
time.sleep(10)
{
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "processing",
"total_numbers": 4,
"completed": 2,
"failed": 0,
"pending": 2,
"results": [
{
"phone_number": "+14155552671",
"status": "completed",
"wa_status": "VALID_CONFIRMED",
"numberstatus": true,
"businessnumber": false,
"formatted_number": "+14155552671",
"carrier": "T-Mobile",
"country": "US"
},
{
"phone_number": "+919876543210",
"status": "pending"
}
]
}
{
"batch_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"total_numbers": 3,
"completed": 3,
"failed": 0,
"pending": 0,
"results": [
{
"phone_number": "+14155552671",
"status": "completed",
"wa_status": "VALID_CONFIRMED",
"numberstatus": true,
"businessnumber": false,
"formatted_number": "+14155552671",
"carrier": "T-Mobile",
"country": "US"
},
{
"phone_number": "+919876543210",
"status": "completed",
"wa_status": "VALID_CONFIRMED",
"numberstatus": true,
"businessnumber": true,
"formatted_number": "+919876543210",
"carrier": "Jio",
"country": "IN"
},
{
"phone_number": "+441234567890",
"status": "completed",
"wa_status": "INVALID",
"numberstatus": false,
"businessnumber": false,
"formatted_number": "+441234567890",
"carrier": "",
"country": "GB"
}
]
}
{
"error": "Batch not found or access denied."
}
