Guide

E.164 phone number format explained

E.164 is the one phone number format every telephony system understands. Here is what it looks like, how to convert numbers to it and how to validate it.

Updated October 1, 2026 · 2 min read

E.164 is the international numbering standard published by the ITU. An E.164 number is a +, the country code (1 to 3 digits) and the subscriber number, with no spaces, dashes, brackets or trunk prefix, and at most 15 digits in total.

+ 44 2079460958
│ │  └─ national number without the leading 0 (trunk prefix)
│ └─ country code (United Kingdom)
└─ plus sign

E.164 examples by country

CountryWritten locallyE.164
United States(206) 922-0880+12069220880
United Kingdom020 7946 0958+442079460958
Germany030 901820+4930901820
India098765 43210+919876543210
Nigeria0803 123 4567+2348031234567
Australia(02) 9876 5432+61298765432
France01 23 45 67 89+33123456789
Brazil(11) 91234-5678+5511912345678
Mexico55 1234 5678+525512345678
Japan03-1234-5678+81312345678

Look up the code and trunk prefix of any country in the country code list.

How to convert a number to E.164

  1. Remove everything that is not a digit, except a leading +.
  2. Replace a leading 00 (international prefix) with +.
  3. If there is no +, the number is national: remove the trunk prefix (usually 0; nothing in the US) and add + and the country code.
  4. Check the length: at most 15 digits after the +.

Step 3 is the hard part, because trunk prefixes and number lengths differ by country. Italy, for example, keeps its leading 0 (+39 06 …). That is why production code uses libphonenumber or an API instead of string manipulation:

import { parsePhoneNumber } from "libphonenumber-js";
parsePhoneNumber("020 7946 0958", "GB").number; // "+442079460958"

Or convert a whole list with the free phone number formatter.

Validating E.164 numbers

A regex only checks the shape:

^\+[1-9]\d{1,14}$

+15555555555 passes the regex but is not a real number. To check that a number is actually in use in the country’s numbering plan, use the phone number validator or the numlookupapi API, which returns valid, line_type, carrier and e164_format.

Why APIs require E.164

SMS and voice providers such as Twilio, Vonage, MessageBird and AWS SNS route messages by country code. A national number like 07400 123456 is ambiguous without a country, so these APIs only accept E.164. Normalising numbers when they are entered (in your sign-up form or import) avoids failed messages later.

Frequently asked questions

What does an E.164 number look like?

A plus sign, the country code and the national number without trunk prefix, spaces or punctuation: +14155552671 for a US number, +442079460958 for a London number. At most 15 digits after the plus.

Is E.164 the same as international format?

Almost. The international format adds spaces for readability (+44 20 7946 0958); E.164 removes them (+442079460958). Both start with + and the country code.

What is the regex for E.164?

^\+[1-9]\d{1,14}$ checks the shape: a plus, a non-zero first digit, up to 15 digits. It does not check whether the number exists in the country; for that you need numbering-plan validation.

Should I store phone numbers in E.164?

Yes. E.164 is unambiguous, unique per number and accepted by every SMS and voice API, so it is the best format for databases. Format numbers nationally only for display.

Phone number API

Validate numbers like this in your app

numlookupapi checks any phone number worldwide in one request and returns validity, line type, carrier, location and every standard format as JSON.

Read the documentation

100 free requests every month. No credit card required.

GET https://api.numlookupapi.com/v1/validate/+12069220880

{
  "valid": true,
  "number": "12069220880",
  "local_format": "2069220880",
  "international_format": "+12069220880",
  "country_prefix": "+1",
  "country_code": "US",
  "country_name": "United States of America",
  "location": "Seattle",
  "line_type": "landline",
  "e164_format": "+12069220880",
  "national_format": "(206) 922-0880"
}

Keep reading

Start using our Phone number API for free today!

Get 100 requests / month for free