Quick answer: paste a number (with + for international, or pick a default country below) and you get its verdict, E.164 form, national and international formats, tel: URI, country, and line type. It distinguishes possible (right length) from valid (allocated prefix): +1 300-555-0100 is possible but invalid; +1 415-555-2671 is valid and formats to +14155552671. The metadata is Google's libphonenumber data — 257 KB shipped with the page, zero API calls.

Validate a number

As you type:
Country
Line type
National significant #
E.164
International
National
tel: URI (RFC 3966)
Calling code

Ready. Validation runs locally — nothing is uploaded.
Advertisement

Verified Formats by Country

CountryCodeExample (E.164)National formatTypeNSN digits
United States+1+14155552671(415) 555-2671Fixed or mobile10
Canada+1+14165550199(416) 555-0199Fixed or mobile10
United Kingdom+44+442070313000020 7031 3000Fixed line10
United Kingdom+44+44740012345607400 123456Mobile10
Germany+49+4930901820030 901820Fixed line8
France+33+3314268530001 42 68 53 00Fixed line9
Spain+34+34912345678912 34 56 78Fixed line9
Netherlands+31+31201234567020 123 4567Fixed line9
Australia+61+61292507111(02) 9250 7111Fixed line9
India+91+919876543210098765 43210Mobile10
Brazil+55+5511912345678(11) 91234-5678Mobile11
Mexico+52+52551234567855 1234 5678Fixed or mobile10
Japan+81+8133212111103-3212-1111Fixed line9
Nigeria+234+23480312345670803 123 4567Mobile10

Every row above was machine-checked against the metadata this page ships. The "national significant number" is what's left after the calling code and any trunk prefix — the US's 10 digits, Brazil's 11. National formats keep the trunk prefix you dial domestically (the leading 0 in the UK, Germany, France, and friends) that E.164 drops.

How the Validator Works

Under the hood this is libphonenumber-js 1.13.12 (MIT) carrying the complete offline metadata from Google's libphonenumber project — the same dataset Android, WhatsApp, and half the CRM industry use to sanity-check numbers. Parsing extracts the country, calling code, and national significant number; validation checks length ranges and prefix allocations; formatting renders the number against the country's canonical patterns.

A worked example, three ways

InputPossibleValidWhat the metadata says
+1 415-555-2671YesYes10-digit NSN, area 415 allocated → E.164 +14155552671, national (415) 555-2671
+1 300-555-0100YesNoLength fits NANP, but area code 300 is unassigned — possible ≠ valid
+1 415 555 26712NoNo11-digit NSN doesn't fit any US length range

The middle row is the whole reason two checks exist. "Possible" is the length check — useful while a user is typing, or to catch fat-fingered extra digits before the prefix check runs. "Valid" means the number matches an allocated block, which is as far as offline metadata can take you. Neither means the number is in service or owned by the person who typed it; that takes an SMS or a carrier lookup, by design.

What you get, per number

Credits and licenses

Validation and formatting by libphonenumber-js 1.13.12 (MIT), built on Google's libphonenumber metadata (Apache-2.0), bundled to 257 KB under /vendor/ with both license texts. Everything runs in your browser tab.

Frequently Asked Questions

How do I validate a phone number?

Paste the number and pick a default country for numbers written without a + prefix. The validator checks it against Google's libphonenumber rules: length against the country's allowed ranges, the prefix against allocated blocks, and the whole number against known line-type patterns. A valid US number like +1 415-555-2671 comes back valid=true with its E.164 form, +14155552671.

What is E.164 format?

E.164 is the ITU standard for globally unique phone numbers: a plus sign, then the country code, then the national significant number, with no spaces, dashes, or parentheses — 15 digits maximum. +14155552671 is E.164; (415) 555-2671 is the same number in US national format. Databases and APIs should store E.164 and format for display at the edge.

What is the difference between a possible and a valid phone number?

Possible means the length is right for the country — the number could exist. Valid means the prefix is also in an allocated block. +1 300-555-0100 is possible=true but valid=false: ten digits like a US number, but area code 300 isn't assigned. Validate when you need to dial; use possible as a softer check while someone is still typing.

Can this tool tell if a number is a mobile or landline?

Yes, where the country's numbering plan distinguishes them. The UK is clean: 07400 123456 is MOBILE, 020 7031 3000 is FIXED_LINE. The US and Canada are lumped as FIXED_LINE_OR_MOBILE because NANP numbers don't carry the distinction in the number itself. Type comes from Google's metadata patterns, not a live carrier lookup — it can't tell you who currently holds the number.

Does the validator call an API or upload my numbers?

No. The full Google libphonenumber metadata for every country ships with the page (about 257 KB) and every check runs in your browser tab. Nothing is transmitted — which is the difference between this and most "free phone validation" sites that harvest the numbers you paste. Safe for customer lists.

Why does my number fail without a country?

A number written in national format — 020 7031 3000, (212) 555-2368 — doesn't carry enough information on its own to identify the country. Either write it with the international prefix (+44 20 7031 3000) or set the default country dropdown to the country the number belongs to. Numbers starting with + always parse regardless of the dropdown.

Advertisement