Skip to content
czechdatasets

Czech medicines database (SÚKL) with dispensing and price history

The complete Czech medicines database (SÚKL) in clean UTF-8 tables: packs, ATC tree, substances and composition. Plus monthly dispensing and average prices from pharmacies since May 2020.

Free sample

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

You are buying the Medicines, medicine shortages, pharmacies and healthcare providers bundle. It also includes: Healthcare facilities (NRPZS), Medicine shortages and availability, Pharmacies with opening hours and GPS.

An island with a village pharmacy and a health centre with a green cross and a herb gardenAn island with a village pharmacy and a health centre with a green cross and a herb garden

How much work it saves

Converting the database from cp1250, expanding its code lists into text, building the ATC hierarchy and joining 78 monthly LEK-13 pharmacy reports into one time series.

Measured on our own build

Lines of code and tests
877

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
1 November 2026
Rows
2.4m
Tables
10
Formats
PostgreSQL, Parquet, CSV, JSON
Source licence
SÚKL terms, commercial use allowed

What’s inside

The Database of Medicinal Products (Databáze léčivých přípravků, DLP) of SÚKL, the Czech medicines agency, converted into clean UTF-8 tables: products (one row per SÚKL code) with code lists expanded, the ATC hierarchy, substances and composition, organisations, and the monthly history of dispensing and average prices from the LEK-13 pharmacy reports (2020-05 to 2026-10).

TableRows
lecivaMedicinal products and foods for special medical purposes (PZLÚ) from the SÚKL database: one row per SÚKL code (a specific pack)70,032
atcATC classification (Anatomical Therapeutic Chemical) with its tree hierarchy6,999
latkySubstances (active and excipient). Codes -1 (OR / NEBO) and 0 (CORRESPONDING TO / ODPOVÍDÁ) are helper rows used in the composition21,587
latky_synonymaSynonyms and alternative names of substances (useful for full-text search)273,219
latky_soliLink from a base substance → its salt3,020
slozeniComposition of products: row = a substance in a product (active and excipient, including the helper rows)811,168
organizaceMarketing authorisation holders and manufacturers (identified by kod + zeme_kod). For natural persons (je_fyzicka_osoba) the name, which is the person’s name, is not published3,606
ciselnikyAll DLP code lists in one table (pharmaceutical form, route of administration, packaging, registration status, dispensing, …)1,821
ceny_historieMonthly summaries of dispensing from pharmacies (SÚKL LEK-13): number of packs dispensed and weighted average prices1,190,390
hrazeni_historieIntervals when a product had / did not have a reimbursement set from public health insurance, derived from the monthly LEK-13 reports (consecutive months with the same status)56,018

Official maximum prices and reimbursement amounts (SCAU) are not in the dataset: SÚKL does not publish them as open data. The prices in ceny_historie are weighted averages from pharmacy reports.

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 CSV222 kB
ParquetOne file per table (zstd). DuckDB, Polars and pandas read it without an import.1025 MB
CSVUTF-8, comma-separated, with a header; large tables as .csv.gz1056 MB
JSONAn array of objects; large tables as JSON Lines (.jsonl.gz)1089 MB

Code example

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

Over-the-counter ibuprofenPostgreSQL
-- přípravky s ibuprofenem na volný prodej, s textovým názvem formy
SELECT l.kod_sukl, l.nazev, l.doplnek, l.forma, l.drzitel
FROM sukl_leciva.leciva l
WHERE l.atc_kod = 'M01AE01' AND l.vydej_kod = 'F' AND l.stav_registrace_kod = 'R';
Price history of one productPostgreSQL
-- vývoj průměrné ceny a počtu vydaných balení jednoho přípravku
SELECT obdobi, sum(pocet_baleni) baleni,
       round(sum(konecna_cena_s_dph * pocet_baleni) / nullif(sum(pocet_baleni) FILTER (WHERE konecna_cena_s_dph IS NOT NULL), 0), 2) cena
FROM sukl_leciva.ceny_historie WHERE kod_sukl = '0047863' GROUP BY obdobi ORDER BY obdobi;

Medicines, medicine shortages, pharmacies and healthcare providers 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.