mledoze/countries

List of world countries in JSON, CSV, XML and YAML

Installs: 574 498

Dependents: 9

Suggesters: 0

Security: 0

Stars: 6 020

Watchers: 158

Forks: 1 270

Open Issues: 14

5.1.0 2025-02-26 20:36 UTC

README

License Build Status

Latest Stable Version npm downloads

Latest Stable Version PHP from Packagist Packagist downloads

Countries data

This repository contains a list of world countries, as defined by ISO Standard 3166-1, in JSON, CSV, XML and YAML. Warning: not all entities in this project are independent countries; refer to the independent property to know if the country is considered a sovereign state.

Each line contains the country:

  • name
    • common - common name in english
    • official - official name in english
    • native - list of all native names
      • key: three-letter ISO 639-3 language code
      • value: name object
        • key: official - official name translation
        • key: common - common name translation
  • country code top-level domain (tld)
  • code ISO 3166-1 alpha-2 (cca2)
  • code ISO 3166-1 numeric (ccn3)
  • code ISO 3166-1 alpha-3 (cca3)
  • code International Olympic Committee (cioc)
  • ISO 3166-1 independence status (independent) (denotes the country is considered a sovereign state)
  • ISO 3166-1 assignment status (status)
  • UN Member status (unMember)
  • UN Regional Group (unRegionalGroup)
  • currencies - list of all currencies
    • key: ISO 4217 currency code
    • value: currency object
      • key: name name of the currency
      • key: symbol symbol of the currency
  • International Direct Dialing info (idd)
    • root - the root geographical code prefix. e.g. +6 for New Zealand, +4 for UK.
    • suffixes - list of all suffixes assigned to this country. 4 for NZ, 809, 829, and 849 for Dominican Republic.
  • capital city(ies) (capital)
  • alternative spellings (altSpellings)
  • region
  • subregion
  • list of official languages (languages)
    • key: three-letter ISO 639-3 language code
    • value: name of the language in english
  • list of name translations (translations)
    • key: three-letter ISO 639-3 language code
    • value: name object
      • key: official - official name translation
      • key: common - common name translation
  • latitude and longitude (latlng)
  • demonyms - name of residents, translated & genderized
    • key: three-letter ISO 639-3 language code
    • value: genderized demonym object
      • key: f (female) or m (male)
      • value: genderized demonym translation
  • landlocked status (landlocked)
  • land borders (borders)
  • land area in km² (area)
  • emoji flag (flag)
  • calling codes (callingCodes)

Additional data

The data folder contains additional data such as the countries GeoJSON outlines and flags in SVG format.

Examples

JSON

{
	"name": {
		"common": "Austria",
		"official": "Republic of Austria",
		"native": {
			"bar": {
				"official": "Republik Österreich",
				"common": "Österreich"
			}
		}
	},
	"tld": [".at"],
	"cca2": "AT",
	"ccn3": "040",
	"cca3": "AUT",
	"cioc": "AUT",
	"independent": true,
	"status": "officially-assigned",
	"unMember": true,
	"unRegionalGroup": "Western European and Others Group",
	"currencies": {"EUR": {"name": "Euro", "symbol": "\u20ac"}},
	"idd": {
		"root": "+4",
		"suffixes": ["3"]
	},
	"capital": ["Vienna"],
	"altSpellings": ["AT", "Osterreich", "Oesterreich"],
	"region": "Europe",
	"subregion": "Western Europe",
	"languages": {
		"bar": "Austro-Bavarian German"
	},
	"translations": {
		"cym": {"official": "Republic of Austria", "common": "Awstria"},
		"deu": {"official": "Republik Österreich", "common": "Österreich"},
		"fra": {"official": "République d'Autriche", "common": "Autriche"},
		"hrv": {"official": "Republika Austrija", "common": "Austrija"},
		"ita": {"official": "Repubblica d'Austria", "common": "Austria"},
		"jpn": {"official": "オーストリア共和国", "common": "オーストリア"},
		"nld": {"official": "Republiek Oostenrijk", "common": "Oostenrijk"},
		"por": {"official": "República da Áustria", "common": "Áustria"},
		"rus": {"official": "Австрийская Республика", "common": "Австрия"},
		"spa": {"official": "República de Austria", "common": "Austria"}
	},
	"latlng": [47.33333333, 13.33333333],
	"demonyms": {
		"fra": {
			"f": "Autrichienne",
			"m": "Autrichien"
		},
		"spa": {
			"f": "Austriaco",
			"m": "Austriaca"
		}
	},
	"landlocked": true,
	"borders": ["CZE", "DEU", "HUN", "ITA", "LIE", "SVK", "SVN", "CHE"],
	"area": 83871,
	"callingCodes": ["+43"]
	"flag": "\ud83c\udde6\ud83c\uddf9"
}

