Phone Number Formatter
Paste one number or a thousand and see all four forms at once: E.164 for a database column or a messaging API, the national form you would dial inside the country, the international form to give somebody abroad, and the RFC 3966 tel: URI a web page puts in a link. Every line is read against the numbering plan of the country it belongs to, all 245 of them, from the libphonenumber-js 1.13.12 metadata that ships with the page, so each line also reports the country, the line type and whether the digits match a published range or only fit a length the plan allows. An extension is kept in its own field instead of being folded into the number, and nothing is uploaded: the numbers stay in this tab, and only the country and output style you chose are remembered.
1 line read: 1 valid, 0 possible, 0 formatted without a plan, 0 not read.
Matches a fixed line or mobile range in the United States numbering plan.
- (617) 555-0142
- +442079460958
- Too few digits for the United States numbering plan: this line has 6 after the calling code, and the plan has no number that short. Check for a missing area code.
tel: URI a web page puts in a link so a phone dials it on a tap. An extension has no place in E.164, so it is carried in the other three forms and kept in its own column of the CSV.Up to 1,000 lines in one pass, read here in your browser with nothing uploaded. Typing a number with a plus or a leading 00 reads its own calling code and ignores the country selector, which is there to say how to read a number typed without one. Each number is read against the numbering plan of the country it belongs to: 245 countries and territories across 206 calling codes, plus the 9 global service codes such as international freephone, from the libphonenumber-js 1.13.12 metadata that ships with this page. A number on a shared calling code that no country's plan claims is still written out and labelled format only. The country and style you pick are remembered in this browser alone, the numbers are not, and the Start over button above forgets the two settings.
Common questions
- What is E.164 format, and why does everything ask for it?
- E.164 is the international standard form: a plus sign, the country calling code, then the national number, with no spaces, brackets or hyphens and no more than fifteen digits in total. It is unambiguous anywhere in the world, which is why databases, CRMs and messaging APIs store numbers that way. (617) 555-0142 becomes +16175550142. This page shows that form beside the three human ones so you can copy whichever the next system wants.
- Does a valid result mean the number is real?
- No, and that is the one thing to take away. Valid here means the digits match a published range in the numbering plan of the country they belong to, which proves the number is well formed and nothing more. Whether it was ever issued, is still connected or belongs to the person you have in mind is known only to the carrier. When a number's length fits the plan but no published range matches its digits, this page says possible rather than valid instead of rounding the answer up.
- Which countries can it check?
- All 245 countries and territories in the libphonenumber-js 1.13.12 metadata, across 206 country calling codes, plus the nine global service codes such as international freephone and satellite. Each number is checked against the plan of the place it actually belongs to rather than the one you picked: 07911 123456 comes back as Guernsey, 01534 123456 as Jersey and +1 876 555 0142 as Jamaica, because ranges, not calling codes, say where a number lives. The only lines reported as format only are numbers on a shared calling code that no country's plan claims; those are still normalised to E.164 and grouped, with no validity attached.
- What happens to an extension?
- It is pulled out and kept separately. Common ways of writing one are understood: ext, ext., extn, extension, x, # and the ;ext= of a tel: URI. E.164 has no room for an extension, so that form stays bare, and the extension is appended to the national and international forms and written as ;ext= in the RFC 3966 URI, which is where 6175550142 x7 becomes tel:+16175550142;ext=7. In the CSV download it has a column of its own, and it is never counted among the digits of the number.
- Can I format a whole column from a spreadsheet?
- Yes. Paste up to 1,000 numbers, one on each line, and pick a single output style so the result is one line per input line in the same order, ready to paste back. A line that cannot be read keeps its place and says why instead, and an empty cell comes back as an empty line, so nothing shifts by a row. The CSV button downloads a row per line with its status, country, calling code, line type, digit count, extension, all four formats and any error, and it holds a row open for each empty line too. Only the lines carrying a number count towards the 1,000.
- Why does it ask for a country?
- Because a number typed without a calling code is ambiguous: 020 7946 0958 is a London landline in the United Kingdom and two digits too long for a United States one. The country selector says how to read numbers typed that way, including which trunk prefix to drop. A number that carries its own code, with a plus or a leading 00, ignores the selector, so a mixed list still comes out right. A +1 number is placed by its area code rather than by the selector, which is how a Toronto number is reported as Canada and a Kingston number as Jamaica.
- Are the numbers I paste uploaded or saved anywhere?
- No. The formatting runs in this browser tab and nothing is transmitted: the numbering data is bundled with the page, so there is no lookup service to send a number to. That matters here more than for most tools, because a phone list is other people's contact details. What is written to this browser is the country and the output style, never the numbers, and the Start over button above the tool forgets those two settings.
Formats and validates the number's shape against each country's numbering plan, from the libphonenumber-js 1.13.12 metadata for 245 countries and territories. It confirms a number is well formed, never that it is assigned, active or reachable, and it cannot see a plan change published after that snapshot.