Pharmacies in the Czech Republic with opening hours and GPS
All 2,682 Czech pharmacies and dispensing points on the official list: type, emergency service, mail order, e-prescriptions and opening hours by day as a table. Each has a municipality code and 99.6% an address point code and coordinates the source lacks.
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: Medicinal products (SÚKL), Healthcare facilities (NRPZS), Medicine shortages and availability.


How much work it saves
Converting the list of SÚKL, the Czech medicines agency, from cp1250 and removing its 11 test records. Splitting the address out of a single field and matching it to RÚIAN, the Czech register of addresses, buildings, parcels and territorial units (2,671 of 2,682 pharmacies, cross-checked against NRPZS, the national register of healthcare providers). Converting 20,276 rows of working hours into times with closed and non-stop flags, unifying phone numbers, e-mails and websites, and adding the operator’s name and legal form from RES, the register of economic entities of the Czech Statistical Office (ČSÚ).
Measured on our own build
- Lines of code and tests
- 1,107
- AI agent tokens
- 16m
- AI agent run time
- 36 mins
Tokens and time cover the first working version of the code, written with Claude Fable 5.2. Not counted: researching sources and licences, quality checks and later fixes.
- 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
- 30,772
- Tables
- 5
- Formats
- PostgreSQL, Parquet, CSV, JSON
- Source licence
- SÚKL terms, commercial use allowed; addresses CC BY 4.0 (ČÚZK)
What’s inside
The list of pharmacies and detached medicine-dispensing units kept by SÚKL: pharmacy type, emergency service, mail-order dispensing, eRecept (the Czech e-prescription system), opening hours by day as a table, operator (legal entities), address linked to RÚIAN and WGS84 coordinates. Pharmacies run by natural persons come without the operator’s identity and without contacts.
| Table | Rows |
|---|---|
lekarnyPharmacies and detached medicine-dispensing units (OOVL) | 2,682 |
oteviraci_dobaPharmacy opening hours: row = pharmacy × day × continuous interval (a break = two intervals) | 20,221 |
typy_lekarenSÚKL code list of pharmacy types | 16 |
provozovatelePharmacy operators: legal entities only (natural persons are not included). Name and legal form from RES | 897 |
kontaktyAll contacts of pharmacies run by legal entities, after validation (a pharmacy may have several phone numbers, e-mails, websites). Pharmacies of natural persons are not here | 6,956 |
The names of the chief pharmacists are not in the dataset. The 246 pharmacies run by a natural person keep their location, type and opening hours, but have no IČO (the Czech company ID number), operator or contacts. The source is a monthly snapshot without history.
Downloads
Every format contains the same data. Download only the one you need; verify its integrity with the SHA256SUMS file.
| Format | Files | Size |
|---|---|---|
| PostgreSQLschema.sql with types, keys, indexes and comments, and import.sh, which loads the data from CSV | 2 | 11 kB |
| ParquetOne file per table (zstd). DuckDB, Polars and pandas read it without an import. | 5 | 378 kB |
| CSVUTF-8, comma-separated, with a header; large tables as .csv.gz | 5 | 2.6 MB |
| JSONAn array of objects; large tables as JSON Lines (.jsonl.gz) | 5 | 6.8 MB |
Code example
More examples for SQL, DuckDB, Python and Node.js are in the README.md inside the bundle.
-- lékárny, které mají otevřeno v neděli ve 20:00, s adresou a GPS
SELECT l.nazev, l.ruian_adresa, l.lat, l.lon, o.otevreno_od, o.otevreno_do
FROM lekarny.lekarny l JOIN lekarny.oteviraci_doba o USING (kod_pracoviste)
WHERE o.den_cislo = 7 AND NOT o.zavreno
AND (o.nepretrzite OR (TIME '20:00' >= o.otevreno_od AND TIME '20:00' < o.otevreno_do));-- deset nejbližších lékáren k bodu (Brno, náměstí Svobody), vzdálenost v km
SELECT nazev, ruian_adresa,
round((6371 * acos(least(1, cos(radians(49.1951)) * cos(radians(lat)) * cos(radians(lon) - radians(16.6068))
+ sin(radians(49.1951)) * sin(radians(lat)))))::numeric, 2) AS km
FROM lekarny.lekarny WHERE lat IS NOT NULL ORDER BY km LIMIT 10;-- počet lékáren a lékáren s pohotovostí podle krajů
SELECT kraj_nazev, count(*) AS lekaren, count(*) FILTER (WHERE pohotovost) AS s_pohotovosti,
round(avg(hodin_tydne), 1) AS prumer_hodin_tydne
FROM 'parquet/lekarny.parquet' GROUP BY 1 ORDER BY 2 DESC;Source and licence
- Sources
- SÚKL: Seznam lékáren (list of pharmacies, open data catalogue)
- SÚKL: LEKARNYAKTUALNI.zip (list, working hours, types)
- NKOD: Databáze lékáren (pharmacy database, SÚKL)
- ČÚZK: RÚIAN (address points, as of 2026-09), processed by czechdatasets.com
- ČSÚ: Registr ekonomických subjektů (RES, as of 2026-10-31): legal form and name of the operator
- ÚZIS ČR: NRPZS (as of 2026-11): auxiliary address matching
- Processed by
- czechdatasets.com. The data is modified and is not an official output of the authority; the required attribution is in LICENCE.txt.
Joins with
Datasets share RÚIAN codes and IČO, so one JOIN connects them.


Healthcare facilities (NRPZS)
Places of care from the national register of healthcare providers (NRPZS): doctors’ practices, hospitals, pharmacies. Specialties, forms and types of care, verified address and GPS.


Medicinal products (SÚKL)
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.


RÚIAN with history
Complete RÚIAN data: Czech parcels, buildings, addresses, streets and territorial units for the whole country. The current state and every version since August 2015, month by month.


Companies and organisations (RES)
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.
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.