GeoJSON and TopoJSON outlines

See an example for Germany: GeoJSON or TopoJSON.

CSV

"name.common","name.official","tld","cca2","ccn3","cca3","cioc","independent","status","unMember","currencies","idd.root","idd.suffixes","capital","altSpellings","region","subregion","languages","translations.ces.official","translations.ces.common","translations.deu.official","translations.deu.common","translations.est.official","translations.est.common","translations.fin.official","translations.fin.common","translations.fra.official","translations.fra.common","translations.hrv.official","translations.hrv.common","translations.hun.official","translations.hun.common","translations.ita.official","translations.ita.common","translations.jpn.official","translations.jpn.common","translations.kor.official","translations.kor.common","translations.nld.official","translations.nld.common","translations.per.official","translations.per.common","translations.pol.official","translations.pol.common","translations.por.official","translations.por.common","translations.rus.official","translations.rus.common","translations.slk.official","translations.slk.common","translations.spa.official","translations.spa.common","translations.swe.official","translations.swe.common","translations.urd.official","translations.urd.common","translations.zho.official","translations.zho.common","latlng","landlocked","borders","area","flag","demonyms.eng.f","demonyms.eng.m","demonyms.fra.f","demonyms.fra.m","callingCodes"
"Aruba","Aruba",".aw","AW","533","ABW","ARU","0","officially-assigned","0","AWG","+2","97","Oranjestad","AW","Americas","Caribbean","Dutch,Papiamento","Aruba","Aruba","Aruba","Aruba","Aruba","Aruba","Aruba","Aruba","Aruba","Aruba","Aruba","Aruba","Aruba","Aruba","Aruba","Aruba","アルバ","アルバ","아루바","아루바","Aruba","Aruba","آروبا","آروبا","Aruba","Aruba","Aruba","Aruba","Аруба","Аруба","Aruba","Aruba","Aruba","Aruba","Aruba","Aruba","اروبا","اروبا","阿鲁巴","阿鲁巴","12.5,-69.96666666","0","","180","🇦🇼","Aruban","Aruban","Arubaise","Arubais","+297"
"Afghanistan","Islamic Republic of Afghanistan",".af","AF","004","AFG","AFG","1","officially-assigned","1","AFN","+9","3","Kabul","AF,Afġānistān","Asia","Southern Asia","Dari,Pashto,Turkmen","Afghánská islámská republika","Afghánistán","Islamische Republik Afghanistan","Afghanistan","Afganistani Islamivabariik","Afganistan","Afganistanin islamilainen tasavalta","Afganistan","République islamique d'Afghanistan","Afghanistan","Islamska Republika Afganistan","Afganistan","Afganisztáni Iszlám Köztársaság","Afganisztán","Repubblica islamica dell'Afghanistan","Afghanistan","アフガニスタン・イスラム共和国","アフガニスタン","아프가니스탄 이슬람 공화국","아프가니스탄","Islamitische Republiek Afghanistan","Afghanistan","جمهوری اسلامی افغانستان","افغانستان","Islamska Republika Afganistanu","Afganistan","República Islâmica do Afeganistão","Afeganistão","Исламская Республика Афганистан","Афганистан","Afgánsky islamský štát","Afganistan","República Islámica de Afganistán","Afganistán","Islamiska republiken Afghanistan","Afghanistan","اسلامی جمہوریہ افغانستان","افغانستان","阿富汗伊斯兰共和国","阿富汗","33,65","1","IRN,PAK,TKM,UZB,TJK,CHN","652230","🇦🇫","Afghan","Afghan","Afghane","Afghan","+93"
"Angola","Republic of Angola",".ao","AO","024","AGO","ANG","1","officially-assigned","1","AOA","+2","44","Luanda","AO,República de Angola,ʁɛpublika de an'ɡɔla","Africa","Middle Africa","Portuguese","Angolská republika","Angola","Republik Angola","Angola","Angola Vabariik","Angola","Angolan tasavalta","Angola","République d'Angola","Angola","Republika Angola","Angola","Angola","Angola","Repubblica dell'Angola","Angola","アンゴラ共和国","アンゴラ","앙골라 공화국","앙골라","Republiek Angola","Angola","جمهوری آنگولا","آنگولا","Republika Angoli","Angola","República de Angola","Angola","Республика Ангола","Ангола","Angolská republika","Angola","República de Angola","Angola","Republiken Angola","Angola","جمہوریہ انگولہ","انگولہ","安哥拉共和国","安哥拉","-12.5,18.5","0","COG,COD,ZMB,NAM","1246700","🇦🇴","Angolan","Angolan","Angolaise","Angolais","+244"
⋮

