API Docs
WhatsApp verification API for single and batch checks
Choose a service type for a single check or submit up to 100 numbers in one batch request, with synchronous results in both cases.
/api/v1/checkQuickstart
- 1.Create an API key in Settings.
- 2.Use GET /api/v1/balance to check the current balance before a batch.
- 3.POST one phone number to /api/v1/check, or up to 100 numbers to /api/v1/batch-check.
- 4.Read data.registered and the product-specific fields in the response.
Authentication
Use an API key created in Settings and send it with every request.
X-API-Key: sk_your_api_keyProducts and result fields

wsWhatsApp Registration CheckConfirm whether a phone number is registered on WhatsApp.
ws_avatarWhatsApp Avatar CheckCheck registration, whether the WhatsApp account has set an avatar, and return the avatar URL when available.
ws_businessWhatsApp Business Account CheckCheck registration and identify whether the number uses a WhatsApp Business account.wsWhatsApp Registration Check
Confirm whether a phone number is registered on WhatsApp.
Single check
curl -X POST "https://walookup.com/api/v1/check" \
-H "X-API-Key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "service_type": "ws", "identifier": "+14155552671" }'{
"code": 0,
"msg": "ok",
"data": {
"service_type": "ws",
"identifier": "+14155552671",
"registered": true
}
}{
"code": 0,
"msg": "ok",
"data": {
"service_type": "ws",
"identifier": "+14155550000",
"registered": false
}
}Batch
Each number in the payload is billed independently. Maximum 100 numbers per request. Only successfully checked numbers consume balance. The request is rejected before processing if your balance cannot cover the full batch.
Submit up to 100 numbers in one request; results are returned in the same order.
curl -X POST "https://walookup.com/api/v1/batch-check" \
-H "X-API-Key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "service_type": "ws", "identifiers": ["+14155552671", "+14155550000"] }'{
"code": 0,
"msg": "ok",
"data": {
"service_type": "ws",
"total": 2,
"succeeded": 1,
"failed": 1,
"results": [
{
"identifier": "+14155552671",
"exists": true,
"registered": true
},
{
"identifier": "+14155550000",
"exists": false
}
]
}
}Rate limits, concurrency, and retry behavior
Checks are synchronous. Use the returned code to decide whether to accept the result, slow down, or retry later.
- 200 requests per minuteDashboard and API checks share one UTC fixed-minute window per user. For code 42900, Retry-After is the number of seconds until the next window.
- 5 concurrent checksA user can run up to five checks at once (a batch request's numbers share this same budget). Code 42901 means all slots are occupied; submit again after an in-flight check finishes.
- 429 is not chargedRate and concurrency limits reject the request before billing, create no check result, and deduct no balance. The caller may submit again after the relevant limit recovers.
- Retry 503 laterA temporary service failure is not a registration result. Keep the input pending and retry later.
Error codes
Ready to start integrating?
Ready to get started? Create a free account and get your API key in seconds.