Skip to Content

Phone Country Codes: Complete International Dial Code Reference (2026)

Every international phone call begins with a country calling code — the numeric prefix that tells the telephone network which country to route to. These codes are standardized by the ITU-T (International Telecommunication Union) under Recommendation E.164, the global standard for international telephone numbers.

This reference covers every country calling code, organized by prefix region, with TypeScript code examples using @koshmoney/countries.

What Is a Country Calling Code?

A country calling code (also called a dial code, IDD code, or international dialing prefix) is a 1–3 digit number prefixed with + that identifies a country or territory in the global telephone numbering plan.

Example: To call a UK number 020 7946 0000 from abroad:

  • Dial your exit code (e.g., 011 in the US, 00 in most of Europe)
  • Then the country code: 44
  • Then the number without its leading zero: 20 7946 0000
  • Result: +44 20 7946 0000

The E.164 format standardizes this as: +[country code][subscriber number], with no spaces or special characters, up to 15 digits total.

Quick Lookup

import { dialCode } from '@koshmoney/countries/dialCode'; dialCode.getDialCode('US'); // '+1' dialCode.getDialCode('GB'); // '+44' dialCode.getDialCode('DE'); // '+49' dialCode.getDialCode('JP'); // '+81' dialCode.getDialCode('IN'); // '+91' dialCode.getDialCode('BR'); // '+55' dialCode.getDialCode('AU'); // '+61' dialCode.getDialCode('CN'); // '+86' // Returns null for invalid codes dialCode.getDialCode('XX'); // null

Zone +1: North America (NANP)

The North American Numbering Plan (NANP) is unique: over 25 countries and territories share the +1 prefix. They are differentiated by their 3-digit area codes, not their country code.

Country / TerritoryAlpha-2Dial Code
United StatesUS+1
CanadaCA+1
BahamasBS+1
BarbadosBB+1
BermudaBM+1
British Virgin IslandsVG+1
Cayman IslandsKY+1
DominicaDM+1
Dominican RepublicDO+1
GrenadaGD+1
GuamGU+1
JamaicaJM+1
MontserratMS+1
Puerto RicoPR+1
Saint Kitts and NevisKN+1
Saint LuciaLC+1
Saint Vincent and the GrenadinesVC+1
Sint MaartenSX+1
Trinidad and TobagoTT+1
Turks and Caicos IslandsTC+1
U.S. Virgin IslandsVI+1

Gotcha: When receiving a +1 number, you cannot determine the country from the dial code alone. You need to look up the area code. See countries sharing the same dial code for full NANP area code mappings.

import { dialCode } from '@koshmoney/countries/dialCode'; // All NANP countries share +1 dialCode.getDialCode('US'); // '+1' dialCode.getDialCode('CA'); // '+1' dialCode.getDialCode('JM'); // '+1' // Get all countries with a specific dial code dialCode.getCountriesByDialCode('+1'); // ['US', 'CA', 'BS', 'BB', 'BM', ...]

Zone +2x: Africa

CountryAlpha-2Dial Code
EgyptEG+20
South AfricaZA+27
MoroccoMA+212
AlgeriaDZ+213
TunisiaTN+216
LibyaLY+218
GambiaGM+220
SenegalSN+221
MauritaniaMR+222
MaliML+223
GuineaGN+224
Ivory CoastCI+225
Burkina FasoBF+226
NigerNE+227
TogoTG+228
BeninBJ+229
MauritiusMU+230
LiberiaLR+231
Sierra LeoneSL+232
GhanaGH+233
NigeriaNG+234
ChadTD+235
Central African RepublicCF+236
CameroonCM+237
Cape VerdeCV+238
Sao Tome and PrincipeST+239
Equatorial GuineaGQ+240
GabonGA+241
Republic of the CongoCG+242
DR CongoCD+243
AngolaAO+244
Guinea-BissauGW+245
British Indian Ocean TerritoryIO+246
Ascension IslandAC+247
SeychellesSC+248
SudanSD+249
RwandaRW+250
EthiopiaET+251
SomaliaSO+252
DjiboutiDJ+253
KenyaKE+254
TanzaniaTZ+255
UgandaUG+256
BurundiBI+257
MozambiqueMZ+258
ZambiaZM+260
MadagascarMG+261
ReunionRE+262
ZimbabweZW+263
NamibiaNA+264
MalawiMW+265
LesothoLS+266
BotswanaBW+267
EswatiniSZ+268
ComorosKM+269
Saint HelenaSH+290
EritreaER+291
ArubaAW+297
Faroe IslandsFO+298
GreenlandGL+299