XML

<?xml version="1.0" encoding="UTF-8"?>
<countries>
  <country name.common="Aruba" name.official="Aruba" name.native.nld.official="Aruba" name.native.nld.common="Aruba" name.native.pap.official="Aruba" name.native.pap.common="Aruba" tld=".aw" cca2="AW" ccn3="533" cca3="ABW" cioc="ARU" independent="0" status="officially-assigned" unMember="0" currencies.AWG.name="Aruban florin" currencies.AWG.symbol="ƒ" idd.root="+2" idd.suffixes="97" capital="Oranjestad" altSpellings="AW" region="Americas" subregion="Caribbean" languages.nld="Dutch" languages.pap="Papiamento" translations.ces.official="Aruba" translations.ces.common="Aruba" translations.deu.official="Aruba" translations.deu.common="Aruba" translations.est.official="Aruba" translations.est.common="Aruba" translations.fin.official="Aruba" translations.fin.common="Aruba" translations.fra.official="Aruba" translations.fra.common="Aruba" translations.hrv.official="Aruba" translations.hrv.common="Aruba" translations.hun.official="Aruba" translations.hun.common="Aruba" translations.ita.official="Aruba" translations.ita.common="Aruba" translations.jpn.official="アルバ" translations.jpn.common="アルバ" translations.kor.official="아루바" translations.kor.common="아루바" translations.nld.official="Aruba" translations.nld.common="Aruba" translations.per.official="آروبا" translations.per.common="آروبا" translations.pol.official="Aruba" translations.pol.common="Aruba" translations.por.official="Aruba" translations.por.common="Aruba" translations.rus.official="Аруба" translations.rus.common="Аруба" translations.slk.official="Aruba" translations.slk.common="Aruba" translations.spa.official="Aruba" translations.spa.common="Aruba" translations.swe.official="Aruba" translations.swe.common="Aruba" translations.urd.official="اروبا" translations.urd.common="اروبا" translations.zho.official="阿鲁巴" translations.zho.common="阿鲁巴" latlng="12.5,-69.96666666" landlocked="0" borders="" area="180" flag="🇦🇼" demonyms.eng.f="Aruban" demonyms.eng.m="Aruban" demonyms.fra.f="Arubaise" demonyms.fra.m="Arubais" callingCodes="+297"/>
  <country name.common="Afghanistan" name.official="Islamic Republic of Afghanistan" name.native.prs.official="جمهوری اسلامی افغانستان" name.native.prs.common="افغانستان" name.native.pus.official="د افغانستان اسلامي جمهوریت" name.native.pus.common="افغانستان" name.native.tuk.official="Owganystan Yslam Respublikasy" name.native.tuk.common="Owganystan" tld=".af" cca2="AF" ccn3="004" cca3="AFG" cioc="AFG" independent="1" status="officially-assigned" unMember="1" currencies.AFN.name="Afghan afghani" currencies.AFN.symbol="؋" idd.root="+9" idd.suffixes="3" capital="Kabul" altSpellings="AF,Afġānistān" region="Asia" subregion="Southern Asia" languages.prs="Dari" languages.pus="Pashto" languages.tuk="Turkmen" translations.ces.official="Afghánská islámská republika" translations.ces.common="Afghánistán" translations.deu.official="Islamische Republik Afghanistan" translations.deu.common="Afghanistan" translations.est.official="Afganistani Islamivabariik" translations.est.common="Afganistan" translations.fin.official="Afganistanin islamilainen tasavalta" translations.fin.common="Afganistan" translations.fra.official="République islamique d'Afghanistan" translations.fra.common="Afghanistan" translations.hrv.official="Islamska Republika Afganistan" translations.hrv.common="Afganistan" translations.hun.official="Afganisztáni Iszlám Köztársaság" translations.hun.common="Afganisztán" translations.ita.official="Repubblica islamica dell'Afghanistan" translations.ita.common="Afghanistan" translations.jpn.official="アフガニスタン・イスラム共和国" translations.jpn.common="アフガニスタン" translations.kor.official="아프가니스탄 이슬람 공화국" translations.kor.common="아프가니스탄" translations.nld.official="Islamitische Republiek Afghanistan" translations.nld.common="Afghanistan" translations.per.official="جمهوری اسلامی افغانستان" translations.per.common="افغانستان" translations.pol.official="Islamska Republika Afganistanu" translations.pol.common="Afganistan" translations.por.official="República Islâmica do Afeganistão" translations.por.common="Afeganistão" translations.rus.official="Исламская Республика Афганистан" translations.rus.common="Афганистан" translations.slk.official="Afgánsky islamský štát" translations.slk.common="Afganistan" translations.spa.official="República Islámica de Afganistán" translations.spa.common="Afganistán" translations.swe.official="Islamiska republiken Afghanistan" translations.swe.common="Afghanistan" translations.urd.official="اسلامی جمہوریہ افغانستان" translations.urd.common="افغانستان" translations.zho.official="阿富汗伊斯兰共和国" translations.zho.common="阿富汗" latlng="33,65" landlocked="1" borders="IRN,PAK,TKM,UZB,TJK,CHN" area="652230" flag="🇦🇫" demonyms.eng.f="Afghan" demonyms.eng.m="Afghan" demonyms.fra.f="Afghane" demonyms.fra.m="Afghan" callingCodes="+93"/>
  <country name.common="Angola" name.official="Republic of Angola" name.native.por.official="República de Angola" name.native.por.common="Angola" tld=".ao" cca2="AO" ccn3="024" cca3="AGO" cioc="ANG" independent="1" status="officially-assigned" unMember="1" currencies.AOA.name="Angolan kwanza" currencies.AOA.symbol="Kz" idd.root="+2" idd.suffixes="44" capital="Luanda" altSpellings="AO,República de Angola,ʁɛpublika de an'ɡɔla" region="Africa" subregion="Middle Africa" languages.por="Portuguese" translations.ces.official="Angolská republika" translations.ces.common="Angola" translations.deu.official="Republik Angola" translations.deu.common="Angola" translations.est.official="Angola Vabariik" translations.est.common="Angola" translations.fin.official="Angolan tasavalta" translations.fin.common="Angola" translations.fra.official="République d'Angola" translations.fra.common="Angola" translations.hrv.official="Republika Angola" translations.hrv.common="Angola" translations.hun.official="Angola" translations.hun.common="Angola" translations.ita.official="Repubblica dell'Angola" translations.ita.common="Angola" translations.jpn.official="アンゴラ共和国" translations.jpn.common="アンゴラ" translations.kor.official="앙골라 공화국" translations.kor.common="앙골라" translations.nld.official="Republiek Angola" translations.nld.common="Angola" translations.per.official="جمهوری آنگولا" translations.per.common="آنگولا" translations.pol.official="Republika Angoli" translations.pol.common="Angola" translations.por.official="República de Angola" translations.por.common="Angola" translations.rus.official="Республика Ангола" translations.rus.common="Ангола" translations.slk.official="Angolská republika" translations.slk.common="Angola" translations.spa.official="República de Angola" translations.spa.common="Angola" translations.swe.official="Republiken Angola" translations.swe.common="Angola" translations.urd.official="جمہوریہ انگولہ" translations.urd.common="انگولہ" translations.zho.official="安哥拉共和国" translations.zho.common="安哥拉" latlng="-12.5,18.5" landlocked="0" borders="COG,COD,ZMB,NAM" area="1246700" flag="🇦🇴" demonyms.eng.f="Angolan" demonyms.eng.m="Angolan" demonyms.fra.f="Angolaise" demonyms.fra.m="Angolais" callingCodes="+244"/>
