Get Contact Profile Picture
Get the profile picture URL of a contact.
Authentication Required
Login to swap the placeholders with your real Instance ID and Access Token.
Log InNo query parameters required
This endpoint doesn't expect data in the URL.
Best practices
Do not use profile pictures for identity verification.
Display a generic avatar if the fetch fails.
The Face of the User: Profile Pictures
The /v2/contacts/profile-picture endpoint allows you to retrieve the high-resolution avatar of a WhatsApp user, group, or business.
🖼️ Image Logic
When you request a picture, WhatsApp doesn't send the binary data directly. It provides a signed URL hosted on their CDN (Content Delivery Network).
The Response Format
{
"id": "12345@c.us",
"url": "https://pps.whatsapp.net/v/t61.24694-24/..."
}
- URL Expiry: These URLs are temporary. They expire after a certain period (usually 24-48 hours) or if the user changes their photo.
- Best Practice: Do not just store the URL string in your database.
- Option A (Lazy): Re-fetch the URL from this API every time you need to display it.
- Option B (Robust): Download the image buffer and store it in your own S3 bucket.
🛡️ Privacy & "Missing" Photos
You will often get a 404 Not Found or an empty URL.
Reason 1: Privacy Settings (Most Common)
The user has set "Profile Photo" to "My Contacts" or "Nobody".
- If you are not saved in their phone's address book, you are not a "Contact". Therefore, WhatsApp refuses to serve the image.
- Correction: There is no workaround. You must respect the user's choice.
Reason 2: No Photo
The user simply hasn't set a photo. They see the default grey silhouette.
Reason 3: It's You
You cannot fetch your own profile picture via this endpoint (use /v2/profile/me instead).
🔄 Caching & Refresh
Fetch operations are expensive networking calls.
- Default Behavior: The Wawp API caches the profile picture URL for 24 hours to speed up subsequent requests.
- Forcing a Refresh: If you suspect the user just changed their photo and you need the new one immediately, pass
refresh=true.- Cost: This bypasses the local cache and hits WhatsApp servers directly. Use sparingly.
📸 Resolution & Quality
- Standard: The API attempts to fetch the "Preview" size (roughly 96x96 or 640x640 depending on availability).
- Full HD: WhatsApp only serves the full-resolution uncompressed image (e.g., 1920x1920) if the user is in your contact list or you are in a chat with them.
- Groups: Group icons work the same way. The
contactIdwould be123456@g.us.
❓ FAQ
Q: Can I set the contact's photo?
A: No. You cannot change another user's profile picture. You can only change your own (via /v2/profile/picture) or a Group's icon (if you are an admin).
Q: Why does the URL stop working after a day?
A: All pps.whatsapp.net links are signed with a time-limited token for security. If you try to load an old URL, you will get a 403 Forbidden.
Q: Can I get the photo of a business? A: Yes. Official Business Accounts (OBA) usually have public profile photos visible to everyone, regardless of "My Contacts" settings.
Request Parameters
Configure the parameters required to interact with this endpoint. All query and body arguments are listed below with their details.
URL Parameters
Passed in the URL query stringstring | Your unique WhatsApp Instance ID Example: | ||
string | Your API Access Token Example: | ||
string | The unique ID of the contact Example: | ||
boolean | — | Whether to bypass cache and refresh the picture Example: |
Request Samples
Use these ready-to-go code snippets to integrate our API into your project quickly and efficiently. Choose your preferred language and library.
Expected Responses
Explore all possible responses and outcomes from the server. We have documented each status code with data examples to make success and error handling easier.
Example
{
"id": "123456789@c.us",
"url": "https://pps.whatsapp.net/v/t61.24694-24/..."
}Command Palette
Search for a command to run...