WhatsApp profile picture API: get a photo by phone number
A face or a logo next to a contact makes a list easier to work with, and a profile photo that suddenly changes is worth knowing about. wtsp.dev returns a WhatsApp account's profile picture from its phone number, as a link that keeps working.
One request
curl "https://wtsp.dev/v1/profile/full?phone=14155552671" \ -H "Authorization: Bearer $WTSP_API_KEY"The answer is the full WhatsApp profile plus two photo fields (trimmed to the photo here):
{ "phone": "+14155552671", "hasWhatsApp": true, "accountType": "business", "profile": { "about": "Fresh groceries, delivered daily ๐", "aboutRestricted": false, "picUrl": "https://cdn.wtsp.dev/profile-pictures/5f2c9a4e-8d1b-4c3e-9a7f-2b6d0e8c1f43.jpg?v=tkphavoFaBWOiNjZo_B5L-uG8Bw4BjhRDNPgDs-1vp4", "picHash": "tkphavoFaBWOiNjZo/B5L+uG8Bw4BjhRDNPgDs+1vp4=" }}It costs 0.01 USDC per number: $10 for 1,000 photos.
A link you can store
picUrl is permanent. Save it in your CRM or database and it keeps loading next week and next year, with no expiry to work around and no re-fetching to keep it alive.
Know when a photo changes
picHash is a fingerprint of the photo. Same hash, same photo. To watch a set of contacts, store the hash and compare it on your next lookup: a new hash means a new picture, without downloading and comparing images yourself.
When there's no photo
picUrl is null when the account has no profile photo, or when its privacy settings hide the photo from people who aren't contacts. You only ever get what the account shows publicly. A number that isn't on WhatsApp comes back with hasWhatsApp: false, which is a definitive answer.
What you get with it
The photo comes with the rest of the profile at no extra cost: personal or business account, the about text, the account's country and linked devices, and for businesses their name, description, categories, email, websites, address and opening hours. More on those in WhatsApp business profile lookup by phone number.
If you don't need the photo, /v1/profile returns the same profile without it for 0.006 USDC, and /v1/exists answers just "is it on WhatsApp" for 0.004.
From an AI agent
Agents can fetch photos with no account at all, paying each request from their own wallet:
npx @wtsp/cli profile +14155552671 --photoTry one on the playground, or set up the agent skill.