What is iso-3166-2?
The iso-3166-2 npm package provides utilities for working with ISO 3166-2 codes, which are used to define the principal subdivisions (e.g., provinces or states) of all countries coded in ISO 3166-1.
What are iso-3166-2's main functionalities?
Get country subdivisions
This feature allows you to retrieve the subdivisions of a given country using its ISO 3166-1 alpha-2 code. In this example, it retrieves the subdivisions of the United States.
const iso3166 = require('iso-3166-2');
const subdivisions = iso3166.subdivision('US');
console.log(subdivisions);
Get subdivision name
This feature allows you to get the name of a specific subdivision by providing the country code and the subdivision code. In this example, it retrieves the name of the subdivision 'CA' in the United States.
const iso3166 = require('iso-3166-2');
const subdivisionName = iso3166.subdivision('US', 'CA');
console.log(subdivisionName);
Get country name
This feature allows you to get the name of a country by providing its ISO 3166-1 alpha-2 code. In this example, it retrieves the name of the country 'US'.
const iso3166 = require('iso-3166-2');
const countryName = iso3166.country('US');
console.log(countryName);
Other packages similar to iso-3166-2
iso-3166-1
The iso-3166-1 package provides utilities for working with ISO 3166-1 codes, which are used to define the names of countries and their subdivisions. It is similar to iso-3166-2 but focuses on the country codes rather than the subdivisions.
country-data
The country-data package provides a comprehensive set of data about countries, including ISO 3166-1 and ISO 3166-2 codes, currencies, languages, and more. It offers a broader range of data compared to iso-3166-2.
i18n-iso-countries
The i18n-iso-countries package provides utilities for working with ISO 3166-1 and ISO 3166-2 codes, with support for multiple languages. It offers similar functionality to iso-3166-2 but with added internationalization support.
iso-3166-2.js

Lookup information about ISO-3166-2 subdivisions.
Country code format
The country codes in the data are in the ISO 3166-1 alpha 2 format (US,
SE ...), but there is a conversion table that makes possible to input
alpha 3 codes (USA, SWE ...) to the subdivision
and country
functions.
https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3
Examples
> iso3166.subdivision("SE-O");
{ type: 'County',
name: 'Västra Götalands län',
countryName: 'Sweden',
countryCode: 'SE',
regionCode: 'O',
code: 'SE-O' }
> iso3166.subdivision("SE", "O");
{ type: 'County',
name: 'Västra Götalands län',
countryName: 'Sweden',
countryCode: 'SE',
regionCode: 'O',
code: 'SE-O' }
> iso3166.subdivision("USA", "Indiana");
{ type: 'state',
name: 'Indiana',
countryName: 'United States',
countryCode: 'US',
regionCode: 'IN',
code: 'US-IN' }
Functions
iso3166.subdivision(code)
Retrieves a subdivision by its full code, ex "SE-O", "US-IN".
iso3166.subdivision(country code, subdivision code)
Retrieves a subdivision by its country code and subdivision code,
ex ("SWE", "O").
iso3166.subdivision(country code, subdivision name)
Retrieves a subdivision by its country code and subdivision name,
ex ("US", "Indiana").
iso3166.country(country code)
Retrieves a country by its code, ex "US", "SE", "SWE".
iso3166.data
The raw ISO 3166-2 data, the layout is:
{
country code (alpha 2): {
name: country name, ex Sweden, United States ...
sub: {
subdivision code: {
type: subdivision type, ex county, divison ...
name: subdivision name, ex Västra Götaland, Indiana
}
}
}
}
iso3166.codes
The ISO 3166-1 alpha 3 to alpha 2 conversion table, the layout is:
{
country code (alpha 3): country code (alpha 2)
}