Signal & Syntax · Guide

E.164 Phone Number Format Explained

E.164 is the one format every messaging API, dialer and CRM accepts. The sections below cover the parts of a number, the routing mistakes and converting a list.

6 minUpdated ScoreMachine team

What E.164 Is

E.164 is an ITU-T recommendation for the international public numbering plan. An E.164 number has up to 15 digits, written after a plus sign. The digits carry a country calling code, then a national number. Spaces, brackets, dashes and the trunk prefix never appear.

Example

+447911123456

One number has one E.164 form, wherever the number is dialed from. Two rows holding the same number in E.164 match character for character. Deduplication, CRM matching and API calls all depend on the match.

The Parts of an E.164 Number

An E.164 number splits into three parts. The national regulator sets the length of the second and third.

PartLengthExample in +44 20 7946 0000
Country calling code1 to 3 digits44
National destination codeSet by the national plan20
Subscriber numberSet by the national plan79460000

The country calling code identifies the country or shared zone. The national destination code identifies an area, a network or a service. The subscriber number identifies one line inside the NDC's range.

E.164, International and Local Formats

The same number has three written forms. Each form has one job.

FormatExampleUsed for
Local07911 123456Dialing inside the country, with the trunk prefix
International+44 7911 123456Reading, with spaces between the parts
E.164+447911123456Storage, APIs and matching

ScoreMachine returns all three on every phone validation call, as local_format, international_format and e164_format.

Four Mistakes That Break Routing

Keeping the trunk prefix. The 0 in 07911 belongs to domestic dialing. +4407911123456 routes nowhere. Drop the 0 after the country code: +447911123456.

Keeping the international prefix. 00 in the UK and 011 in the US are dialing codes. Neither belongs to the number. Replace either with a plus sign.

Leaving out the country calling code. 7911123456 with no country fits ranges in more than one country. The fix needs the country from another column or the list's source.

Letting a spreadsheet reformat the column. A spreadsheet drops the plus sign and turns long numbers into 4.47911E+11. Format the column as text before pasting or importing.

How to Convert a List to E.164

  1. 01Add a country column for every row with no country calling code.
  2. 02Strip spaces, brackets, dashes and dots.
  3. 03Replace a leading 00 or 011 with +.
  4. 04Drop the trunk prefix after the country calling code.
  5. 05Check each result against the national numbering plan.
  6. 06Deduplicate on the E.164 value.

The free Phone Number Formatter runs steps 2 to 6 in your browser. Paste a list or drop a CSV, and the list never leaves your device.

What Validation Adds

A correct E.164 string says nothing about the line behind the number. Validation answers the next questions. valid says whether the number fits an allocated range. line_type returns mobile, landline or voip. carrier returns the network serving the number after porting. score.phone.ehlr returns whether the number is in use.

Every ScoreMachine phone method takes an array of numbers and an optional geo_iso_code. The country code fills the gap for rows with no country calling code.

Terms in this guide

Frequently asked questions

Run the Checks on Your Own List

Upload a file in a free workspace, or walk through your use case with our team.