Zone +3x: Europe (Western)

CountryAlpha-2Dial Code
GreeceGR+30
NetherlandsNL+31
BelgiumBE+32
FranceFR+33
SpainES+34
HungaryHU+36
ItalyIT+39

Zone +4x: Europe (Northern/Central)

CountryAlpha-2Dial Code
RomaniaRO+40
SwitzerlandCH+41
AustriaAT+43
United KingdomGB+44
DenmarkDK+45
SwedenSE+46
NorwayNO+47
PolandPL+48
GermanyDE+49

Gotcha: The UK’s +44 also covers the Isle of Man (+44 1624), Jersey (+44 1534), and Guernsey (+44 1481). These Crown Dependencies use the same prefix as mainland UK numbers.

Zone +5x: Americas (Central and South)

CountryAlpha-2Dial Code
PeruPE+51
MexicoMX+52
CubaCU+53
ArgentinaAR+54
BrazilBR+55
ChileCL+56
ColombiaCO+57
VenezuelaVE+58
BelizeBZ+501
GuatemalaGT+502
El SalvadorSV+503
HondurasHN+504
NicaraguaNI+505
Costa RicaCR+506
PanamaPA+507
HaitiHT+509
BoliviaBO+591
GuyanaGY+592
EcuadorEC+593
ParaguayPY+595
SurinameSR+597
UruguayUY+598

Zone +6x: Asia-Pacific

CountryAlpha-2Dial Code
MalaysiaMY+60
AustraliaAU+61
IndonesiaID+62
PhilippinesPH+63
New ZealandNZ+64
SingaporeSG+65
ThailandTH+66
JapanJP+81
South KoreaKR+82
Viet NamVN+84
ChinaCN+86
TurkeyTR+90
IndiaIN+91
PakistanPK+92
AfghanistanAF+93
Sri LankaLK+94
MyanmarMM+95
IranIR+98
East TimorTL+670
AntarcticaAQ+672
Norfolk IslandNF+672
BruneiBN+673
Papua New GuineaPG+675
TongaTO+676
Solomon IslandsSB+677
VanuatuVU+678
FijiFJ+679
PalauPW+680
Wallis and FutunaWF+681
Cook IslandsCK+682
NiueNU+683
SamoaWS+685
KiribatiKI+686
New CaledoniaNC+687
French PolynesiaPF+689
MicronesiaFM+691
Marshall IslandsMH+692
North KoreaKP+850
Hong KongHK+852
MacauMO+853
CambodiaKH+855
LaosLA+856
BangladeshBD+880
TaiwanTW+886
MaldivesMV+960
LebanonLB+961
JordanJO+962
SyriaSY+963
IraqIQ+964
KuwaitKW+965
Saudi ArabiaSA+966
YemenYE+967
OmanOM+968
United Arab EmiratesAE+971
IsraelIL+972
BahrainBH+973
QatarQA+974
BhutanBT+975
MongoliaMN+976
NepalNP+977
TajikistanTJ+992
TurkmenistanTM+993
AzerbaijanAZ+994
GeorgiaGE+995
KyrgyzstanKG+996
UzbekistanUZ+998

Zone +7: Russia and CIS

