Phone & WhatsApp Validator — Bulk Clean and Normalise avatar

Phone & WhatsApp Validator — Bulk Clean and Normalise

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Phone & WhatsApp Validator — Bulk Clean and Normalise

Phone & WhatsApp Validator — Bulk Clean and Normalise

Clean a list of phone numbers at scale: normalise to E.164, validate each against real numbering-plan rules, identify the country, flag line type and duplicates, and reject the junk before you pay to message it.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

alaudin burki

alaudin burki

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Security

Limited permissions

Share

Phone & WhatsApp Number Validator — Bulk Clean, Validate, Normalise

Clean a list before it costs money to message. Normalise every number to E.164, validate it against the real numbering plan, identify the country, flag the duplicates, and reject the junk — deterministically, offline, and with no API key.

The problem this solves

A list of 10,000 numbers usually has the same number written four ways, some rows with a country code and some without, landlines mixed into a mobile campaign, and rows that were never a number. Every one of those is a paid message that reaches nobody.

What you get

FieldDescription
inputThe value you gave
e164Canonical form, e.g. +923001234567 — the join key
countryTwo-letter country, e.g. PK, GB, US
callingCode, nationalCalling code and national number
lineTypeMOBILE, FIXED_LINE, FIXED_LINE_OR_MOBILE, or null where the plan carries none
validPasses the real numbering plan
possibleRight length for the region
isDuplicate / duplicateOfThis number already appeared in this run
mobileCapableSuits an SMS/WhatsApp campaign
reasonWhy a row failed — empty, contains_letters, unparseable, fails_numbering_plan

A SUMMARY record gives the totals an operator checks before sending: valid, invalid, duplicates, unique E.164, mobile-capable, and a breakdown by country and line type.

Sample output

4/5 valid · 1 duplicates · 4 mobile-capable · 3 unique
{ "input": "0300 1234567", "e164": "+923001234567", "country": "PK",
"valid": true, "isDuplicate": true, "mobileCapable": true }

Default input

Runs with no editing: five sample numbers, PK as the default country.

What this proves — and what it does not

It proves the number is a real number, in which country, of which line type, in canonical form, and which rows duplicate each other.

It does NOT prove the SIM is active, registered, or reachable. It is not an HLR lookup.

It does NOT check WhatsApp. The public wa.me route returns HTTP 200 for a fabricated number, so it carries no signal — tested, and deliberately not used rather than quietly relied on.

Limitations

  • Line type is not available for every country. Pakistan, for example, comes back null and is counted under unknown — the summary says it does not know rather than guessing MOBILE. Where lineType is null, mobileCapable falls back to validity.
  • A default country coerces. With defaultCountry: PK, (415) 555-2671 is read as a Pakistani national number, because that is what the hint means. Set it only when the list really is single-country; otherwise give numbers with a leading +.
  • A wrong country is worse than a rejection. National-format numbers are rejected when no default country is set, rather than being guessed into a country that would silently message a stranger.
  • Numbering plans change; the library's metadata is a snapshot.

Pricing

Pay per result.