Phone Number Validator
E.164 formatting, country detection, and number type — mobile, fixed line, toll-free, or premium rate.
Example: The input "07911 123456" with country context UK normalizes to E.164 format +447911123456, is identified as a UK mobile number, and passes validation — numbers stay in a consistent E.164 format for as long as 10 years even if local dialing conventions change.
Validates against the ITU-T E.164 international numbering plan standard.
How phone number validation works
Each country publishes its own numbering plan — which prefixes are valid, how many digits a mobile versus a fixed-line number should have, and which ranges are reserved for special services like toll-free or premium-rate lines. This tool checks a number against those published rules to confirm it is well-formed and assignable, and classifies it by type where the numbering plan makes that determinable.
If the number already starts with a + and country calling code, the country is detected automatically. Numbers in local/national format (no + prefix) are ambiguous on their own — the same digit sequence could be a valid number in several different countries — so a country hint is needed to parse them correctly. Every valid result includes the E.164 form, the single unambiguous representation recommended for storing phone numbers in a database or passing them to telephony APIs.
Frequently asked questions
- Do I need to include the country code?
- No — if the number starts with a + and a calling code (e.g. +1, +44), the country is detected automatically. Otherwise, provide a country hint (ISO alpha-3, e.g. GBR) so a national-format number can be parsed correctly.
- What number types are detected?
- mobile, fixed_line, toll_free, and premium_rate. Other categories the underlying library distinguishes (VoIP, pagers, ambiguous fixed-line-or-mobile numbers) come back as unknown rather than a guessed category.
- Is this a live carrier lookup?
- No — validation is purely against each country's published numbering plan (via libphonenumber-js), not a live carrier/HLR check, so it confirms the number is well-formed and assignable, not that it's currently active.
- What is E.164 format?
- E.164 is the international standard format for phone numbers: a plus sign followed by the country calling code and national number, with no spaces, dashes, or parentheses (e.g. +14155552671). It's the single unambiguous representation of a phone number that works globally regardless of local formatting conventions.
- Why is E.164 used for phone number storage?
- Storing phone numbers in E.164 avoids ambiguity from the dozens of different national formatting conventions (spaces, dashes, leading zeros, parentheses) and guarantees the number can be dialled or compared consistently across systems — most databases and telephony APIs expect or recommend E.164 for exactly this reason.
- What does the country code prefix mean?
- The country calling code (e.g. +1 for the US/Canada, +44 for the UK) tells international phone systems which country's numbering plan the following digits belong to, so the call or message can be routed to the correct national network before local routing takes over.
- What is the difference between a local and international phone number format?
- Local (national) format is how a number is dialled within its own country — often starting with a leading 0 or trunk prefix, and omitting the country code, since it's implied. International format includes the country calling code and is dialled the same way from anywhere in the world, typically written with a leading + sign.
- Can all phone numbers be expressed in E.164?
- Nearly all valid, assignable phone numbers can be expressed in E.164 — it's designed to cover every country's numbering plan. Some special short codes, emergency numbers, or non-standard extensions within certain private networks fall outside its scope, but these are exceptions, not the norm for a valid public phone number.