CountryAlpha-2Dial Code
RussiaRU+7
KazakhstanKZ+7

Gotcha: Russia and Kazakhstan both use +7. They share the same country code under the old Soviet numbering plan, differentiated by their area codes (Russia uses codes like 495, Kazakhstan uses 7xx).

Zone +8x: East Asia and Special Services

Country / ServiceAlpha-2Dial Code
International Freephone—+800
International Shared Cost—+808
Japan (some services)JP+81
South Korea (some services)KR+82

Zone +9x: South and West Asia, Europe (Eastern)

CountryAlpha-2Dial Code
AlbaniaAL+355
BulgariaBG+359
CroatiaHR+385
SloveniaSI+386
Bosnia and HerzegovinaBA+387
SerbiaRS+381
KosovoXK+383
North MacedoniaMK+389
EstoniaEE+372
LatviaLV+371
LithuaniaLT+370
UkraineUA+380
BelarusBY+375
MoldovaMD+373
ArmeniaAM+374
IcelandIS+354
FinlandFI+358
Czech RepublicCZ+420
SlovakiaSK+421
LuxembourgLU+352
IrelandIE+353
PortugalPT+351

Code Examples

Build a Phone Input Component

import { dialCode } from '@koshmoney/countries/dialCode'; import { country } from '@koshmoney/countries'; // Get all countries with dial codes for a phone input dropdown const phoneCountryOptions = dialCode .getSupportedCountries() .map((code) => ({ value: code, label: country.toName(code) ?? code, dialCode: dialCode.getDialCode(code)!, flag: code, // use with a flag library })) .filter((c) => c.label && c.dialCode) .sort((a, b) => a.label.localeCompare(b.label)); // [ // { value: 'AF', label: 'Afghanistan', dialCode: '+93' }, // { value: 'AL', label: 'Albania', dialCode: '+355' }, // ... // ]

Look Up a Dial Code by Country

import { dialCode } from '@koshmoney/countries/dialCode'; // Get dial code for a country const usCode = dialCode.getDialCode('US'); // '+1' const deCode = dialCode.getDialCode('DE'); // '+49' const jpCode = dialCode.getDialCode('JP'); // '+81' // Get full info object const info = dialCode.getDialCodeInfo('GB'); // { dialCode: '+44', countryCode: 'GB' } // Check if a country has a registered dial code dialCode.isValidPhoneCountry('US'); // true dialCode.isValidPhoneCountry('XX'); // false

Reverse Lookup: Countries by Dial Code

import { dialCode } from '@koshmoney/countries/dialCode'; // Find all countries that share a dial code dialCode.getCountriesByDialCode('+1'); // ['US', 'CA', 'BS', 'BB', 'BM', 'VG', 'KY', 'DM', ...] dialCode.getCountriesByDialCode('+7'); // ['RU', 'KZ'] dialCode.getCountriesByDialCode('+44'); // ['GB']

Parse and Format E.164 Phone Numbers

import { dialCode } from '@koshmoney/countries/dialCode'; // Format a local number into international E.164 format function toE164(countryCode: string, localNumber: string): string | null { const prefix = dialCode.getDialCode(countryCode); if (!prefix) return null; // Remove leading zeros and non-digit characters from local number const digits = localNumber.replace(/\D/g, '').replace(/^0+/, ''); return `${prefix}${digits}`; } toE164('US', '202-555-0147'); // '+12025550147' toE164('GB', '020 7946 0000'); // '+442079460000' toE164('DE', '030 12345678'); // '+493012345678' toE164('JP', '03-1234-5678'); // '+81312345678'

Validate International Phone Format