⋮
<countries>

YAML

- { name: { common: Aruba, official: Aruba, native: { nld: { official: Aruba, common: Aruba }, pap: { official: Aruba, common: Aruba } } }, tld: [.aw], cca2: AW, ccn3: '533', cca3: ABW, cioc: ARU, independent: false, status: officially-assigned, unMember: false, currencies: { AWG: { name: 'Aruban florin', symbol: ƒ } }, idd: { root: '+2', suffixes: ['97'] }, capital: [Oranjestad], altSpellings: [AW], region: Americas, subregion: Caribbean, languages: { nld: Dutch, pap: Papiamento }, translations: { ces: { official: Aruba, common: Aruba }, deu: { official: Aruba, common: Aruba }, est: { official: Aruba, common: Aruba }, fin: { official: Aruba, common: Aruba }, fra: { official: Aruba, common: Aruba }, hrv: { official: Aruba, common: Aruba }, hun: { official: Aruba, common: Aruba }, ita: { official: Aruba, common: Aruba }, jpn: { official: アルバ, common: アルバ }, kor: { official: 아루바, common: 아루바 }, nld: { official: Aruba, common: Aruba }, per: { official: آروبا, common: آروبا }, pol: { official: Aruba, common: Aruba }, por: { official: Aruba, common: Aruba }, rus: { official: Аруба, common: Аруба }, slk: { official: Aruba, common: Aruba }, spa: { official: Aruba, common: Aruba }, swe: { official: Aruba, common: Aruba }, urd: { official: اروبا, common: اروبا }, zho: { official: 阿鲁巴, common: 阿鲁巴 } }, latlng: [12.5, -69.96666666], landlocked: false, borders: {  }, area: 180, flag: 🇦🇼, demonyms: { eng: { f: Aruban, m: Aruban }, fra: { f: Arubaise, m: Arubais } }, callingCodes: ['+297'] }
- { name: { common: Afghanistan, official: 'Islamic Republic of Afghanistan', native: { prs: { official: 'جمهوری اسلامی افغانستان', common: افغانستان }, pus: { official: 'د افغانستان اسلامي جمهوریت', common: افغانستان }, tuk: { official: 'Owganystan Yslam Respublikasy', common: Owganystan } } }, tld: [.af], cca2: AF, ccn3: '004', cca3: AFG, cioc: AFG, independent: true, status: officially-assigned, unMember: true, currencies: { AFN: { name: 'Afghan afghani', symbol: ؋ } }, idd: { root: '+9', suffixes: ['3'] }, capital: [Kabul], altSpellings: [AF, Afġānistān], region: Asia, subregion: 'Southern Asia', languages: { prs: Dari, pus: Pashto, tuk: Turkmen }, translations: { ces: { official: 'Afghánská islámská republika', common: Afghánistán }, deu: { official: 'Islamische Republik Afghanistan', common: Afghanistan }, est: { official: 'Afganistani Islamivabariik', common: Afganistan }, fin: { official: 'Afganistanin islamilainen tasavalta', common: Afganistan }, fra: { official: "République islamique d'Afghanistan", common: Afghanistan }, hrv: { official: 'Islamska Republika Afganistan', common: Afganistan }, hun: { official: 'Afganisztáni Iszlám Köztársaság', common: Afganisztán }, ita: { official: "Repubblica islamica dell'Afghanistan", common: Afghanistan }, jpn: { official: アフガニスタン・イスラム共和国, common: アフガニスタン }, kor: { official: '아프가니스탄 이슬람 공화국', common: 아프가니스탄 }, nld: { official: 'Islamitische Republiek Afghanistan', common: Afghanistan }, per: { official: 'جمهوری اسلامی افغانستان', common: افغانستان }, pol: { official: 'Islamska Republika Afganistanu', common: Afganistan }, por: { official: 'República Islâmica do Afeganistão', common: Afeganistão }, rus: { official: 'Исламская Республика Афганистан', common: Афганистан }, slk: { official: 'Afgánsky islamský štát', common: Afganistan }, spa: { official: 'República Islámica de Afganistán', common: Afganistán }, swe: { official: 'Islamiska republiken Afghanistan', common: Afghanistan }, urd: { official: 'اسلامی جمہوریہ افغانستان', common: افغانستان }, zho: { official: 阿富汗伊斯兰共和国, common: 阿富汗 } }, latlng: [33, 65], landlocked: true, borders: [IRN, PAK, TKM, UZB, TJK, CHN], area: 652230, flag: 🇦🇫, demonyms: { eng: { f: Afghan, m: Afghan }, fra: { f: Afghane, m: Afghan } }, callingCodes: ['+93'] }
- { name: { common: Angola, official: 'Republic of Angola', native: { por: { official: 'República de Angola', common: Angola } } }, tld: [.ao], cca2: AO, ccn3: '024', cca3: AGO, cioc: ANG, independent: true, status: officially-assigned, unMember: true, currencies: { AOA: { name: 'Angolan kwanza', symbol: Kz } }, idd: { root: '+2', suffixes: ['44'] }, capital: [Luanda], altSpellings: [AO, 'República de Angola', "ʁɛpublika de an'ɡɔla"], region: Africa, subregion: 'Middle Africa', languages: { por: Portuguese }, translations: { ces: { official: 'Angolská republika', common: Angola }, deu: { official: 'Republik Angola', common: Angola }, est: { official: 'Angola Vabariik', common: Angola }, fin: { official: 'Angolan tasavalta', common: Angola }, fra: { official: "République d'Angola", common: Angola }, hrv: { official: 'Republika Angola', common: Angola }, hun: { official: Angola, common: Angola }, ita: { official: "Repubblica dell'Angola", common: Angola }, jpn: { official: アンゴラ共和国, common: アンゴラ }, kor: { official: '앙골라 공화국', common: 앙골라 }, nld: { official: 'Republiek Angola', common: Angola }, per: { official: 'جمهوری آنگولا', common: آنگولا }, pol: { official: 'Republika Angoli', common: Angola }, por: { official: 'República de Angola', common: Angola }, rus: { official: 'Республика Ангола', common: Ангола }, slk: { official: 'Angolská republika', common: Angola }, spa: { official: 'República de Angola', common: Angola }, swe: { official: 'Republiken Angola', common: Angola }, urd: { official: 'جمہوریہ انگولہ', common: انگولہ }, zho: { official: 安哥拉共和国, common: 安哥拉 } }, latlng: [-12.5, 18.5], landlocked: false, borders: [COG, COD, ZMB, NAM], area: 1246700, flag: 🇦🇴, demonyms: { eng: { f: Angolan, m: Angolan }, fra: { f: Angolaise, m: Angolais } }, callingCodes: ['+244'] }

