Skip to content
czechdatasets

Czech company database from the RES register, with RÚIAN addresses

Czech companies and organisations by IČO (the company ID), from the register of economic entities (RES): legal form, CZ-NACE activities, size and registered office address with GPS. No natural persons.

Free sample

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

An island with a town square and three businesses: a joinery, a shop with an awning and a small officeAn island with a town square and three businesses: a joinery, a shop with an awning and a small office

How much work it saves

Joining two RES exports with six code lists from ČSÚ, the Czech Statistical Office, removing natural persons, splitting activities into a separate table and matching registered offices to address points in RÚIAN, the Czech register of addresses, buildings, parcels and territorial units. 96.7% of entities have coordinates.

Measured on our own build

Lines of code and tests
528

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.

  • Free sample: all tables cut down to the Kutná Hora area, in CSV and Parquet. Download the sample
Data as of
31 October 2026
Rows
8.3m
Tables
2
Bundle contents
2 tables: firmy, firmy_nace
Formats
PostgreSQL, Parquet, CSV, JSON
Source licence
CC BY 4.0 (ČSÚ, ČÚZK)

What’s inside

Legal entities, organisational units of the state, municipalities, associations and other entities from the RES register, without natural persons. Legal form, CZ-NACE (the Czech version of the EU classification of economic activities), institutional sector, size, registered office address with the RÚIAN address point code and WGS84 coordinates.

TableRows
firmyone row = one IČO, the Czech company ID number (active entities and those dissolved since 11/2022)968,262
firmy_naceall activities of the entities (CZ-NACE 2025 and Rev. 2), long format7,372,636
firmy_aktivniviewPostgreSQL view = firmy WHERE je_aktivni882,590

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 CSV26.0 kB
ParquetOne file per table (zstd). DuckDB, Polars and pandas read it without an import.282 MB
CSVUTF-8, comma-separated, with a header; large tables as .csv.gz2135 MB
JSONAn array of objects; large tables as JSON Lines (.jsonl.gz)2170 MB
  • In preparation Public register data for companies: Date of registration, registered capital, objects of business and companies on the boards of other companies, by IČO.
  • Considering DIČ and unreliable VAT payers: Validation of DIČ (the Czech tax/VAT ID), VAT payer status and published bank accounts of legal entities.
  • Considering Company vehicle fleets: Number of a company’s vehicles by category, fuel and age, by IČO.

Code example

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

Companies by activityDuckDB
-- všechny firmy s činností 'Vývoj software' (i vedlejší)
SELECT f.ico, f.nazev, f.kraj FROM 'parquet/firmy.parquet' f
JOIN 'parquet/firmy_nace.parquet' n USING (ico)
WHERE n.klasifikace = 'CZ-NACE 2025' AND n.nace_kod LIKE '621%' AND f.je_aktivni;
Active entities by regionPython
import pandas as pd
firmy = pd.read_parquet("parquet/firmy.parquet")
aktivni = firmy[firmy.je_aktivni]
print(aktivni.groupby("kraj").size())

Companies with GPS for 490 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.