ISO 3166-2 API

ISO 3166-2 API — Access all of the world's subdivision/regional ISO 3166…

🗺 Geo & MapsUNMONITORED
AUTH NONECORS AGENT ?HTTPS COMMERCIAL ?

ISO 3166-2 API exposes access all of the world's subdivision/regional ISO 3166-2 codes We verified a keyless GET endpoint returning JSON (Geocoding). Check the provider docs for rate limits and terms before production use.

HOW IT'S SCORED ⓘ
Status badge · for your READMEshipapis health badge: — · unmonitored
ON PROBE SCHEDULE

We probe a documented GET and expect 2xx JSON — full uptime and health score. Open provider docs ↗

Uptime historystarts after first probe

On our probe schedule. Uptime charts appear after the first check lands.

Example responsefrom provider docs — not verified by us
GET https://iso3166-2-api.vercel.app/api/all

{
  "AD": {
    "AD-02": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AD/AD-02.svg",
      "history": null,
      "latLng": [
        42.5868,
        1.6574
      ],
      "localOtherName": null,
      "name": "Canillo",
      "parentCode": null,
      "type": "Parish"
    },
    "AD-03": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AD/AD-03.svg",
      "history": null,
      "latLng": [
        42.536,
        1.5836
      ],
      "localOtherName": null,
      "name": "Encamp",
      "parentCode": null,
      "type": "Parish"
    },
    "AD-04": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AD/AD-04.svg",
      "history": null,
      "latLng": [
        42.5442,
        1.5164
      ],
      "localOtherName": null,
      "name": "La Massana",
      "parentCode": null,
      "type": "Parish"
    },
    "AD-05": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AD/AD-05.svg",
      "history": null,
      "latLng": [
        42.601,
        1.5298
      ],
      "localOtherName": null,
      "name": "Ordino",
      "parentCode": null,
      "type": "Parish"
    },
    "AD-06": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AD/AD-06.svg",
      "history": null,
      "latLng": [
        42.4667,
        1.4967
      ],
      "localOtherName": null,
      "name": "Sant Julià de Lòria",
      "parentCode": null,
      "type": "Parish"
    },
    "AD-07": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AD/AD-07.svg",
      "history": null,
      "latLng": [
        42.4979,
        1.5032
      ],
      "localOtherName": null,
      "name": "Andorra la Vella",
      "parentCode": null,
      "type": "Parish"
    },
    "AD-08": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AD/AD-08.svg",
      "history": null,
      "latLng": [
        42.4862,
        1.6038
      ],
      "localOtherName": null,
      "name": "Escaldes-Engordany",
      "parentCode": null,
      "type": "Parish"
    }
  },
  "AE": {
    "AE-AJ": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AE/AE-AJ.svg",
      "history": [
        {
          "Change": "Change of spelling of AE-AJ, AE-RK; addition of local variation of AE-FU, AE-RK, AE-UQ; update List Source.",
          "Date Issued": "2015-11-27",
          "Description of Change": null,
          "Source": "Online Browsing Platform (OBP) - https://www.iso.org/obp/ui/#iso:code:3166:AE."
        }
      ],
      "latLng": [
        24.8075,
        56.0695
      ],
      "localOtherName": "عجمان (ara), إمارة عيمان (afb)",
      "name": "‘Ajmān",
      "parentCode": null,
      "type": "Emirate"
    },
    "AE-AZ": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AE/AE-AZ.svg",
      "history": [
        {
          "Change": "Error correction: Spelling correction in AE-AZ.",
          "Date Issued": "2002-08-20",
          "Description of Change": null,
          "Source": "Newsletter I-3 - https://web.archive.org/web/20081218103236/http://www.iso.org/iso/iso_3166-2_newsletter_i-3_en.pdf."
        }
      ],
      "latLng": [
        24.3438,
        55.1
      ],
      "localOtherName": "أبو ظبي (ara), Mārat Abū Ẓabī (ara), Abu Dhabi (eng)",
      "name": "Abū Z̧aby",
      "parentCode": null,
      "type": "Emirate"
    },
    "AE-DU": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AE/AE-DU.svg",
      "history": null,
      "latLng": [
        25.2296,
        55.2896
      ],
      "localOtherName": "دبي (ara), Imārat Dubayy (ara), Dubai (eng)",
      "name": "Dubayy",
      "parentCode": null,
      "type": "Emirate"
    },
    "AE-FU": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AE/AE-FU.svg",
      "history": [
        {
          "Change": "Change of spelling of AE-AJ, AE-RK; addition of local variation of AE-FU, AE-RK, AE-UQ; update List Source.",
          "Date Issued": "2015-11-27",
          "Description of Change": null,
          "Source": "Online Browsing Platform (OBP) - https://www.iso.org/obp/ui/#iso:code:3166:AE."
        }
      ],
      "latLng": [
        25.4147,
        56.2314
      ],
      "localOtherName": "الفجيرة (ara), Fujairah (eng)",
      "name": "Al Fujayrah",
      "parentCode": null,
      "type": "Emirate"
    },
    "AE-RK": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AE/AE-RK.png",
      "history": [
        {
          "Change": "Change of spelling of AE-AJ, AE-RK; addition of local variation of AE-FU, AE-RK, AE-UQ; update List Source.",
          "Date Issued": "2015-11-27",
          "Description of Change": null,
          "Source": "Online Browsing Platform (OBP) - https://www.iso.org/obp/ui/#iso:code:3166:AE."
        },
        {
          "Change": "Spelling correction in AE-RK.",
          "Date Issued": "2002-05-21",
          "Description of Change": null,
          "Source": "Newsletter I-2 - https://web.archive.org/web/20081218103157/http://www.iso.org/iso/iso_3166-2_newsletter_i-2_en.pdf."
        }
      ],
      "latLng": [
        25.0438,
        56.0966
      ],
      "localOtherName": "رأس الخيمة (ara), Ras Al Khaimah (eng)",
      "name": "Ra’s al Khaymah",
      "parentCode": null,
      "type": "Emirate"
    },
    "AE-SH": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AE/AE-SH.svg",
      "history": null,
      "latLng": [
        25.2798,
        56.2776
      ],
      "localOtherName": "الشارقة (ara), Imārat Aš-Šāriqah (ara), Sharjah (eng)",
      "name": "Ash Shāriqah",
      "parentCode": null,
      "type": "Emirate"
    },
    "AE-UQ": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AE/AE-UQ.svg",
      "history": [
        {
          "Change": "Change of spelling of AE-AJ, AE-RK; addition of local variation of AE-FU, AE-RK, AE-UQ; update List Source.",
          "Date Issued": "2015-11-27",
          "Description of Change": null,
          "Source": "Online Browsing Platform (OBP) - https://www.iso.org/obp/ui/#iso:code:3166:AE."
        }
      ],
      "latLng": [
        25.5145,
        55.7183
      ],
      "localOtherName": "أم القيوين (ara), Umm Al Quwain (eng)",
      "name": "Umm al Qaywayn",
      "parentCode": null,
      "type": "Emirate"
    }
  },
  "AF": {
    "AF-BAL": {
      "flag": null,
      "history": null,
      "latLng": [
        36.7992,
        67.2373
      ],
      "localOtherName": "بلخ (pus), بلخ (prs)",
      "name": "Balkh",
      "parentCode": null,
      "type": "Province"
    },
    "AF-BAM": {
      "flag": null,
      "history": null,
      "latLng": [
        34.75,
        67.25
      ],
      "localOtherName": "بامیان (prs), بامیان (pus), Bamiyan (eng), Bāmīān (pus)",
      "name": "Bāmyān",
      "parentCode": null,
      "type": "Province"
    },
    "AF-BDG": {
      "flag": null,
      "history": null,
      "latLng": [
        35,
        63.75
      ],
      "localOtherName": "بادغیس (pus), بادغیس (prs)",
      "name": "Bādghīs",
      "parentCode": null,
      "type": "Province"
    },
    "AF-BDS": {
      "flag": null,
      "history": null,
      "latLng": [
        36.804,
        71.3677
      ],
      "localOtherName": "بدخشان (pus), بدخشان (prs)",
      "name": "Badakhshān",
      "parentCode": null,
      "type": "Province"
    },
    "AF-BGL": {
      "flag": null,
      "history": null,
      "latLng": [
        35.75,
        69
      ],
      "localOtherName": "بغلان (pus), بغلان (prs)",
      "name": "Baghlān",
      "parentCode": null,
      "type": "Province"
    },
    "AF-DAY": {
      "flag": null,
      "history": [
        {
          "Change": "Subdivisions added: AF-DAY Dāykondī. AF-PAN Panjshīr.",
          "Date Issued": "2005-09-13",
          "Description of Change": "Addition of 2 provinces. Update of list source.",
          "Source": "Newsletter I-7 - https://web.archive.org/web/20081218103217/http://www.iso.org/iso/iso_3166-2_newsletter_i-7_en.pdf."
        }
      ],
      "latLng": [
        33.7251,
        66.2197
      ],
      "localOtherName": "دایکندی (pus), دایکندی (prs), Daikundi (eng), Daikondi (eng), Daykondi (eng)",
      "name": "Dāykundī",
      "parentCode": null,
      "type": "Province"
    },
    "AF-FRA": {
      "flag": null,
      "history": null,
      "latLng": [
        32.6071,
        62.671
      ],
      "localOtherName": "فراه (pus), فراه (prs)",
      "name": "Farāh",
      "parentCode": null,
      "type": "Province"
    },
    "AF-FYB": {
      "flag": null,
      "history": null,
      "latLng": [
        35.6481,
        64.8809
      ],
      "localOtherName": "فاریاب (pus), فاریاب (prs)",
      "name": "Fāryāb",
      "parentCode": null,
      "type": "Province"
    }
  },
  "AG": {
    "AG-03": {
      "flag": null,
      "history": null,
      "latLng": [
        17.1218,
        -61.7812
      ],
      "localOtherName": null,
      "name": "Saint George",
      "parentCode": null,
      "type": "Parish"
    },
    "AG-04": {
      "flag": null,
      "history": [
        {
          "Change": "Change spelling of AG-04.",
          "Date Issued": "2014-10-29",
          "Description of Change": null,
          "Source": "Online Browsing Platform (OBP) - https://www.iso.org/obp/ui/#iso:code:3166:AG."
        }
      ],
      "latLng": [
        17.1152,
        -61.8583
      ],
      "localOtherName": null,
      "name": "Saint John",
      "parentCode": null,
      "type": "Parish"
    },
    "AG-05": {
      "flag": null,
      "history": null,
      "latLng": [
        17.0548,
        -61.8602
      ],
      "localOtherName": null,
      "name": "Saint Mary",
      "parentCode": null,
      "type": "Parish"
    },
    "AG-06": {
      "flag": null,
      "history": null,
      "latLng": [
        17.0326,
        -61.7707
      ],
      "localOtherName": null,
      "name": "Saint Paul",
      "parentCode": null,
      "type": "Parish"
    },
    "AG-07": {
      "flag": null,
      "history": null,
      "latLng": [
        17.107,
        -61.7502
      ],
      "localOtherName": null,
      "name": "Saint Peter",
      "parentCode": null,
      "type": "Parish"
    },
    "AG-08": {
      "flag": null,
      "history": null,
      "latLng": [
        17.0664,
        -61.7062
      ],
      "localOtherName": null,
      "name": "Saint Philip",
      "parentCode": null,
      "type": "Parish"
    },
    "AG-10": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AG/AG-10.svg",
      "history": null,
      "latLng": [
        17.6149,
        -61.8544
      ],
      "localOtherName": null,
      "name": "Barbuda",
      "parentCode": null,
      "type": "Dependency"
    },
    "AG-11": {
      "flag": null,
      "history": [
        {
          "Change": "Subdivisions added: AG-11 Redonda.",
          "Date Issued": "2010-06-30",
          "Description of Change": "Update of the administrative structure and of the list source.",
          "Source": "Newsletter II-2 - https://www.iso.org/files/live/sites/isoorg/files/archive/pdf/en/iso_3166-2_newsletter_ii-2_2010-06-30.pdf."
        }
      ],
      "latLng": [
        17.0245,
        -62.2936
      ],
      "localOtherName": null,
      "name": "Redonda",
      "parentCode": null,
      "type": "Dependency"
    }
  },
  "AI": {},
  "AL": {
    "AL-01": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AL/AL-01.svg",
      "history": null,
      "latLng": [
        40.6084,
        20.1089
      ],
      "localOtherName": "Qarku Berat (sqi)",
      "name": "Berat",
      "parentCode": null,
      "type": "County"
    },
    "AL-02": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AL/AL-02.svg",
      "history": null,
      "latLng": [
        41.428,
        19.5373
      ],
      "localOtherName": "Qarku i Durrësit (sqi)",
      "name": "Durrës",
      "parentCode": null,
      "type": "County"
    },
    "AL-03": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AL/AL-03.svg",
      "history": null,
      "latLng": [
        41.0511,
        20.1399
      ],
      "localOtherName": "Qarku i Elbasanit (sqi)",
      "name": "Elbasan",
      "parentCode": null,
      "type": "County"
    },
    "AL-04": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AL/AL-04.png",
      "history": null,
      "latLng": [
        40.742,
        19.5701
      ],
      "localOtherName": "Qarku Fier (sqi)",
      "name": "Fier",
      "parentCode": null,
      "type": "County"
    },
    "AL-05": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AL/AL-05.png",
      "history": null,
      "latLng": [
        40.1556,
        20.2139
      ],
      "localOtherName": "Qarku i Gjirokastrës (sqi)",
      "name": "Gjirokastër",
      "parentCode": null,
      "type": "County"
    },
    "AL-06": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AL/AL-06.svg",
      "history": null,
      "latLng": [
        40.5859,
        20.7361
      ],
      "localOtherName": "Qarku Korçë (sqi)",
      "name": "Korçë",
      "parentCode": null,
      "type": "County"
    },
    "AL-07": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AL/AL-07.svg",
      "history": null,
      "latLng": [
        42.1886,
        20.377
      ],
      "localOtherName": "Qarku i Kukësit (sqi)",
      "name": "Kukës",
      "parentCode": null,
      "type": "County"
    },
    "AL-08": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AL/AL-08.png",
      "history": null,
      "latLng": [
        41.7932,
        19.8891
      ],
      "localOtherName": "Qarku i Lezhës (sqi)",
      "name": "Lezhë",
      "parentCode": null,
      "type": "County"
    }
  },
  "AM": {
    "AM-AG": {
      "flag": null,
      "history": null,
      "latLng": [
        40.3828,
        44.1147
      ],
      "localOtherName": "Արագածոտն (hye), Aragatsotn (eng)",
      "name": "Aragac̣otn",
      "parentCode": null,
      "type": "Region"
    },
    "AM-AR": {
      "flag": null,
      "history": null,
      "latLng": [
        40.0054,
        44.7315
      ],
      "localOtherName": "Արարատ (hye), Ararat (eng)",
      "name": "Ararat",
      "parentCode": null,
      "type": "Region"
    },
    "AM-AV": {
      "flag": null,
      "history": null,
      "latLng": [
        40.1556,
        44.0388
      ],
      "localOtherName": "Արմավիր (hye), Armavir (eng)",
      "name": "Armavir",
      "parentCode": null,
      "type": "Region"
    },
    "AM-ER": {
      "flag": "https://raw.githubusercontent.com/amckenna41/iso3166-flags/main/iso3166-2-flags/AM/AM-ER.svg",
      "history": null,
      "latLng": [
        40.1777,
        44.5126
      ],
      "localOtherName": "Երևան (hye), Yerevan (eng), The Pink City (eng), Mother City (eng)",
      "name": "Erevan",
      "parentCode": null,
      "type": "City"
    },
    "AM-GR": {
      "flag": null,
      "history": null,
      "latLng": [
        40.3031,
        45.3757
      ],
      "localOtherName": "Գեղարքունիք (hye), Gegharkunik (eng)",
      "name": "Geġark'unik'",
      "parentCode": null,
      "type": "Region"
    },
    "AM-KT": {
      "flag": null,
      "history": null,
      "latLng": [
        40.3707,
        44.6885
      ],
      "localOtherName": "Կոտայք (hye), Kotayk (eng)",
      "name": "Kotayk'",
      "parentCode": null,
      "type": "Region"
    },
    "AM-LO": {
      "flag": null,
      "history": null,
      "latLng": [
        41.0073,
        44.49
      ],
      "localOtherName": "Լոռի (hye), Lori (eng)",
      "name": "Loṙi",
      "parentCode": null,
      "type": "Region"
    },
    "AM-SH": {
      "flag": null,
      "history": null,
      "latLng": [
        40.9186,
        43.8404
      ],
      "localOtherName": "Շիրակ (hye), Shirak (eng)",
      "name": "Širak",
      "parentCode": null,
      "type": "Region"
    }
  },
  "AO": {
    "AO-BGO": {
      "flag": null,
      "history": null,
      "latLng": [
        -8.3197,
        13.8656
      ],
      "localOtherName": "Bengo (kon)",
      "name": "Bengo",
      "parentCode": null,
      "type": "Province"
    },
    "AO-BGU": {
      "flag": null,
      "history": null,
      "latLng": [
        -12.9105,
        14.0357
      ],
      "localOtherName": "Bengela (kon), Luombaka Volupale (umb)",
      "name": "Benguela",
      "parentCode": null,
      "type": "Province"
    },
    "AO-BIE": {
      "flag": null,
      "history": null,
      "latLng": [
        -12.263,
        17.4968
      ],
      "localOtherName": "Biye (kon)",
      "name": "Bié",
      "parentCode": null,
      "type": "Province"
    },
    "AO-CAB": {
      "flag": null,
      "history": null,
      "latLng": [
        -5.0564,
        12.3212
      ],
      "localOtherName": "Kabinda (kon), Portuguese Congo (eng)",
      "name": "Cabinda",
      "parentCode": null,
      "type": "Province"
    },
    "AO-CCU": {
      "flag": null,
      "history": [
        {
          "Change": "Change of spelling of AO-CCU, AO-CNO, AO-CUS, AO-LNO, AO-LSU; Addition of local variation for AO-CCU, AO-CNO, AO-CUS; Update List Source.",
          "Date Issued": "2020-11-24",
          "Description of Change": null,
          "Source": "Online Browsing Platform (OBP) - https://www.iso.org/obp/ui/#iso:code:3166:AO."
        },
        {
          "Change": "Correct spelling of AO-CCU.",
          "Date Issued": "2015-02-12",
          "Description of Change": null,
          "Source": "Online Browsing Platform (OBP) - https://www.iso.org/obp/ui/#iso:code:3166:AO."
        }
      ],
      "latLng": [
        -16.0458,
        19.5622
      ],
      "localOtherName": "Kuando Kubango Volupale (kon)",
      "name": "Cuando Cubango",
      "parentCode": null,
      "type": "Province"
    },
    "AO-CNN": {
      "flag": null,
      "history": null,
      "latLng": [
        -16.5569,
        15.7867
      ],
      "localOtherName": "Kuene (kon)",
      "name": "Cunene",
      "parentCode": null,
      "type": "Province"
    },
    "AO-CNO": {
      "flag": null,
      "history": [
        {
          "Change": "Change of spelling of AO-CCU, AO-CNO, AO-CUS, AO-LNO, AO-LSU; Addition of local variation for AO-CCU, AO-CNO, AO-CUS; Update List Source.",
          "Date Issued": "2020-11-24",
          "Description of Change": null,
          "Source": "Online Browsing Platform (OBP) - https://www.iso.org/obp/ui/#iso:code:3166:AO."
        },
        {
          "Change": "Correct spelling of AO-CNO and AO-CUS.",
          "Date Issued": "2014-12-18",
          "Description of Change": null,
          "Source": "Online Browsing Platform (OBP) - https://www.iso.org/obp/ui/#iso:code:3166:AO."
        }
      ],
      "latLng": [
        -9.0297,
        15.0926
      ],
      "localOtherName": "Konano Kwanza Volupale (kon), North Cuanza (eng)",
      "name": "Cuanza-Norte",
      "parentCode": null,
      "type": "Province"
    },
    "AO-CUS": {
      "flag": null,
      "history": [
        {
          "Change": "Change of spelling of AO-CCU, AO-CNO, AO-CUS, AO-LNO, AO-LSU; Addition of local variation for AO-CCU, AO-CNO, AO-CUS; Update List Source.",
          "Date Issued": "2020-11-24",
          "Description of Change": null,
          "Source": "Online Browsing Platform (OBP) - https://www.iso.org/obp/ui/#iso:code:3166:AO."
        },
        {
          "Change": "Correct spelling of AO-CNO and AO-CUS.",
          "Date Issued": "2014-12-18",
          "Description of Change": null,
          "Source": "Online Browsing Platform (OBP) - https://www.iso.org/obp/ui/#iso:code:3166:AO."
        }
      ],
      "latLng": [
        -10.7708,
        15.0976
      ],
      "localOtherName": "Kuanza Sudi (kon), South Cuanza (eng)",
      "name": "Cuanza-Sul",
      "parentCode": null,
      "type": "Province"
    }
  }
}
Call itcurl · fetch · python
curl "https://iso3166-2-api.vercel.app/api/all"
const res = await fetch("https://iso3166-2-api.vercel.app/api/all");
const data = await res.json();
console.log(data);
import requests

