Skip to Content

South Korean Province Codes: Complete ISO 3166-2:KR Reference (2026)

South Korea has 17 first-level administrative divisions, each with an ISO 3166-2:KR code. These include one special city (the capital), six metropolitan cities, nine provinces, one special autonomous city, and one special autonomous province.

Overview

Division TypeCountExamples
Special City1Seoul (KR-11)
Metropolitan Cities6Busan, Incheon, Daegu, Daejeon, Gwangju, Ulsan
Provinces9Gyeonggi, South Chungcheong, North Gyeongsang, etc.
Special Autonomous City1Sejong (KR-50)
Special Autonomous Province1Jeju (KR-49)
Total17

Special City (1)

Seoul is the capital and only special city in South Korea. It is under direct central government administration and classified separately from metropolitan cities.

CodeName (English)Name (Romanized)Name (Korean)Type
KR-11SeoulSeoul Teukbyeolsi서울특별시Special City

Metropolitan Cities (6)

Metropolitan cities are large urban areas with populations typically exceeding 1 million, governed independently from surrounding provinces.

CodeName (English)Name (Romanized)Name (Korean)Population (approx.)
KR-26BusanBusan Gwangyeoksi부산광역시3.4 million
KR-27DaeguDaegu Gwangyeoksi대구광역시2.4 million
KR-28IncheonIncheon Gwangyeoksi인천광역시3.0 million
KR-29GwangjuGwangju Gwangyeoksi광주광역시1.5 million
KR-30DaejeonDaejeon Gwangyeoksi대전광역시1.5 million
KR-31UlsanUlsan Gwangyeoksi울산광역시1.1 million

Provinces (9)

Provinces (Do) are the main regional divisions of South Korea and surround or contain the major metropolitan cities.

CodeName (English)Name (Romanized)Name (Korean)Region
KR-41GyeonggiGyeonggi-do경기도Central
KR-42GangwonGangwon-do강원도Northeast
KR-43North ChungcheongChungcheongbuk-do충청북도Central
KR-44South ChungcheongChungcheongnam-do충청남도Central-West
KR-45North JeollaJeollabuk-do전라북도Southwest
KR-46South JeollaJeollanam-do전라남도Southwest
KR-47North GyeongsangGyeongsangbuk-do경상북도Southeast
KR-48South GyeongsangGyeongsangnam-do경상남도Southeast
KR-50SejongSejong Teukbyeoljachisi세종특별자치시Central

Note on Sejong (KR-50): Sejong is officially a Special Autonomous City, not a province, but shares the numeric range with provinces. It was designated as a planned administrative capital in 2012 to relieve population pressure on Seoul.

Special Autonomous Entities (2)

Special Autonomous City

CodeName (English)Name (Romanized)Name (Korean)Type
KR-50SejongSejong Teukbyeoljachisi세종특별자치시Special Autonomous City

Special Autonomous Province

CodeName (English)Name (Romanized)Name (Korean)Type
KR-49JejuJeju Teukbyeoljachido제주특별자치도Special Autonomous Province

Jeju Island was elevated to Special Autonomous Province status in 2006, giving it broader self-governance rights than regular provinces. It is South Korea’s largest island and a major international tourism destination.

Complete Reference Table

All 17 South Korean subdivisions in a single table for quick reference:

CodeName (English)Name (Romanized)Type
KR-11SeoulSeoul TeukbyeolsiSpecial City
KR-26BusanBusan GwangyeoksiMetropolitan City
KR-27DaeguDaegu GwangyeoksiMetropolitan City
KR-28IncheonIncheon GwangyeoksiMetropolitan City
KR-29GwangjuGwangju GwangyeoksiMetropolitan City
KR-30DaejeonDaejeon GwangyeoksiMetropolitan City
KR-31UlsanUlsan GwangyeoksiMetropolitan City
KR-41GyeonggiGyeonggi-doProvince
KR-42GangwonGangwon-doProvince
KR-43North ChungcheongChungcheongbuk-doProvince
KR-44South ChungcheongChungcheongnam-doProvince
KR-45North JeollaJeollabuk-doProvince
KR-46South JeollaJeollanam-doProvince
KR-47North GyeongsangGyeongsangbuk-doProvince
KR-48South GyeongsangGyeongsangnam-doProvince
KR-49JejuJeju TeukbyeoljachidoSpecial Autonomous Province
KR-50SejongSejong TeukbyeoljachisiSpecial Autonomous City

Code Examples

Get All South Korean Subdivisions

import { subdivision } from '@koshmoney/countries'; // Get all 17 subdivisions of South Korea const krSubs = subdivision.getByCountry('KR'); console.log(krSubs.length); // 17 // Each subdivision has: code, name, type krSubs.forEach((sub) => { console.log(`${sub.code}: ${sub.name} (${sub.type})`); });

