E.164 is the international phone number format defined by the ITU: a +, the country code, then the national number without its trunk prefix - at most 15 digits, no spaces, dashes or brackets. +442079460000 is E.164; 020 7946 0000 and +44 (0)20 7946 0000 are not.
Paste a number below to convert it. A number written the local way needs its country.
5 free conversions a day, shared with the phone number validator. Numbers are not stored.
+, then the country code: 1 to 3 digits (1 for the US and Canada, 44 for the UK, 353 for Ireland). Country codes never start with 0.+. So a stored E.164 string fits in 16 characters.+: no spaces, dashes, dots or brackets.0 (or 8 in Russia) you dial inside the country goes. +44 (0)20... is a display habit, not a valid number.00 or 011 is what you dial to leave a country; the + replaces it.ext. 204; keep it in a separate field.Most countries just drop the leading 0, but not all of them. These are the cases that break naive "strip the zero" code.
| Country | Written locally | E.164 | Rule |
|---|---|---|---|
| United States +1 | (866) 398-2896 | +18663982896 |
No trunk prefix; the 1 is the country code, not a long-distance digit. |
| United Kingdom +44 | 020 7946 0000 | +442079460000 |
Drop the leading 0. |
| Germany +49 | 030 12345678 | +493012345678 |
Drop the leading 0. |
| France +33 | 01 23 45 67 89 | +33123456789 |
Drop the leading 0. |
| Italy +39 | 06 1234 5678 | +390612345678 |
Landlines keep the 0 - it is part of the number. |
| Australia +61 | 0412 345 678 | +61412345678 |
Drop the leading 0. |
| India +91 | 098765 43210 | +919876543210 |
Drop the leading 0. |
| Philippines +63 | 0917 123 4567 | +639171234567 |
Drop the leading 0. |
| Brazil +55 | (11) 91234-5678 | +5511912345678 |
Area code stays, no carrier code. |
| Japan +81 | 03-1234-5678 | +81312345678 |
Drop the leading 0. |
| Russia +7 | 8 (495) 123-45-67 | +74951234567 |
The trunk prefix is 8, not 0 - drop it. |
| Argentina +54 | 011 15 2345-6789 | +5491123456789 |
Mobiles: drop 0 and 15, insert 9 after +54. |
The usual pattern checks the shape:
^\+[1-9]\d{1,14}$
It accepts +10000000000 and +999999: right shape, but no country assigns those numbers. A regex cannot know that UK numbers have 10 digits after +44, that US numbers 555-0100 to 555-0199 are reserved for fiction, or that Argentine mobiles need the 9. Use it as a quick filter on input, then validate against the numbering plan - Google's libphonenumber (ports for every major language) or an API.
+442079460000. For storage, comparison and APIs: one number, one string.+44 20 7946 0000. The same digits with spaces, for people to read.020 7946 0000. How the number is dialled inside its country. Ambiguous without the country: 8663982896 is a US number, and other digit strings are valid in several countries at once.varchar(16)) as the canonical value and put a unique index on it - duplicates written as (866) 398-2896 and +1 866-398-2896 collapse into one.Twilio, Vonage, Amazon SNS and most other SMS and voice providers expect the destination in E.164. A local-format number is the most common cause of "invalid To number" errors: the provider cannot guess the country. Convert and validate before the send, and drop numbers that do not resolve - a failed send still costs a request, and a landline cannot receive an SMS code.
The DialCode API does that in one call: GET /v1/phone/{number}?country=GB returns the E.164 form, the line type (mobile, landline, VoIP) and scam-risk signals. For a whole list, use the bulk phone number validator.
The international phone number format from ITU-T Recommendation E.164: +, country code and national number, up to 15 digits, with no spaces or punctuation. Example: +442079460000.
Remove spaces and punctuation, remove the national trunk prefix (usually the leading 0), and put + and the country code in front. Watch the exceptions: Italian landlines keep the 0, Russia's prefix is 8, Argentine mobiles gain a 9. The converter above handles them.
The standard counts digits only; the + marks that the country code follows. In practice store and send it with the + - that is what SMS providers and libphonenumber expect.
15 digits including the country code, so 16 characters with the +.
+1 then the 10-digit number: (866) 398-2896 becomes +18663982896.
E.164, line type and scam risk in one JSON call - free 1,000 lookups a month. No card.