Part of a Data Solution
- Explore →
Postal Codes Solution
Every worldwide postal-code dataset in one bundle — the ultimate global reference for precise postal codes.
Premium
You're viewing a free sample
Get the complete dataset — all rows and files — delivered instantly after checkout, with lifetime access to the latest version.
- Secure checkout via Stripe
- Instant download after payment
- Lifetime access to the latest version
- Creative Commons Attribution 4.0 license
API Access
Access dataset files directly from scripts, code, or AI agents.
Browse dataset files
API Access
Access dataset files directly from scripts, code, or AI agents.
Each file has a stable URL (r-link) that you can use directly in scripts, apps, or AI agents. These URLs are permanent and safe to hardcode.
Start with these files — they give you everything you need to understand and access the dataset.
- 1. Fetch datapackage.yml to inspect schema and resources
- 2. Download data resources listed in datapackage.yml
- 3. Read README.md for full context
Data Files
Postal Codes Data Resource for Czechia, CZ
| Field | Description | Title |
|---|---|---|
| country_code | ISO 3166-1 alpha-2 code for the country. | Country Code |
| postal_code | Postal code for the location. | Postal Code |
| place_name | Name of the city, town, or place. | Place Name |
| admin_name1 | Primary administrative division (e.g., state, region). | Administrative Name 1 |
| admin_code1 | Code for the primary administrative division. | Administrative Code 1 |
| admin_name2 | Secondary administrative division (e.g., county, district). | Administrative Name 2 |
| admin_code2 | Code for the secondary administrative division. | Administrative Code 2 |
| admin_name3 | Tertiary administrative division (e.g., municipality, borough). | Administrative Name 3 |
| admin_code3 | Code for the tertiary administrative division. | Administrative Code 3 |
| latitude | Latitude coordinate of the place. | Latitude |
| longitude | Longitude coordinate of the place. | Longitude |
| accuracy | Accuracy level of the latitude and longitude coordinates. | Accuracy |
| alternative_city_name | Alternative name(s) for the city or place. | Alternative City Name |
Download
Download sample CSVAbout
- Last updated
- 3 September 2026
- Total rows
- ...
- Format
- CSV
- File size
- 1.29 MB
About this dataset
Czechia (CZ) — internal licensing notes
Tier-1/2 official source found, 2026-09-03 — stronger than GeoNames, larger engineering lift
A genuinely official, CC-BY-4.0 source exists and is worth pursuing as
a future upgrade, but it is address-point granularity, not postal-code
granularity — a real rebuild, not a drop-in swap. ČÚZK (the Czech
Office for Surveying, Mapping and Cadastre — a government body, tier
1/2 in this project's Source Authority Hierarchy) publishes RÚIAN
(Register of Territorial Identification, Addresses and Real Estate) —
per-address-point CSV covering the whole country, via its Geoportal
(geoportal.cuzk.cz).
Confirmed fields: address-point code, municipality code and name, postal code (PSČ), building/orientation numbers, and coordinates in the S-JTSK system (would need reprojection to WGS84) — genuinely richer and more current than GeoNames, and government-official rather than a third-party gazetteer.
Licence: CC BY 4.0, same family already used throughout this catalogue — no new licence complexity.
Why not switched to immediately — confirmed scope, 2026-09-03: fetched
the actual file (vdp.cuzk.gov.cz/vymenny_format/csv/20260831_OB_ADR_csv.zip,
63 MB compressed, 354 MB uncompressed) to scope the real lift rather than
guess. It is 6,258 separate per-municipality CSVs (cp1250-encoded,
semicolon-delimited), one row per address point, with PSČ (postal code)
but no district/region columns at all — only a bare municipality code.
A real RÚIAN-based build needs: (1) parsing ~7-8M address-point rows
across 6,258 files, (2) aggregating to postal-code level (mean coordinate,
representative municipality), (3) a SEPARATE fetch of an official
municipality→district→region crosswalk (not in this file) to reconstruct
the kraj/okres hierarchy GeoNames already gives for free, and (4)
reprojecting coordinates from S-JTSK (EPSG:5514) to WGS84 — a real
transform, not a trivial swap. This is a multi-source GIS pipeline, not a
drop-in replacement, and materially larger than every other build in this
session's queue. Deferred, not because GeoNames is preferred by default,
but because the confirmed scope here is disproportionate relative to a
10-country backlog — flagged as a genuine future upgrade for whoever has
the time to build the aggregation + crosswalk + reprojection pipeline
properly, not something to rush.
GeoNames research, 2026-09-03 (current fallback — clean and small,
just needs the crosswalk fix below)
Clean GO, with one dangerous false-friend crosswalk hazard flagged.
GeoNames' postal export is clean and complete at 2 tiers, but its own
admin_code1 numbering happens to also be 2-digit numbers that look like
ISO 3166-2:CZ codes and are NOT — a naive prepend would silently ship
wrong-but-plausible codes on every row.
The source — GeoNames CZ
https://download.geonames.org/export/zip/CZ.zip # 15,507 rows
Licence CC-BY-4.0, verified against export/zip/readme.txt on
2026-09-03 — Czechia carries no per-country caveat (the readme's only
restricted countries are GB, CL, CN, IE, MT, AR, BR).
Verified directly against the raw source file:
admin_name1/admin_code1— Kraj (region), 14/14 covered (13 regions + Prague). GeoNames' own codes (52,78–90) are internal and numerically overlap ISO 3166-2:CZ's own numbering space without matching it — e.g. GeoNames52= Hlavní město Praha, but the realCZ-52= Královéhradecký kraj, a completely different region. Verified against Wikipedia's ISO_3166-2:CZ page 2026-09-03. This is a more dangerous hazard than JP/IN's numeric mismatch, because both the wrong and right codes are valid-looking 2-digit numbers in the same range — a rebuild that doesn't check this by name would ship confidently wrong data. Requires a full name-based crosswalk (14 rows).admin_name2— Okres (district), 77 distinct values: the real 76 okresy plus Prague itself, which stands outside the okres system as a district-equivalent statutory city. Not a data error, a real structural nuance worth stating plainly in the README.admin_name3— empty on all 15,507 rows. Czechia's postal source has no third admin tier, same shape as LU.- 0 exact duplicate rows, 0 (postal_code, place_name) collisions, 0
literal
"nan"strings, clean integer accuracy values (1/3/4) at the source. Primary key is simply (postal_code, place_name) — cleanest structure in this research batch.
licence_status (proposed — needs a build pass before shipping)
{
"channel": "postal-codes-r2",
"source_url": "https://download.geonames.org/export/zip/CZ.zip",
"licence_id": "CC-BY-4.0",
"collected_at": "2026-09-03",
"decision": "compatible",
"decided_by": "claude-session-2026-09-03",
"decided_at": "2026-09-03"
}
Proposed tier
B ($49). Single source, structurally the cleanest of this batch (0 collisions, 0 duplicates, 2 clean tiers), but the region-code false-friend crosswalk is real, disclosure-critical work — the kind of mistake that ships looking completely fine until someone checks the actual region names.
Build — 2026-09-03, GeoNames-only (RÚIAN path scoped and deferred, see above)
Built via datasets/cz/scripts/build_postal_codes_product.py.
| value | |
|---|---|
| Final rows | 15,507 |
| Kraje covered | 14/14 |
| Okresy | 77 (76 real + Prague as district-equivalent) |
| Distinct postal codes | 2,694 |
| (postal_code, place_name) collisions | 0 |
All 14 admin_code1 values verified as the real ISO 3166-2:CZ codes
(CZ-10…CZ-80), crosswalked by region NAME, not GeoNames' own
numbering. Frictionless validation: valid: True. Zero literal "nan"
strings, zero float-formatted accuracy, zero duplicates.
Status: built and validated locally only. Nothing published to R2,
nothing committed to git yet. Existing live cz.csv (15,507 rows, bare
CSV, no datapackage/README/zip) has the standard "nan" corruption seen
elsewhere in this catalogue (introduced downstream of GeoNames, not
present upstream).