Customising the output

The data files provided in the dist directory include all available fields, but is also possible to build a custom version of the data with certain fields excluded.

To do this, you will first need a working PHP installation, composer and a local copy of this repository. Once you have these, open a terminal in your local version of this project's root directory and run this command to install the necessary dependencies:

composer install

After this finishes, run the following command (here we will exclude the tld field from the output, but you can exclude any field you want):

php countries.php convert --exclude-field=tld

You can also exclude multiple fields:

php countries.php convert --exclude-field=tld --exclude-field=cca2

# Or using the shorter `-x` syntax:
php countries.php convert -x tld -x cca2

If you prefer to include only some fields (this can not be combined with --exclude-field):

php countries.php convert --include-field=name --include-field=area

# or using the shorter `-i` syntax:
php countries.php convert -i name -i area

The generated files are put into the dist directory, but you can change this to another existing directory:

mkdir foobar
php countries.php convert --output-dir=foobar

You can also choose to only generate some of the output formats:

mkdir foobar
php countries.php convert --format=json_unescaped --format=csv

# or using the shorter `-f` syntax:
php countries.php convert -f json_unescaped -f csv

Showcase

Projects using this dataset:

How to contribute?

Please refer to CONTRIBUTING.

To do

  • add the type of the country (country, sovereign state, public body, territory, etc.)
  • pull in data automatically from CLDR at build time (idea from @Munter, see #108)

Sources

https://www.currency-iso.org/ for currency codes.

Region and subregion are taken from https://github.com/hexorx/countries.

GeoJSON outlines come from http://thematicmapping.org/downloads/world_borders.php.

The rest comes from Wikipedia.

Credits

Thanks to:

License

See LICENSE.

Flags are not licensed under the ODbL license; see https://en.wikipedia.org/wiki/Wikipedia:Copyright_on_emblems for more information.