WhatsApp Number Validator
Pricing
from $4.00 / 1,000 checked numbers
WhatsApp Number Validator
Check whether phone numbers are registered on WhatsApp. Feed it a list of numbers and get back a simple yes/no for each — nothing else. Validate numbers in bulk and export to JSON, CSV, or Excel.
Pricing
from $4.00 / 1,000 checked numbers
Rating
0.0
(0)
Developer
VeroAPIs
Maintained by CommunityActor stats
0
Bookmarked
291
Total users
75
Monthly active users
7 hours ago
Last modified
Categories
Security
Limited permissionsShare
WhatsApp Number Checker — bulk WhatsApp validator
WhatsApp Number Checker is a bulk WhatsApp validator: feed it a list of phone numbers and get back a simple yes/no for each — is the number registered on WhatsApp or not. Download the results as JSON, CSV, Excel, HTML, or XML.
Use it to check if a number is on WhatsApp, clean phone lists, and verify leads before a campaign. It runs in the cloud and needs no coding.
Paid Apify plans only. This Actor runs on paid plans only. On a free plan the run ends immediately with a "paid plan required" message and you are charged nothing. Upgrade your plan to use it.
Why use it?
- ✅ Clean yes/no answers — one row per number,
trueorfalse, nothing to interpret. - 🌍 Any country, any format — paste numbers the way they sit in your spreadsheet:
+44 20 7946 0123,0044 20 7946 0123,(415) 555-0123with a Default country, or plain digits. - 🔗 Rows match your list — every row repeats the number exactly as you entered it, next to the clean international version and its country.
- 💸 Pay only for answers — numbers that can't be checked are listed separately and never charged.
- ⚡ Fast — most runs finish in a few seconds.
Popular uses
- Clean a contact list before a WhatsApp campaign, so you only message numbers that can receive it.
- Verify leads from forms, ads and directories before your sales team calls them.
- Pick the right channel per contact: WhatsApp for numbers that have it, SMS or email for the rest.
- Keep a CRM up to date by flagging which customers you can reach on WhatsApp.
- Automate checks from Make, Zapier, n8n, your own code or an AI assistant.
What does it do?
For each phone number, the Actor:
- Checks each number's format first — so every charge goes to a real check. Numbers that aren't phone numbers, or that miss their country code, are set aside with a clear reason.
- Checks WhatsApp registration — confirms whether the number is a real, registered WhatsApp account.
That's it. If you also need profile pictures, about text, and WhatsApp Business details, use WhatsApp Profile Scraper instead.
How to use it
- Paste your phone numbers into Phone numbers, one per line (up to 1,000 per run).
- If some numbers have no country code, pick their country under Default country.
- Click Start.
- Download your results as JSON, CSV, Excel, HTML or XML, or read them through the API.
What data does it return?
Each result is one row per phone number:
| Data | Details |
|---|---|
✍️ Your number (input) | the number exactly as you entered it, so you can match rows back to your list |
📱 Number (number) | the number in international format without the +, in E.164 digits (ready for wa.me links) |
🌍 Country (country) | two-letter code of the country the number belongs to, such as GB or DE |
✅ Has WhatsApp (hasWhatsApp) | whether the number is a registered WhatsApp account (true / false) |
Every number we could check gets its own row.
If a number couldn't be checked at all — bad format, a missing country code, or WhatsApp wouldn't answer — it gets no row, because a blank hasWhatsApp and a real false must never look alike. Those numbers are listed in the FAILED_NUMBERS record in the run's key-value store (shown as Numbers we couldn't check on the Output tab), with the reason for each, and they are not charged. If every number was checked, the list is empty. If none of the numbers can be read, the run finishes with a message that says how to write them. If WhatsApp didn't answer for any number, the run fails rather than finishing with an empty dataset. A spending limit too low for even one check also finishes with a message saying so.
Input
Provide a numbers array of phone numbers, ideally in international format with the country code. Spaces, dashes, brackets and a leading 00 are all fine. Up to 1,000 numbers per run.
{"numbers": ["+353830648858", "+14155550123"]}
Numbers without a country code
Numbers written the local way, like 020 7946 0123 or (415) 555-0123, need to know their country. Set Default country (defaultCountry) to its two-letter code and they are read as numbers from that country. Numbers that start with + or 00 always keep their own country, so one list can mix both. Plain digits that start with the Default country's own code, like 442079460123 in a UK list, are read as full international numbers too. Numbers from any other country need their + or 00 while a Default country is set. Keep the leading 0 on local numbers so they are always read as local, even when their digits happen to start like a country code.
{"numbers": ["020 7946 0123", "+353 83 064 8858"],"defaultCountry": "GB"}
Without a Default country, a number written the local way, with a leading 0 or a bracketed area code, is listed in FAILED_NUMBERS with the reason "Missing the country code" and is not charged. Plain digits without a + are read as a full international number, so for local numbers written as bare digits, like 4155550123, set Default country to be sure they are read as yours. Plain digits that look like they already carry a country code but don't form a valid number are listed with the reason "Check this number", and are not charged either.
Output
[{ "input": "+353830648858", "number": "353830648858", "country": "IE", "hasWhatsApp": true },{ "input": "+14155550123", "number": "14155550123", "country": "US", "hasWhatsApp": false }]
And the FAILED_NUMBERS record for a run that had a couple of unreadable lines:
[{ "number": "020 7946 0123", "reason": "Missing the country code. Write it like +1 415 555 0123, or set a Default country." },{ "number": "hello", "reason": "Not a valid phone number." }]
Export and integrations
- Download results from the Output tab as JSON, CSV, Excel, HTML or XML.
- Connect it to Make, Zapier, n8n, Google Sheets and other tools through Apify integrations.
- Get notified or trigger the next step with webhooks when a run finishes.
- Numbers sent as plain numbers (for example straight from a spreadsheet column) work too.
Run it from your code
Get results in one call with the API:
curl -X POST "https://api.apify.com/v2/acts/vero-api~whatsapp-number-checker/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"numbers": ["+353830648858", "+14155550123"]}'
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('vero-api/whatsapp-number-checker').call({numbers: ['020 7946 0123', '+353 83 064 8858'],defaultCountry: 'GB',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((row) => row.hasWhatsApp).map((row) => row.input));
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("vero-api/whatsapp-number-checker").call(run_input={"numbers": ["+353830648858", "+14155550123"],})for row in client.dataset(run.default_dataset_id).iterate_items():print(row["input"], row["hasWhatsApp"])
Use it from your AI assistant (MCP)
Ask Claude, ChatGPT, Cursor, VS Code, or any assistant that supports MCP to check numbers in plain words. Add this server to its MCP settings:
{"mcpServers": {"whatsapp-number-checker": {"url": "https://mcp.apify.com?tools=vero-api/whatsapp-number-checker"}}}
Then just ask, for example:
- "Which of these phone numbers are on WhatsApp?"
- "Check this list of UK numbers and give me only the ones I can message on WhatsApp."
Pricing
Pay only for the results you get — one flat charge per number checked: $5 per 1,000 numbers ($0.005 each). Numbers that couldn't be checked are never charged.
Set a spending limit on your run and the Actor checks as many numbers as it allows; the rest are listed in FAILED_NUMBERS so you can run them later.
FAQ
Which phone number formats work? Any common way of writing a number: +14155550123, +1 (415) 555-0123, 001 415 555 0123, or digits with the country code in front. Add a Default country for numbers written without one. Mexican mobiles in the older +52 1 … form are checked in today's +52 form.
What if my numbers have no country code? Pick their country under Default country (for example GB for 020 7946 0123). Numbers that start with + or 00 keep their own country.
What happens to numbers that can't be checked? They are listed in the FAILED_NUMBERS record with a short reason, and they are never charged.
Is a number listed twice charged twice? Yes. Every line in your list is its own check, so remove repeats first if you don't need them.
How many numbers can I check per run? Up to 1,000. For longer lists, start several runs, for example from the API or an automation tool.
Does the person I check get a message or a notification? No. Nothing is sent to the numbers you check.
Can I get profile pictures, about text or business details? Yes, with WhatsApp Profile Scraper.
Why is it for paid plans only? It's built for business use, so it runs on paid Apify plans. On a free plan the run stops right away and nothing is charged.
Is this an official WhatsApp tool? No. This Actor is not affiliated with, endorsed by, or sponsored by WhatsApp or Meta. WhatsApp is a trademark of its owner, used here only to describe what the Actor checks.
More tools from us
- wtsp.dev — the same WhatsApp check as a plain HTTP API, one number per request, paid per call in USDC or with a prepaid key. Ready for AI agents.
- WhatsApp Profile Scraper — profile picture, about text and business data for phone numbers.
- Phone Number Carrier Lookup — carrier, line type, country and time zone for phone numbers.
- Email Validator — a valid, risky or invalid verdict for every email address on your list.
- Telegram Username Checker — profiles, channels, groups and bots by username.
- DNS Tools — WHOIS, domain age and DNS records for any domain.
Enjoying the Actor? A short review on its Store page helps other people find it.