res = requests.get("https://iso3166-2-api.vercel.app/api/all")
print(res.json())

BROWSER CALLS BLOCKED (NO CORS/HTTPS) — USE THE CURL SNIPPET

Endpoints · 6On scheduleFULL DOCS ↗
On schedule — GET /api/all awaits first probe
GET/api/allPROBED

ISO 3166-2 API — Access all of the world's subdivision/regional ISO 3166…

GET/api

Api — documented GET route.

GET/api/1

Api details by ID (example: 1).

GET/api?limit=10

Api — documented GET route.

GET/api/search?q=test

Search by query parameters.

GET/api/all?limit=10

Full collection dump.

Machine-readable spec

We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.

Response-shape history

Not tracked yet. Shape-change history starts once this API joins our probe schedule.

ISO 3166-2 API: common questions

Is ISO 3166-2 API free to use?

Yes — ISO 3166-2 API is a free geo & maps API. Free tier: Free — limits not published. Whether the free tier allows commercial use is unclear — check the provider docs.

Does ISO 3166-2 API need an API key?

No — ISO 3166-2 API needs no API key or signup. You can call it straight away; rate limits still apply (Unpublished).

Can I call ISO 3166-2 API from the browser?

Not directly — ISO 3166-2 API doesn't send browser-friendly CORS headers, so call it from a server or proxy instead. Copy the curl or Python snippet on this page to get started.

Is ISO 3166-2 API up right now?

ISO 3166-2 API is catalogued but not yet on our probe schedule, so we don't publish a live status for it. Check the provider's own status page or docs for its current state.