W
WhatsApp Phone Number and Business Checker
Published byOSINT TRACE
10/8/2026
# WhatsApp Phone Number & Business Checker API
## ⚡ 100% Real-Time Live Intelligence (Zero Stale Databases)
The **WhatsApp Checker API** delivers ultra-high-speed real-time verification to determine whether any phone number is registered on WhatsApp. In addition to instant presence detection (`live: true | false`), it extracts rich business intelligence including Business vs. Personal classification, official green checkmark verification status (`is_verified`), verified business name, high-resolution profile avatar URLs, and direct catalog links.
> [!IMPORTANT]
> **Real-Time Verification Guarantee:** Every query executes live protocol probes directly against WhatsApp network servers. We **never** rely on cached dumps, leaked records, or stale third-party databases.
For direct web access, multi-platform OSINT scans, and high-volume enterprise investigations, visit **[OSINT Trace](https://osinttrace.com)** at [https://osinttrace.com](https://osinttrace.com).
---
## 🔗 Quick Links
- **Official Web Platform**: [OSINT Trace — https://osinttrace.com](https://osinttrace.com)
- **API Dashboard & Studio**: [Jojapi Studio](https://jojapi.com)
---
## ⚡ Key Features
- ✅ **Instant Registration Verification:** Conclusively verify if any phone number is registered on WhatsApp in real time.
- 🏢 **WhatsApp Business Detection:** Distinguishes between standard Personal accounts and WhatsApp Business accounts.
- 🛡️ **Official Badge Verification:** Detects official green checkmark badges (`is_verified`) on verified enterprise accounts.
- 🖼️ **Avatar & Catalog Intelligence:** Returns high-resolution profile picture URLs and direct catalog links for business entities.
- 🌐 **E.164 Global Standard:** Worldwide support for international phone numbers (e.g., `+14155552671`, `+447911123456`).
- ⚡ **Sub-Second Response Times:** Asynchronous distributed worker pool built for high-throughput enterprise workloads.
---
## ⚠️ Input Formatting & Metadata Availability
> [!NOTE]
> - **Input Format:** Requires a valid phone number in international standard **E.164 format** (with leading `+` and country code, e.g., `+14155552671`).
> - **Business Numbers:** When a number belongs to a **WhatsApp Business** or **Official Business Account**, rich metadata (`is_business: true`, `is_verified`, `avatar_url`, `catalog_url`, `name`) is returned.
> - **Personal Numbers:** Personal user accounts return `live: true` with `account_type: "Personal"`, `is_business: false`, and `profile_url` (individual private avatars and bios are not exposed for standard consumer privacy).
---
## 🎯 Target Use Cases
1. **Fraud Prevention & Sybil Defense:** Flag disposable VOIP numbers and verify that phone numbers have an active WhatsApp footprint.
2. **B2B Lead Enrichment:** Automatically detect whether customer phone numbers represent verified corporate WhatsApp Business accounts.
3. **Customer Support Routing:** Automatically route WhatsApp-enabled phone numbers to automated messaging workflows.
4. **KYC & Security Investigations:** Correlate suspect phone numbers with active messaging profiles during OSINT investigations.
---
## 💻 Visual Examples & Payload Schemas
### Endpoint
`POST /check`
### Request Body
```json
{
"input": "+14155552671"
}
```
### Response Example: WhatsApp Business Account (`200 OK`)
```json
{
"live": true,
"metadata": {
"is_business": true,
"is_verified": true,
"account_type": "Official Business Account",
"name": "Acme Global Enterprise",
"avatar_url": "https://pps.whatsapp.net/v/t61.24694-24/438291038_...",
"catalog_url": "https://wa.me/c/14155552671",
"profile_url": "https://wa.me/14155552671"
}
}
```
### Response Example: Standard Personal Account (`200 OK`)
```json
{
"live": true,
"metadata": {
"is_business": false,
"is_verified": false,
"account_type": "Personal",
"profile_url": "https://wa.me/14155552671"
}
}
```
### Response Example: Unregistered Number (`200 OK`)
```json
{
"live": false
}
```
---
## 🚀 Implementation Guide
### cURL
```bash
curl -X POST \
'https://whatsapp-checker.jojapi.com/check' \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_JOJAPI_KEY' \
-d '{"input": "+14155552671"}'
```
### Python (`requests`)
```python
import requests
API_KEY = "YOUR_JOJAPI_KEY"
URL = "https://whatsapp-checker.jojapi.com/check"
def check_whatsapp(phone_number: str):
headers = {
"Content-Type": "application/json",
"x-api-key": API_KEY
}
payload = {"input": phone_number}
response = requests.post(URL, headers=headers, json=payload)
if response.status_code == 200:
data = response.json()
print(f"Active on WhatsApp: {data.get('live')}")
if data.get("metadata"):
meta = data["metadata"]
print(f"Account Type: {meta.get('account_type')}")
print(f"Verified Business: {meta.get('is_verified')}")
print(f"Business Name: {meta.get('name')}")
print(f"Avatar URL: {meta.get('avatar_url')}")
print(f"Catalog URL: {meta.get('catalog_url')}")
return data
else:
print(f"Error {response.status_code}: {response.text}")
return None
check_whatsapp("+14155552671")
```
### JavaScript / Node.js (`fetch`)
```javascript
const API_KEY = "YOUR_JOJAPI_KEY";
const URL = "https://whatsapp-checker.jojapi.com/check";
async function checkWhatsApp(phoneNumber) {
const response = await fetch(URL, {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": API_KEY
},
body: JSON.stringify({ input: phoneNumber })
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
console.log("WhatsApp Scan Result:", data);
return data;
}
checkWhatsApp("+14155552671");
```
---
## 🚦 Status Codes & Error Reference
| Status Code | Reason | Description |
|:---|:---|:---|
| **`200 OK`** | Success | Query completed. Returns registration status and business metadata. |
| **`400 Bad Request`** | Validation Error | Malformed input or invalid E.164 phone number string. |
| **`401 Unauthorized`** | Auth Failure | Missing or invalid `x-api-key` header. |
| **`403 Forbidden`** | Quota Exceeded | Monthly subscription quota exhausted. Upgrade your plan. |
| **`429 Too Many Requests`** | Rate Limit | Exceeded allowable requests/second (1 req/s). |
| **`500 / 503`** | Service Error | Upstream gateway temporary issue. Retry with exponential backoff. |
---
## ❓ Frequently Asked Questions
**Q: What format should I provide the phone number in?**
A: Provide numbers in standard international E.164 format (with leading `+` and country code, e.g. `+14155552671` or `+447911123456`).
**Q: What does `is_verified` mean?**
A: `is_verified: true` indicates an Official WhatsApp Business account that Meta has verified with a green checkmark badge.
**Q: Where can I run bulk CSV checks or full OSINT investigations?**
A: Visit **[OSINT Trace](https://osinttrace.com)** (`https://osinttrace.com`) for our interactive web workspace, bulk CSV scanner, and downloadable OSINT reports.
Last updated 2026-10-16