WhatsApp Number Scraper & Phone List Cleaner avatar

WhatsApp Number Scraper & Phone List Cleaner

Pricing

from $0.50 / 1,000 number processeds

Go to Apify Store
WhatsApp Number Scraper & Phone List Cleaner

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

Badr Bouargan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

WhatsApp Number Validator – Bulk Checker & List Cleaner

WhatsApp Number Validator

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/212600000000 returns the same 222 KB page for a number that exists and one that does not.
  • api.whatsapp.com/send?phone=… behaves identically.
  • web.whatsapp.com answers HTTP 400 without a signed-in session.
  • WhatsApp's robots.txt states 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-678 and +212612345678 become 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

Real output

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.

QuestionAnswered 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

  1. Paste your list into Phone numbers — one per line, any spelling.
  2. If some numbers are written locally (0612345678), pick the country they belong to.
  3. Switch on Check WhatsApp registration and fill in your provider's five fields.
  4. Optional: Keep only mobile, or restrict to certain countries, to shrink what gets checked.
  5. 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.

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.