WhatsApp Number Scraper & Phone List Cleaner
Pricing
from $0.50 / 1,000 number processeds
WhatsApp Number Scraper & Phone List Cleaner
Cleans phone lists as they really arrive (+212…, 0…, (212) 6…) into one international column with country, carrier, line type and time zone, duplicates merged and impossible numbers flagged. Optional WhatsApp registration check via your provider. 199 countries. Example: Morocco as default.
Pricing
from $0.50 / 1,000 number processeds
Rating
5.0
(1)
Developer
Badr Bouargan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
WhatsApp Number Validator – Bulk Checker & List Cleaner

Check whether phone numbers are registered on WhatsApp, one at a time or in bulk, without sending a message and without alerting anyone. Every number is cleaned and validated first, so you never pay to check a number that cannot exist.
Built for sales teams qualifying leads, agencies cleaning lists before a campaign, and CRM teams deduplicating contact databases.
How the WhatsApp check works — the part nobody explains
WhatsApp does not publish registration status anywhere. Tested, not assumed:
wa.me/212600000000returns the same 222 KB page for a number that exists and one that does not.api.whatsapp.com/send?phone=…behaves identically.web.whatsapp.comanswersHTTP 400without a signed-in session.- WhatsApp's
robots.txtstates that "collection of data on Facebook through automated means is prohibited unless you have express written permission".
So no Actor reads WhatsApp status from a public page — not this one, not any other. Every validator on the market queries a service that holds an authenticated connection; the well-known ones admit it at the bottom of their page, in one line.
This Actor is honest about it and puts you in control: you bring a validation provider, and the Actor does everything around it. Switch on Check WhatsApp registration and fill in five fields from your provider's documentation — address, key, method, the name of the number field, and where the yes/no sits in their answer. No provider is hard-coded: their endpoints change, and shipping one that cannot be tested would be a promise rather than a feature.
Why the cleaning stage matters to your bill
Providers charge per number checked. A real list is 20–40 % unusable: numbers written three different ways, landlines, missing country codes, typos. Sending those to a paid API is money burnt.
So before anything is checked, this Actor:
- normalises every number to international form —
0612345678,(212) 612-345-678and+212612345678become one number - removes duplicates — that example was one contact, not three
- drops what cannot exist — wrong length for the country, prefixes no operator uses, repeated digits
- flags landlines so you can skip them before a messaging campaign
- adds country, carrier, line type and time zone, from Google's libphonenumber

On the test list above: 17 numbers in, 14 out — three were the same Moroccan mobile written three ways, and three could not exist. Only the 11 valid ones would have reached a provider.
That stage runs whether or not you have a provider, takes 3.9 seconds for 17 numbers, and costs $0.0001.
What "valid" means, and what it does not
+212600000000 comes back valid: it is a structurally correct Moroccan mobile on an Inwi prefix. Whether anyone answers it is a different question, and no format check can answer it.
| Question | Answered by |
|---|---|
| Could this number exist? | The cleaning stage, always, at almost no cost |
| Is there a WhatsApp account on it? | Your provider, on the numbers that survived cleaning |
Step-by-step
- Paste your list into Phone numbers — one per line, any spelling.
- If some numbers are written locally (
0612345678), pick the country they belong to. - Switch on Check WhatsApp registration and fill in your provider's five fields.
- Optional: Keep only mobile, or restrict to certain countries, to shrink what gets checked.
- Press Start, then export as CSV, Excel or JSON.
Input example
{"phoneNumbers": ["212612542341", "212612345678", "0612345678"],"defaultCountry": "MA","keepOnlyMobile": true,"checkWhatsApp": true,"whatsappApiUrl": "https://api.your-provider.com/v1/check","whatsappApiKey": "your key","whatsappResultPath": "exists"}
Output example
One row per number, in the shape other WhatsApp validators use, so a file from this Actor can replace theirs:
{"phone": "212612542341","exists": true,"source": "live","timestamp": "2026-09-23T12:36:30.000Z","status": "success","error": null,"input": "0612542341","e164": "+212612542341","valid": true,"country": "MA","countryName": "Morocco","numberType": "mobile","isMobile": true,"carrier": "Orange","timezones": ["Atlantic/Canary"],"international": "+212 6 12 54 23 41","issues": []}
exists and source are filled only when a provider is configured. Everything below them comes from the cleaning stage and is always there.
Coverage
199 countries, from the United States to Tuvalu, each with its dial code — including Morocco (+212), the United Arab Emirates (+971) and Saudi Arabia (+966). Any country code is recognised, whether or not it is in the dropdown; the list exists so you can say where locally-written numbers belong, and filter on country.
Rate limits
Your provider sets the pace, not this Actor. Tell it how many requests per minute your plan allows and it keeps to that instead of discovering the limit by being refused. Numbers rejected during cleaning are never sent, so they never count against your quota.
Frequently asked questions
Does it message the numbers? No. Nothing is sent and no owner is notified. A serious provider queries a directory; it does not make the phone ring.
Can I check numbers in bulk? Yes — pass an array in Phone numbers. There is no built-in ceiling; your provider's plan is the limit.
What if I do not have a provider yet?
The Actor still runs and cleans the whole list, with the exists column left empty. That alone removes duplicates and impossible numbers, which is what you would otherwise pay to discover.
Which countries are supported? All of them. Include the country code with each number, or set the default country for locally-written ones.
Why is a number I know is dead marked valid? Because it is well-formed. See the table above — format and service are different questions, and that is exactly what the WhatsApp check is for.
Legal note
Phone numbers identify people. Under the GDPR and similar laws you need a lawful basis to process them, and separate consent before sending marketing messages — cleaning a list does not make it lawful to contact. Results stay in your own dataset on Apify, and nothing leaves the run unless you configure a provider yourself.