import { dialCode } from '@koshmoney/countries/dialCode'; import { country } from '@koshmoney/countries'; interface PhoneValidationResult { isValid: boolean; countryCode?: string; dialCode?: string; error?: string; } function validatePhoneCountry( countryAlpha2: string, phoneNumber: string ): PhoneValidationResult { // Validate country code if (!country.isValid(countryAlpha2)) { return { isValid: false, error: `Unknown country code: ${countryAlpha2}` }; } const prefix = dialCode.getDialCode(countryAlpha2); if (!prefix) { return { isValid: false, error: `No dial code for: ${countryAlpha2}` }; } // Check that phone number starts with the expected dial code const e164 = phoneNumber.startsWith('+') ? phoneNumber : `+${phoneNumber}`; if (!e164.startsWith(prefix)) { return { isValid: false, error: `Expected prefix ${prefix} for ${countryAlpha2}`, }; } return { isValid: true, countryCode: countryAlpha2, dialCode: prefix }; } validatePhoneCountry('US', '+12025551234'); // { isValid: true, countryCode: 'US', dialCode: '+1' } validatePhoneCountry('DE', '+12025551234'); // { isValid: false, error: 'Expected prefix +49 for DE' }

How to Format International Phone Numbers

The E.164 standard (ITU-T) defines the canonical format:

+[country code][national number]

Key rules:

  • Always start with + followed by the country code
  • No leading zeros in the national number
  • No spaces, hyphens, or parentheses
  • Maximum 15 digits total (including country code)

Examples:

CountryLocal FormatE.164 Format
United States(202) 555-0147+12025550147
United Kingdom020 7946 0000+442079460000
Germany030 12345678+493012345678
Japan03-1234-5678+81312345678
India098765 43210+919876543210
Brazil(11) 98765-4321+5511987654321

Common Gotchas

+1 Is Shared by 20+ Countries

The North American Numbering Plan (NANP) assigns +1 to the United States, Canada, and 19+ Caribbean territories. When you receive a +1 number, you cannot determine which country it comes from based on the dial code alone — you must look at the 3-digit area code.

import { dialCode } from '@koshmoney/countries/dialCode'; // All return '+1' dialCode.getDialCode('US'); // '+1' dialCode.getDialCode('CA'); // '+1' dialCode.getDialCode('JM'); // '+1' (Jamaica) dialCode.getDialCode('PR'); // '+1' (Puerto Rico)

+7 Is Shared by Russia and Kazakhstan

Russia and Kazakhstan both use +7 due to the legacy Soviet telephone network. Kazakhstan was assigned +76 and +77 as distinctive area codes within the +7 zone.

+44 Covers UK Crown Dependencies

While +44 is assigned to the United Kingdom, the Crown Dependencies (Isle of Man, Jersey, Guernsey) are not part of the UK for ISO 3166 purposes — they each have their own alpha-2 codes (IM, JE, GG) — but they share the +44 dial code.

import { dialCode } from '@koshmoney/countries/dialCode'; dialCode.getDialCode('GB'); // '+44' dialCode.getDialCode('IM'); // '+44' (Isle of Man) dialCode.getDialCode('JE'); // '+44' (Jersey) dialCode.getDialCode('GG'); // '+44' (Guernsey)

+61 Covers Australia and Cocos Islands / Christmas Island

Australia (AU), Cocos (Keeling) Islands (CC), and Christmas Island (CX) all use +61.

Some Territories Use Different Codes Than Their Parent Nation

French overseas territories use their own dial codes, not France’s +33:

  • French Guiana: +594
  • Guadeloupe: +590
  • Martinique: +596
  • Reunion: +262
  • Mayotte: +262

Get Started

Install @koshmoney/countries to use dial codes in your application. The dial code module is tree-shakeable and only loaded when you import it — it does not add bundle weight to projects that don’t need phone features.

npm install @koshmoney/countries
import { dialCode } from '@koshmoney/countries/dialCode'; // Get a dial code const code = dialCode.getDialCode('JP'); // '+81' // Check if a country is supported const isSupported = dialCode.isValidPhoneCountry('KR'); // true // Get all supported country codes const allCountries = dialCode.getSupportedCountries();