{
 "code": "ZA",
 "alpha3": "ZAF",
 "numeric": "710",
 "flag": "🇿🇦",
 "name": "South Africa",
 "official": "Republic of South Africa",
 "native": [
  "South Africa",
  "Sewula Afrika",
  "Afrika-Borwa",
  "Afrika Borwa",
  "Ningizimu Afrika",
  "Aforika Borwa",
  "Afrika Dzonga",
  "Afurika Tshipembe",
  "Mzantsi Afrika"
 ],
 "independent": true,
 "status": "officially-assigned",
 "unMember": true,
 "region": "Africa",
 "subregion": "Southern Africa",
 "capital": [
  "Pretoria",
  "Bloemfontein",
  "Cape Town"
 ],
 "coords": [
  -29,
  24
 ],
 "area": 1221037,
 "landlocked": false,
 "borders": [
  "BW",
  "LS",
  "MZ",
  "NA",
  "SZ",
  "ZW"
 ],
 "demonym": "South African",
 "tld": [
  ".za"
 ],
 "cioc": "RSA",
 "population": 60442600,
 "gdp": 863000000000,
 "literacy": 93,
 "groups": [
  "018",
  "UN"
 ],
 "languages": [
  {
   "code": "en",
   "name": "English",
   "percent": 31,
   "writing": null,
   "status": "official"
  },
  {
   "code": "zu",
   "name": "Zulu",
   "percent": 24,
   "writing": null,
   "status": "official_regional"
  },
  {
   "code": "xh",
   "name": "Xhosa",
   "percent": 18,
   "writing": null,
   "status": "official_regional"
  },
  {
   "code": "af",
   "name": "Afrikaans",
   "percent": 13,
   "writing": null,
   "status": "official_regional"
  },
  {
   "code": "nso",
   "name": "Northern Sotho",
   "percent": 9.4,
   "writing": null,
   "status": "official_regional"
  },
  {
   "code": "tn",
   "name": "Tswana",
   "percent": 8.2,
   "writing": null,
   "status": "official_regional"
  },
  {
   "code": "st",
   "name": "Southern Sotho",
   "percent": 7.9,
   "writing": null,
   "status": "official_regional"
  },
  {
   "code": "ts",
   "name": "Tsonga",
   "percent": 4.4,
   "writing": null,
   "status": "official_regional"
  },
  {
   "code": "ss",
   "name": "Swati",
   "percent": 2.7,
   "writing": null,
   "status": "official_regional"
  },
  {
   "code": "ve",
   "name": "Venda",
   "percent": 2.3,
   "writing": null,
   "status": "official_regional"
  },
  {
   "code": "nr",
   "name": "South Ndebele",
   "percent": 1.6,
   "writing": null,
   "status": "official_regional"
  },
  {
   "code": "hi",
   "name": "Hindi",
   "percent": 2,
   "writing": null,
   "status": null
  },
  {
   "code": "sw",
   "name": "Swahili",
   "percent": 0.0017,
   "writing": null,
   "status": null
  }
 ],
 "locales": [
  "af-ZA",
  "en-ZA",
  "nr-ZA",
  "nso-ZA",
  "ss-ZA",
  "st-ZA",
  "tn-ZA",
  "ts-ZA",
  "ve-ZA",
  "xh-ZA",
  "zu-ZA"
 ],
 "currencies": [
  "ZAR"
 ],
 "formerCurrencies": [
  "ZAL"
 ],
 "timezones": [
  "Africa/Johannesburg"
 ],
 "week": {
  "firstDay": "sun",
  "weekendStart": "sat",
  "weekendEnd": "sun",
  "minDays": 1
 },
 "hourCycle": {
  "preferred": "H",
  "allowed": [
   "H",
   "h",
   "hb",
   "hB"
  ]
 },
 "calendars": [
  "gregorian"
 ],
 "measurement": {
  "system": "metric",
  "temperature": null,
  "paper": "A4"
 },
 "callingCodes": [
  "+27"
 ],
 "phone": {
  "callingCode": "27",
  "mainForCode": false,
  "intlPrefix": "00",
  "preferredIntlPrefix": "",
  "nationalPrefix": "0",
  "leadingDigits": "",
  "lengths": [
   5,
   6,
   7,
   8,
   9,
   10
  ],
  "types": {
   "fixedLine": {
    "pattern": "(?:2(?:0330|4302)|52087)0\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\d|5[1346-8])\\d{7}",
    "example": "101234567",
    "lengths": [
     "9"
    ],
    "national": "010 123 4567",
    "international": "+27 10 123 4567",
    "e164": "+27101234567",
    "layout": "XXX XXX XXXX"
   },
   "mobile": {
    "pattern": "(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:50[0-2]|[67]\\d\\d)\\d\\d|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}",
    "example": "711234567",
    "lengths": [
     "[5-9]"
    ],
    "national": "071 123 4567",
    "international": "+27 71 123 4567",
    "e164": "+27711234567",
    "layout": "XXX XXX XXXX"
   },
   "tollFree": {
    "pattern": "80\\d{7}",
    "example": "801234567",
    "lengths": [
     "9"
    ],
    "national": "080 123 4567",
    "international": "+27 80 123 4567",
    "e164": "+27801234567",
    "layout": "XXX XXX XXXX"
   },
   "premiumRate": {
    "pattern": "(?:86[2-9]|9[0-2]\\d)\\d{6}",
    "example": "862345678",
    "lengths": [
     "9"
    ],
    "national": "086 234 5678",
    "international": "+27 86 234 5678",
    "e164": "+27862345678",
    "layout": "XXX XXX XXXX"
   },
   "sharedCost": {
    "pattern": "860\\d{6}",
    "example": "860123456",
    "lengths": [
     "9"
    ],
    "national": "0860 123 456",
    "international": "+27 860 123 456",
    "e164": "+27860123456",
    "layout": "XXXX XXX XXX"
   },
   "voip": {
    "pattern": "87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\d)\\d{5}",
    "example": "871234567",
    "lengths": [
     "9"
    ],
    "national": "087 123 4567",
    "international": "+27 87 123 4567",
    "e164": "+27871234567",
    "layout": "XXX XXX XXXX"
   },
   "uan": {
    "pattern": "861\\d{6,7}",
    "example": "861123456",
    "lengths": [
     "9",
     "10"
    ],
    "national": "086 112 3456",
    "international": "+27 86 112 3456",
    "e164": "+27861123456",
    "layout": "XXX XXX XXXX"
   }
  },
  "formats": [
   {
    "pattern": "(\\d{2})(\\d{3,4})",
    "leading": [
     "8[1-4]"
    ],
    "format": "$1 $2",
    "prefixRule": "$NP$FG"
   },
   {
    "pattern": "(\\d{2})(\\d{3})(\\d{2,3})",
    "leading": [
     "8[1-4]"
    ],
    "format": "$1 $2 $3",
    "prefixRule": "$NP$FG"
   },
   {
    "pattern": "(\\d{3})(\\d{3})(\\d{3})",
    "leading": [
     "860"
    ],
    "format": "$1 $2 $3",
    "prefixRule": "$NP$FG"
   },
   {
    "pattern": "(\\d{2})(\\d{3})(\\d{4})",
    "leading": [
     "[1-9]"
    ],
    "format": "$1 $2 $3",
    "prefixRule": "$NP$FG"
   },
   {
    "pattern": "(\\d{3})(\\d{3})(\\d{4})",
    "leading": [
     "8"
    ],
    "format": "$1 $2 $3",
    "prefixRule": "$NP$FG"
   }
  ],
  "emergency": {
   "pattern": "1(?:01(?:11|77)|12)",
   "example": "112",
   "lengths": "3,5"
  }
 },
 "address": {
  "format": "%N%n%O%n%A%n%D%n%C%n%Z",
  "lines": [
   "{Name}",
   "{Organization}",
   "{Street address}",
   "{Dependent locality}",
   "{City}",
   "{Postal code}"
  ],
  "required": [
   "Street address",
   "City",
   "Postal code"
  ],
  "postalRegex": "\\d{4}",
  "postalExamples": [
   "0083",
   "1451",
   "0001"
  ]
 }
}