Skip to content
czechdatasets

Czech municipality list, classifications and code lists (ČSÚ) with validity over time

List of Czech municipalities, regions, districts and ORP areas with their official codes, plus CZ-NACE, CZ-ISCO, CZ-CPA, CZ-NUTS, legal forms and countries with ISO codes. All versions merged into validity intervals.

Free sample

One-time payment, final price for a personal licence, switch to business at checkout · data as of 9 November 2026

You are buying the ČSÚ code lists + population bundle. It also includes: Population of municipalities 2000–2026.

An island with a row of houses of different heights like a bar chart and a wooden filing cabinet with one drawer pulled outAn island with a row of houses of different heights like a bar chart and a wooden filing cabinet with one drawer pulled out

How much work it saves

Downloading the exports from iSMS, the metadata system of ČSÚ (the Czech Statistical Office), version by version, merging them into validity intervals and converting the ČSÚ territorial codes to the codes of RÚIAN, the Czech register of addresses, buildings, parcels and territorial units. Check against RÚIAN: 6,258 municipalities, 0 differences.

Measured on our own build

Lines of code and tests
742
Machine time per build
8 mins

We measured AI agent usage on 6 other datasets: the first working version of the code took 10m to 40m tokens and 21–62 mins of agent run time. Build including source downloads, measured on Apple M5 (10 cores, 24 GB RAM).

  • Free sample: all tables cut down to the Kutná Hora area, in CSV and Parquet. Download the sample
Data as of
9 November 2026
Rows
63,292
Tables
22
Formats
PostgreSQL, Parquet, CSV, JSON
Source licence
CC BY 4.0 (ČSÚ)

What’s inside

Classifications and code lists of ČSÚ with validity over time: CZ-NACE, CZ-ISCO, CZ-CPA, CZ-CISS, CZ-COFOG, CZ-NUTS, legal forms, employee count categories, countries with ISO codes, and regions, districts, ORP (municipalities with extended powers), POU (authorised municipal offices) and municipalities with RÚIAN codes.

TableRows
cz_nace_2008CZ-NACE classification of economic activities (2008, valid until 31 December 2024)1,717
cz_nace_2025CZ-NACE 2025 classification of economic activities (from 1 January 2025)1,803
cz_cpa_2015CZ-CPA 2015 classification of products5,522
cz_cpa_2025CZ-CPA 2025 classification of products5,967
cz_iscoCZ-ISCO classification of occupations (all versions since 2011)2,134
cz_cissCZ-CISS classification of institutional sectors and subsectors (ESA 2010)64
cz_cofogCZ-COFOG classification of the functions of government188
cz_nutsCZ-NUTS classification of territorial units for statistics (all versions since 2008)30
pravni_formaLegal form of an organisation (code list 56, used by RES, the ČSÚ register of economic entities)118
pravni_forma_rosLegal form in the register of persons (code list 149, used by ROS)116
Show all 22 tables
TableRows
kategorie_poctu_zamestnancuEmployee count categories (code list 579, used by RES)20
statyCountries and territories (CZEM) with ISO 3166-1 codes439
krajeRegions14
okresyDistricts92
orpORP administrative districts206
pouPOU administrative districts397
obceMunicipalities and military training areas6,287
spravni_obvody_prahaAdministrative districts of the City of Prague22
mestske_castiCity districts157
obce_prislusnostAffiliation of municipalities to higher units over time12,704
vsechnyAll code lists of the dataset in one long table25,275
prehledOverview of the dataset’s tables20

Downloads

Every format contains the same data. Download only the one you need; verify its integrity with the SHA256SUMS file.

FormatFilesSize
PostgreSQLschema.sql with types, keys, indexes and comments, and import.sh, which loads the data from CSV231 kB
ParquetOne file per table (zstd). DuckDB, Polars and pandas read it without an import.221.7 MB
CSVUTF-8, comma-separated, with a header; large tables as .csv.gz227.4 MB
JSONAn array of objects; large tables as JSON Lines (.jsonl.gz)2216 MB

Code example

More examples for SQL, DuckDB, Python and Node.js are in the README.md inside the bundle.

Which ORP a municipality belonged to in 2005PostgreSQL
-- do kterého ORP patřila obec 1. 1. 2005
SELECT o.nazev, p.* FROM csu_ciselniky.obce_prislusnost p
JOIN csu_ciselniky.orp o ON o.kod = p.orp_kod AND o.platnost_do IS NULL
WHERE p.obec_kod = 582786 AND DATE '2005-01-01' BETWEEN p.platnost_od AND COALESCE(p.platnost_do, 'infinity');
Names of legal formsNode.js
import fs from "node:fs";
const formy = JSON.parse(fs.readFileSync("json/pravni_forma.json", "utf8"));
const nazevFormy = Object.fromEntries(formy.filter(f => !f.platnost_do).map(f => [f.kod, f.nazev]));
console.log(nazevFormy["112"]); // Společnost s ručením omezeným

Source and licence

Processed by
czechdatasets.com. The data is modified and is not an official output of the authority; the required attribution is in LICENCE.txt.

ČSÚ code lists + population for 190 CZK.

One-time payment, download right after paying, no account and no subscription. Updates to the dataset are included in the price. All 15 paid datasets together cost 2,490 CZK, 3,510 CZK less than buying them one by one.