WhatsApp Number Validation & Profile Lookup APIs

WhatsApp validation API: check if a number is on WhatsApp and fetch profile picture, About status, presence, and business details. Two-step real-time verification and public profile lookup. JSON API for lead validation, contact enrichment, CRM, and messaging deliverability. Public data only.

🔍

Check WhatsApp Account Exists (by Full Number)

Lightweight existence check for a single number — returns only whether the phone number is registered on WhatsApp, without fetching profile/avatar/business details. Cheaper than a full profile lookup. When isExist=true, the response also contains a userHash that must be passed to the profile endpoints (Get Avatar / Get About / Get Business Profile / Get Presence) to authorize the heavier lookup. The backend auto-splits the country code from the full number and echoes countryCode so you can verify the split.

GET /api/project/whatsapp/check-exist-by-phone
📦

Check WhatsApp Account Exists (CC + Phone Split)

Same as Check WhatsApp Account Exists, but the country code and the national phone number are supplied as separate parameters. Use this when you already know the country code and want to bypass the backend's auto-split. When isExist=true, the response also contains a userHash to pass to the profile endpoints.

GET /api/project/whatsapp/check-exist-by-cc-phone

Get Profile Avatar (Display Photo)

Fetch the public display photo (DP) of a WhatsApp user. Two-step flow: first call a check-exist endpoint to obtain a userHash for the target number, then pass that userHash here. Calls without a valid (or expired/unknown) userHash are rejected. The number is resolved from the userHash server-side — no phone parameter is accepted. If the user has no photo or hides it by privacy, hasAvatar=false. Use type to choose the full-size image or the small preview thumbnail.

GET /api/project/whatsapp/get-avatar
🔄

Get About / Status Text

Retrieve the user's About (status signature) text and the time it was set. Two-step flow: obtain a userHash via a check-exist endpoint first, then pass it here. Invalid/expired userHash is rejected. Not set / privacy (contacts only) / not registered returns about=null.

GET /api/project/whatsapp/get-about
📡

Get Business Profile

Retrieve the WhatsApp Business profile: business name, verified level, description, address, email, website, and member-since info. Two-step flow: obtain a userHash via a check-exist endpoint first, then pass it here. Invalid/expired userHash is rejected. Personal (non-business) numbers return isBusiness=false.

GET /api/project/whatsapp/get-biz-profile
🔗

Get Presence / Last Seen

Retrieve online state / last-seen. Strongly constrained by the target's privacy: if the requester is not a contact and the target's last-seen/online privacy is not set to everyone, presence is not delivered and visible=false (a real result that cannot be bypassed). Two-step flow: obtain a userHash via a check-exist endpoint first, then pass it here. A single call can take up to ~17s.

GET /api/project/whatsapp/get-presence
📋

Check Active Status

Check in real time whether a phone number is registered and active on WhatsApp. Returns a direct active flag for the full international number — a standalone check that does not require a userHash. Ideal for quick yes/no validation in signup flows and list hygiene.

GET /api/project/whatsapp/check-active
🌐

Batch Check (up to 10 numbers)

Check whether up to 10 phone numbers are registered on WhatsApp in a single request. Returns exist and isBusiness status for each number. Supply numbers as a comma-separated list. Efficient for validating small batches in one call.

GET /api/project/whatsapp/batch-check-10