WhatsApp business profile lookup by phone number
A phone number on a lead form tells you almost nothing. The same number on WhatsApp often tells you who the business is: its name, what it does, where it is, when it's open, and how long it has been on WhatsApp.
wtsp.dev returns all of that from one request.
One call, the whole business profile
curl "https://wtsp.dev/v1/profile?phone=14155552671" \ -H "Authorization: Bearer $WTSP_API_KEY"For a business account, the answer carries its public profile:
{ "phone": "+14155552671", "hasWhatsApp": true, "accountType": "business", "profile": { "about": "Fresh groceries, delivered daily ๐", "aboutRestricted": false }, "devices": { "count": 2, "hosted": false }, "business": { "displayName": "Fresh Market SF", "description": "Neighbourhood grocery with same-day delivery across San Francisco.", "categories": ["Grocery Store", "Food delivery"], "email": "hello@freshmarket.example", "websites": ["https://freshmarket.example"], "address": "123 Market St, San Francisco, CA 94103", "hours": [{ "day": "mon", "mode": "specific_hours", "openTime": "08:00", "closeTime": "20:00" }], "memberSince": "Joined in March, 2021", "verifiedLevel": "unknown", "linkedFacebookPage": { "id": "100064523310987", "name": "Fresh Market SF", "likes": 1840 } }}It costs 0.006 USDC per number, so 1,000 profiles cost $6. The answer also includes coordinates, the time zone of the opening hours, whether the business sells through a WhatsApp cart, and whether WhatsApp flags the account as automated.
Personal or business?
accountType answers it. A business account has published a business profile; a personal one hasn't, and personal accounts never publish a name, so business is null for them. You still get the about text when privacy settings show it, the account's country and its linked devices.
That split alone is useful: in a list of mixed contacts, it tells you which numbers belong to companies.
What teams use it for
- Lead enrichment. A form gives you a number. The profile fills in the company name, category, website, email and address, so sales sees who they're calling before they call.
- Checking a supplier or partner. A profile that has existed for years, links a Facebook page with a following, and lists a real address and hours reads very differently from one created last week with nothing filled in.
- Spotting real businesses at signup.
devices.hostedis true when the account runs on the WhatsApp Business Platform rather than a phone, a strong sign of an established business.automatedTypeis set when WhatsApp flags the account as a bot. - Segmenting a list. Categories like "Restaurant" or "Real Estate" let you split a contact list by industry without asking anyone.
Only pay for numbers that are on WhatsApp
If your list is large and you don't know how many numbers have WhatsApp, check them first with /v1/exists at 0.004 USDC, then fetch profiles only for the yeses. A number that isn't on WhatsApp still gets a definitive answer from /v1/profile, so either order works. Malformed numbers are turned away before you pay, and a lookup that gets no answer costs nothing.
Add the photo
/v1/profile/full returns everything above plus the profile photo as a permanent link, for 0.01 USDC. See getting a WhatsApp profile picture by phone number.
Try a number on the playground, or read the full field list in the API reference.