## WhatsApp API Public WhatsApp data by phone number, invite link or channel, as WhatsApp returns it. Check whether a number is on WhatsApp, read an account's profile (the name it set, about text, profile picture, business profile, linked devices), see what a group's invite link shows, and read channels, their latest posts and the channel directory. Read-only: nothing is sent, joined or followed. Typical uses: validating phone lists before outreach, enriching leads and business records, verifying a business's WhatsApp presence, and monitoring public channels. ### Endpoints - **`GET /v1/number/check?phone=+14155550123`**: `registered` and the number's WhatsApp id. - **`GET /v1/number/profile?phone=+14155550123`**: the contact (`pushname`, `isBusiness`, `verifiedName`, and for businesses `businessProfile` with description, categories, website, email, address and hours), `about`, `profile_picture_url`, the account's LID and `device_count`. - **`GET /v1/group/invite?code=https://chat.whatsapp.com/…`**: the group's name and description, size, creation time, settings, owner and a few participants. - **`GET /v1/channel?code=https://whatsapp.com/channel/…`**: a channel with its follower count, verification and description. - **`GET /v1/channel/messages?code=…&limit=20`**: a channel's latest posts. - **`GET /v1/channels/search?query=news&country=US`**: the channel directory, by name or by the recommended, trending, popular and new lists. ```json { "phone": "14155550123", "registered": true, "wid": { "server": "c.us", "user": "14155550123", "_serialized": "[email protected]" } } ``` ### Notes - Pass phone numbers in international format with the country code (`+14155550123`); spaces, dashes and brackets are fine. - `about` and `profile_picture_url` follow the person's privacy settings: `null` when hidden or never set. Picture URLs are signed by WhatsApp and expire after a while; download the picture if you need to keep it. - A part of a profile that could not be read this time is `null` and listed in `unavailable`; ask again later for it. - Objects carry every field WhatsApp returns. Fields such as `isMyContact`, `isBlocked`, `labels` or `unreadCount` describe the account that made the lookup, not the one looked up, and are normally empty. - Invite links and codes are both accepted. Looking at a group's invite or a channel never joins or follows it. ### Errors and billing Errors are JSON, `{"error": {"message": "…", "code": "…"}}`, with a stable `code`: | Status | `code` | Meaning | Charged | | --- | --- | --- | --- | | 400 | `phone_required`, `invalid_phone` | the phone number is missing or cannot be a phone number | no | | 400 | `code_required`, `invalid_code` | the invite code or link is missing or malformed | no | | 400 | `invalid_limit`, `invalid_country`, `invalid_view`, `invalid_query` | an option is out of range | no | | 404 | `not_registered` | the number has no WhatsApp account (Get Profile) | yes | | 404 | `not_found` | the invite code is wrong, revoked or expired | yes | | 503 | `service_unavailable` | the lookup could not be completed; retry later | no | A number without a WhatsApp account is a normal answer for Check Number (`registered: false`), charged like any lookup.

Releases

Last updated 2026-10-20
  1. 2026-10-20

    New read-only WhatsApp endpoints: check whether a number is on WhatsApp, read an account's public profile, preview a group invite link, and read channels, their latest posts and the channel directory.