Look Up a Specific Province

import { subdivision } from '@koshmoney/countries'; subdivision.get('KR-11'); // { code: 'KR-11', name: 'Seoul', type: 'Special city' } subdivision.get('KR-26'); // { code: 'KR-26', name: 'Busan', type: 'Metropolitan city' } subdivision.get('KR-41'); // { code: 'KR-41', name: 'Gyeonggi', type: 'Province' } subdivision.get('KR-49'); // { code: 'KR-49', name: 'Jeju', type: 'Special self-governing province' }

Validate a Korean Province Code

import { subdivision } from '@koshmoney/countries'; subdivision.isValidCode('KR-11'); // true (Seoul) subdivision.isValidCode('KR-41'); // true (Gyeonggi) subdivision.isValidCode('KR-99'); // false subdivision.isValidRegion('KR', '26'); // true (Busan)

Filter by Division Type

import { subdivision } from '@koshmoney/countries'; const krSubs = subdivision.getByCountry('KR'); // Get only provinces const provinces = krSubs.filter((s) => s.type === 'Province'); console.log(provinces.length); // 9 // Get metropolitan cities const metros = krSubs.filter((s) => s.type === 'Metropolitan city'); console.log(metros.length); // 6

Tree-Shaking: Import Only South Korea Data

// Import only Korean subdivisions for smaller bundles import { subdivisions } from '@koshmoney/countries/subdivision/KR'; Object.keys(subdivisions); // ['KR-11', 'KR-26', 'KR-27', ..., 'KR-50']

Use Cases

K-Commerce Shipping

South Korea is one of the world’s largest e-commerce markets. Province codes are essential for calculating shipping rates, estimating delivery times, and determining regional surcharges.

import { subdivision } from '@koshmoney/countries'; type ShippingTier = 'metropolitan' | 'province' | 'island' | 'unknown'; function getKoreanShippingTier(subdivisionCode: string): ShippingTier { const sub = subdivision.get(subdivisionCode); if (!sub) return 'unknown'; // Jeju Island has additional shipping surcharges if (subdivisionCode === 'KR-49') return 'island'; if (sub.type === 'Metropolitan city' || sub.type === 'Special city') { return 'metropolitan'; } return 'province'; } getKoreanShippingTier('KR-11'); // 'metropolitan' (Seoul) getKoreanShippingTier('KR-41'); // 'province' (Gyeonggi) getKoreanShippingTier('KR-49'); // 'island' (Jeju - surcharge applies)

Address Validation

Validate Korean addresses submitted through a form before processing an order:

import { subdivision } from '@koshmoney/countries'; interface KoreanAddress { subdivisionCode: string; postalCode: string; addressLine: string; } function validateKoreanAddress(address: KoreanAddress): boolean { // Validate the subdivision code belongs to South Korea const isValidSubdivision = subdivision.isValidCode(address.subdivisionCode) && address.subdivisionCode.startsWith('KR-'); // Korean postal codes are 5 digits const isValidPostalCode = /^\d{5}$/.test(address.postalCode); return isValidSubdivision && isValidPostalCode; }

Build a Korean Province Selector

import { subdivision } from '@koshmoney/countries'; // Build options for an address form dropdown const krProvinceOptions = subdivision .getByCountry('KR') .map((sub) => ({ value: sub.code, label: sub.name, type: sub.type, })) .sort((a, b) => a.label.localeCompare(b.label)); // Group by type for a grouped select element const grouped = { 'Special City': krProvinceOptions.filter((o) => o.type === 'Special city'), 'Metropolitan Cities': krProvinceOptions.filter((o) => o.type === 'Metropolitan city'), 'Provinces': krProvinceOptions.filter((o) => o.type === 'Province'), 'Special Autonomous': krProvinceOptions.filter((o) => o.type?.includes('Special') && o.type !== 'Special city' ), };

Understanding Korean Administrative Divisions

South Korea’s administrative system has three main tiers:

  1. First-level (17 units): Special city, metropolitan cities, provinces, special autonomous entities — covered in this reference
  2. Second-level: Cities (si), counties (gun), autonomous districts (gu)
  3. Third-level: Towns (eup), townships (myeon), neighborhoods (dong)

Code Numbering Pattern

Code RangeDivision Type
KR-11Seoul (Special City)
KR-26 to KR-31Metropolitan Cities
KR-41 to KR-48Provinces
KR-49Jeju (Special Autonomous Province)
KR-50Sejong (Special Autonomous City)

Get Started

Install @koshmoney/countries to use Korean province codes in your application:

npm install @koshmoney/countries
import { subdivision } from '@koshmoney/countries'; // Validate a Korean province code from user input function isValidKoreanProvince(code: string): boolean { return subdivision.isValidCode(code) && code.startsWith('KR-'); }