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 International 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.yaml to inspect schema and resources
- 2. Download data resources listed in datapackage.yaml
- 3. Read README.md for full context
Data Files
postal-codes-sk-sample
| Field | Type | Description | Constraints | Title |
|---|---|---|---|---|
| country_code | string | ISO 3166-1 alpha-2 -- always SK | Country Code | |
| postal_code | string | Slovak postal code (PSC, 5 digits with a space, NNN NN) | { "pattern": "^\\d{3} \\d{2}$" } | Postal Code |
| place_name | string | Locality/place name | Place Name | |
| admin_name1 | string | Kraj (region) -- 8/8 covered | Administrative Name 1 | |
| admin_code1 | string | ISO 3166-2:SK code | Administrative Code 1 | |
| admin_name2 | string | Okres (district) -- 79 distinct values | Administrative Name 2 | |
| admin_code2 | string | GeoNames' own internal district code -- not an official ISO code | Administrative Code 2 | |
| admin_name3 | string | Not populated -- no third admin tier in this source | Administrative Name 3 | |
| admin_code3 | string | Not populated | Administrative Code 3 | |
| latitude | number | GeoNames latitude (WGS84) | Latitude | |
| longitude | number | GeoNames longitude (WGS84) | Longitude | |
| accuracy | string | GeoNames accuracy of latitude/longitude. GeoNames documents 1=estimated, 4=geonameid, 6=centroid of addresses or shape; other values (e.g. 3) occur upstream without documentation. Empty where GeoNames gives none. | Accuracy | |
| alternative_city_name | string | Not populated in this release | Alternative City Name |
Download
Download sample CSVAbout
- Last updated
- 6 October 2026
- Total rows
- 100
- Format
- CSV
- File size
- 8.94 kB
About this dataset
Slovakia (SK): migration notes
Internal record of the P5 migration from the old scripts to the producer: the discrepancies found, their causes, and who decided what. This is a dated record, so the numbers are as of the migration and not kept current. It is not shipped in the zip.
- Issue: pc-28e.7.52 (closed 2026-10-02)
- Commit:
a33991f(worktree commit4ed2b72, same content), landed in batch 3 - Parity verdict:
explained(row_orderonly); signed off under the standing rule - Producer:
custom, refresh disabled
Sources
| Input | URL | Notes |
|---|---|---|
| GeoNames postal export | https://download.geonames.org/export/zip/SK.zip | The only input. The old builder read a local copy (sources/postal_raw/SK.txt) |
Parity against the live zip (2026-10-02)
Rows: 5,233 live and 5,233 fresh, none only on one side. 0 changed cells. The only class is row_order: the same rows, reordered within postal codes (e.g. at 974 01, live starts Riečka, Môlča, Sebedín-Bečov; fresh starts Banská Bystrica, Špania Dolina, Čerín - Čačín). The live CSV is CRLF, the fresh one LF (checked 2026-10-05 against the cached live zip; the agent didn't report it).
The informational sample check against https://postal.datahub.io/sk/sk.csv came back unexplained. It is outside the gate and was not traced.
Decisions
| Decision | By | Basis |
|---|---|---|
Accept the row_order verdict and land | Standing rule (row_order/CRLF-only, user, 2026-10-02) | Equal rows, 0 changed cells |
custom producer rather than the shared geonames one | Agent, per the brief | The old builder applies one fix (the SK- prefix), so it isn't a pure wrapper |
No exact row-count check (the old EXPECTED_ROWS = 5233 dropped) | Orchestrator instruction | Brief: structural checks only |
| Remove row, distinct-code and collision counts from README and description; keep 8 kraje, 79 okresy | Orchestrator instruction (the user's README counts rule) | "0 collisions" became "the producer checks it is unique" |
Standard GeoNames accuracy description | Orchestrator instruction | Batch-2 wording that admits undocumented values |
Replace the licence_status.decision sentence with "CC BY 4.0, cleared for sale" | Agent | The orchestrator accepted the wording for now and left one licence wording across datasets to pc-hfz (session 2479b1c9-…) |
Transforms carried over
From build_postal_codes_product.py:
admin_code1=SK-+ GeoNames' kraj code. GeoNames' codes (BC/BL/KI/NI/PV/TA/TC/ZI) already equal ISO 3166-2:SK (checked against Wikipedia, 2026-09-03).- Everything else is verbatim;
admin_name3/admin_code3andalternative_city_nameare empty. - The old asserts are now
ProducerErrors: 12-column SK rows, known kraj codes, all 8 kraje present, unique (postal_code, place_name).
Open questions
- Licence wording ("cleared for sale") is to be settled across datasets in pc-hfz.
ATTRIBUTION.txtstill says "5,233 rows"; it belongs to the pc-hfz sweep.
Provenance
Reconstructed 2026-10-05 from the agent transcript 2479b1c9-c4dd-47e5-be82-34ccf8d49a80/subagents/agent-a0a14195c128fb323.jsonl, the orchestrator session 2479b1c9-… (also checked 068ca403-… and 803a95aa-…: no sk decisions), the commit message, the bd close reason and docs/parity/p5.md.