Check Phone on WhatsApp
Check if a phone number is registered on WhatsApp.
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.
The Gatekeeper: Validating Phone Numbers
The /v2/contacts/check-exists endpoint is your first line of defense against low-quality data. It queries the WhatsApp Global Directory to verify if a specific MSISDN (phone number) corresponds to an active WhatsApp account.
🏗️ Why is this Critical?
Sending messages to invalid numbers is one of the fastest ways to get your bot banned.
- The Signal: If you try to message
+12345and it fails because the user doesn't exist, WhatsApp's spam algorithms flag your account as "Blindly Broadcasting". - The Threshold: A high failure rate indicates you bought a low-quality lead list.
- The Fix: Validate 100% of new numbers using this endpoint before queuing your first message.
🧹 Input Sanitization
WhatsApp requires a clean format for verification: [CountryCode][Number].
- Supported Input:
15551234567 - Supported Input:
+15551234567(The API strips the plus) - Unsupported:
(555) 123-4567(You must strip symbols) - Unsupported:
0015551234567(Do not use 00 prefix)
The Brazil/Mexico Rule
Some countries have variable number lengths.
- Mexico: Mobile numbers need a
1after the country code+52. - Brazil: Numbers might have an extra
9. - Auto-Correction: The Wawp API attempts to auto-correct common formatting errors for these regions, but it is best if you provide the E.164 standard format.
🚦 Rate Limits & Safety
This endpoint performs a real-time network lookup.
- The Limit: You should not exceed 1 verification per second per instance.
- The "Scraping" Risk: If you feed a sequential list (e.g.,
+15550001, tips: [ { type: 'info', title: 'Validation', content: 'Verifies if a phone number is registered on WhatsApp.' }, { type: 'warning', title: 'Anti-Scraping', content: 'Excessive checks on random numbers may flag your account as a scraper.' } ], recommendations: [ "Validate numbers before sending your first message to improve delivery rates.", "Do not use this to 'warm up' numbers; use it strictly for verification." ]
+15550002, +15550003) into this API, WhatsApp will detect pattern recognition scraping and permanently ban your number.
- Best Practice: Only check numbers that users have explicitly provided to you (e.g., via a signup form). Do not use this to "clean" a bought database.
🔮 Integration Patterns
Pattern A: The Registration Form
- User signs up on your website.
- Backend calls
/v2/contacts/check-exists. - Result:
exists: true: Show "WhatsApp" logo next to their number on the confirmation page.exists: false: Disable the "Send via WhatsApp" button or fallback to SMS.
Pattern B: The CRM Cleaner
- You have a list of 10,000 stale leads.
- Wrong Way: Loop through all 10,000 now.
- Right Way:
- Wait until you need to message one.
- Check existence JIT (Just-In-Time) 1 second before sending.
- If invalid, mark as "Bad Data" in CRM and skip.
- If valid, send and cache the result.
❓ FAQ
Q: Does the user know I checked them? A: No. This is a silent directory lookup. It does not trigger a notification, blue tick, or "online" status.
Q: Can I get their profile picture here?
A: No. This endpoint is purely boolean (Exists/Not Exists) involved with the basic JID. To get the photo, you must first confirm existence, then call /v2/contacts/profile-picture.
Q: What if the API returns false but I know they have WhatsApp? A: Ensure you are using the correct Country Code. In 99% of cases, it's a formatting error (e.g., missing a digit or adding an extra '0' prefix).
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 | Phone number to check (digits only) 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
{
"exists": true,
"jid": "1234567890@c.us"
}Command Palette
Search for a command to run...