Fast WhatsApp Number Validator | $1.5/1K | Bulk Phone Cleanup
Pricing
$1.50 / 1,000 results
Fast WhatsApp Number Validator | $1.5/1K | Bulk Phone Cleanup
Clean and validate phone lists before WhatsApp/SMS outreach. Bulk-check numbers: validity, E.164 format, country, region, carrier, line type (mobile/landline) and WhatsApp-ready flag. 100% offline — no login, no bans. Optional Premium: live WhatsApp registration check with your own provider key.
Pricing
$1.50 / 1,000 results
Rating
5.0
(1)
Developer
Apivault Labs
Maintained by CommunityActor stats
3
Bookmarked
74
Total users
34
Monthly active users
3 days ago
Last modified
Categories
Share
✅ WhatsApp Number Validator — Live Registration Check, Bulk | $0.80/1K
Live-check whether phone numbers are registered on WhatsApp — in bulk,
in parallel, no keys needed. Paste numbers and get back, for each one:
whatsappRegistered (true/false), profile picture URL, plus full metadata —
E.164 format, country, region, carrier,
line type (mobile / landline / VoIP), time zones, and a WhatsApp-ready
flag — so you stop wasting sends on landlines, typos and dead numbers.
✅ Built-in live WhatsApp check, always on — no login, no QR scan, no API keys, no bans. Every valid, mobile-capable number is checked in parallel for fast bulk processing, so you get a definitive
true/falsefor the whole list.
📣 Update — from 31 July 2026: big reliability upgrade to the live WhatsApp check — a much higher match rate and far fewer missed numbers, so valid WhatsApp users are no longer marked as "not registered". Faster at scale, and now at a lower price (see below). Same simple input, better output.
🤖 For AI agents — MCP & Standby (validate on demand)
Run this Actor in Standby mode for a warm HTTP + MCP endpoint that validates a single number per call — the perfect step inside an agent or automation flow (clean a lead before you message it). Fully offline, so it answers instantly.
- MCP tool:
validate_number→ validity, E.164/international/national formats, country, region, carrier, line type and awhatsappCapabilitygrade (yes/maybe/no). - REST (same endpoint):
GET /?number=+14155552671(optional&defaultCountry=US)
Turn on Standby in the Actor's settings to get your endpoint URL.
🔗 Use it in n8n
There's a dedicated n8n community node —
n8n-nodes-apivault-whatsapp-validator.
Perfect for a "new lead → validate → only message real WhatsApp users" automation.
- In n8n: Settings → Community Nodes → Install →
n8n-nodes-apivault-whatsapp-validator. - Add an Apify API credential (your token from Apify Console → Settings → Integrations).
- Drop the WhatsApp Number Validator node in, pass
phoneNumbers(ornumbersText), and pipe the clean records (whatsapptrue/false,e164,carrier,country,whatsappProfilePic…) into your CRM, Google Sheets, or a WhatsApp / SMS sender node.
Prefer no install? The generic Apify node can run this Actor too. And in Standby / MCP mode you can validate a single number per call for real-time, per-lead checks inside a live workflow.
⚡ Quick start
{"phoneNumbers": ["+14155552671", "+442071838750", "+5511991234567"],"defaultCountry": "US"}
Each number comes back as one clean record.
🎯 Why this matters
WhatsApp and SMS only work on valid mobile numbers. A raw list is full of landlines, mistypes, wrong country codes and dead entries. Sending to those:
- wastes your WhatsApp Business message allowance and sender reputation,
- inflates costs on per-message platforms,
- and can get your number flagged for high failure rates.
Run your list through this first, drop everything that isn't a valid mobile, and only then spend on outreach.
📦 What you get per number
| Field | Description |
|---|---|
valid | Is it a real, dialable number |
e164 | Normalised +<country><number> (the format every API wants) |
international / national | Human-readable formats |
country / regionCode | e.g. United States / US |
location | City / area description when available |
carrier | Mobile carrier name when known (Claro, Airtel, JT …) |
lineType | mobile, landline, fixed-or-mobile, voip, toll-free … |
timezones | Time zones for the number (great for send-time targeting) |
whatsappCapable | true when the line can hold a WhatsApp account (mobile / mobile-capable plan) |
whatsapp | true / false — actually registered on WhatsApp right now (live check) |
whatsappProfilePic | Profile picture URL (when the account's photo is public) |
leadScore / leadQuality | 0–100 outreach score + hot / warm / cold / dead label |
bestTimeToMessage / localTimezone / localTimeNow | Send-time helpers based on the number's time zone |
⚙️ Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
phoneNumbers | array | — | Numbers to validate (one per line) |
numbersText | string | — | Optional: paste a whole list / spreadsheet column at once (merged & de-duplicated) |
defaultCountry | string | US | ISO region for numbers without a leading + |
onlyValid | bool | false | Return only valid numbers (clean list) |
onlyWhatsappCapable | bool | false | Keep only WhatsApp-capable lines (yes + maybe); drop landline/VoIP/invalid |
onlyWhatsappRegistered | bool | false | Keep only numbers confirmed as registered on WhatsApp (live check) |
whatsappConcurrency | int | 10 | Parallel live checks (1–50) |
whatsappTimeout | int | 15 | Per-number timeout for live check (5–60s) |
exportFormat | enum | default | default / csv / both |
📤 Output example
{"input": "+5511991234567","valid": true,"e164": "+5511991234567","international": "+55 11 99123-4567","national": "(11) 99123-4567","countryCode": 55,"regionCode": "BR","country": "Brazil","location": "São Paulo","carrier": "Claro","lineType": "mobile","timezones": ["America/Sao_Paulo"],"whatsappCapable": true,"whatsapp": true,"whatsappProfilePic": "https://pps.whatsapp.net/...","leadScore": 95,"leadQuality": "hot","bestTimeToMessage": "now","localTimezone": "America/Sao_Paulo","localTimeNow": "14:32"}
whatsapp is the live result (registered right now, true/false) and
whatsappProfilePic is the account's public photo when available. Set
"exportFormat": "csv" for HubSpot / Excel-friendly columns.
⚡ Performance
- Parallel live checks — up to 8 concurrent lookups (configurable up to 20) with automatic IP rotation per number.
- ~100 numbers in under 30 seconds with default concurrency.
- Offline validation (metadata only, no live check) processes thousands of numbers in seconds.
- De-duplication built in — duplicate inputs are merged automatically, you never pay twice for the same number.
💡 Use cases
- Pre-campaign list cleaning — drop landlines, typos and invalid numbers before a WhatsApp/SMS blast.
- Cut messaging costs — only keep numbers that can actually receive messages.
- CRM hygiene — normalise every number to E.164 and tag carrier / country.
- Lead enrichment — append country, region, carrier and line type to a contact list.
- Send-time targeting — use the time zone to message at the right local hour.
💰 Pricing
$0.80 / 1,000 results ($0.0008 per number) — our new lower price from
31 July 2026. You pay per number returned — use onlyValid /
onlyWhatsappCapable / onlyWhatsappRegistered to return (and pay for) just the
numbers you care about.
❓ FAQ
Does whatsapp: true mean it's really on WhatsApp?
Yes — when the live check returns true, the number is registered on WhatsApp
right now. When it returns false, it's not. The live check is always on —
every valid, mobile-capable number is checked, so you get a definitive
true/false for the whole list.
Why do some numbers show whatsappCapable: true but whatsapp: false?
whatsappCapable means the line can hold a WhatsApp account (it's a mobile /
mobile-capable number). whatsapp is the live result — whether an account is
actually registered on that number. A capable number with no WhatsApp account
returns whatsappCapable: true, whatsapp: false.
Which countries are supported? Global — libphonenumber covers every country's numbering rules.
⚖️ Use responsibly
This tool validates and formats phone numbers. You are responsible for having a lawful basis and any required consent before contacting people, and for complying with WhatsApp's terms, the TCPA, GDPR and other applicable laws.