Check WhatsApp availability
curl --request POST \
--url https://api.airscale.io/v1/whatsapp-check \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "+12025550147"
}
'const url = 'https://api.airscale.io/v1/whatsapp-check';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({phone: '+12025550147'})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.airscale.io/v1/whatsapp-check"
payload = { "phone": "+12025550147" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"operation_id": "00000000-0000-4000-8000-000000000001",
"phone": "+12025550147",
"whatsapp": "yes",
"credits_consumed": 1
}WhatsApp checker
Check whether one phone number is available on WhatsApp. Rate limit: 60 requests per minute per workspace for POST, including replays.
POST
/
v1
/
whatsapp-check
Check WhatsApp availability
curl --request POST \
--url https://api.airscale.io/v1/whatsapp-check \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "+12025550147"
}
'const url = 'https://api.airscale.io/v1/whatsapp-check';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({phone: '+12025550147'})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.airscale.io/v1/whatsapp-check"
payload = { "phone": "+12025550147" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"operation_id": "00000000-0000-4000-8000-000000000001",
"phone": "+12025550147",
"whatsapp": "yes",
"credits_consumed": 1
}Check one phone number in strict E.164 format: a leading
+ followed by 7–15 digits, without spaces. The body must contain exactly one phone field and fit within 16 KiB.
Usage and credits
The limit is 60 requests per minute per workspace, including POST retries. A definitiveyes or no costs 1 credit. HTTP 202 means pending or unknown; it does not confirm availability or a final credit amount.
Retrying and reconciliation
Idempotency-Key is optional. Use a UUID (versions 1–5) and reuse the same key and phone for retries of one logical check. Changing the phone with the same key returns 409. Without a key, the server generates an operation ID; save the returned operation_id.
After a 202 response, use WhatsApp check status to reconcile the operation before submitting another check. Repeating a headerless POST creates a new operation and can incur another charge.
A recorded insufficient-credit rejection returns 403; a known unavailable check returns 503. Both can include an operation_id. Reuse the original key when reconciling a lost response. Use bounded backoff for temporary errors and rate limits.
Next step
Look up the operation status using the same workspace API key.Authorizations
Use an Airschool workspace API key. Never expose the key in client-side code.
Headers
Optional UUID (versions 1–5). Reuse the same key and phone for retries of one logical check. The server trims whitespace and normalizes UUID case.
Pattern:
^\s*[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}\s*$Body
application/json
Strict E.164 number, with no spaces or punctuation other than the leading +.
Pattern:
^\+[1-9]\d{6,14}$