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
- CC0 1.0 Universal (public domain) — LJPc-solutions postal codes and coordinates 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-nl-sample
| Field | Type | Description | Constraints | Title |
|---|---|---|---|---|
| country_code | string | ISO 3166-1 alpha-2 country code — always NL | { "pattern": "^NL$", "required": true } | Country Code |
| postal_code | string | Dutch postal code, format 'NNNNAA' (4 digits + 2 letters) | { "pattern": "^[0-9]{4}[A-Z]{2}$", "required": true } | Postal Code |
| place_name | string | Locality (woonplaats) served by the postal code | Place Name | |
| admin_name1 | string | Province (provincie) | Administrative Name 1 | |
| admin_code1 | string | ISO 3166-2:NL province code, prefix stripped (e.g. NH, ZH) | Administrative Code 1 | |
| admin_name2 | string | Municipality (gemeente) | Administrative Name 2 | |
| admin_code2 | string | Reserved — no municipality code in the source; always blank | Administrative Code 2 | |
| admin_name3 | string | Locality (woonplaats) — the third administrative tier | Administrative Name 3 | |
| admin_code3 | string | Reserved — always blank | Administrative Code 3 | |
| latitude | number | Latitude, decimal degrees (WGS84) | Latitude | |
| longitude | number | Longitude, decimal degrees (WGS84) | Longitude | |
| accuracy | string | Coordinate precision tier — BLOCK (postcode-block level) | Accuracy | |
| alternative_city_name | string | Not available for this dataset — always blank | Alternative City Name |
Download
Download sample CSVAbout
- Last updated
- 11 October 2026
- Total rows
- 100
- Format
- CSV
- File size
- 7.99 kB
About this dataset
Netherlands (NL) — internal licensing notes
Not mentioned in datahub-next#941 — no known licensing flag on this
country. Source: converted from a FedEx-schema delivery
(Netherlands_Delivery/Netherlands.csv, 467,630 rows) whose own base source
is CC0 1.0 (public domain, no attribution needed). Two rows backfilled from
the CBS woonplaatsen reference (CC-BY 4.0) would have dragged the whole file
into an attribution obligation — those two rows are exactly the two asserting
postalCode "00000" (no postal code), which don't belong in the
postal-codes product anyway. Dropping them is correct on product grounds
and keeps the published dataset cleanly CC0.
Session finding, 2026-08-19
Fixed nl/scripts/convert_from_fedex.py and siblings from hardcoded
other-repo paths to self-contained. Confirmed the FedEx source file is real
(45MB, not a stub) and re-ran the conversion against a fresh copy: 467,628
rows (2 dropped per above), byte-identical (MD5 match) to both the
pre-existing local copy and live R2. Also confirmed the stale
_meta/catalog.json entry for NL (which references a nonexistent
nl-full.csv and claims 4,334 rows — off by two orders of magnitude from
the real 467,628) is an index-only defect, not a data problem — this pipeline
and the live nl.csv are both fine, only the storefront catalogue index
needs a refresh.
No further licensing review — this was a code-reproducibility audit.
Upstream identified — 2026-10-09
The "upstream not identified" gap (pc-dky, 2026-10-06) is closed by tracing the
staged FedEx export that scripts/convert_from_fedex.py read
(datahub-sales-deliveries/Netherlands_Delivery/Netherlands.csv). That export is the
fedex-agents-prototype countries/NLD build:
- Postal codes and coordinates:
countries/NLD/scripts/scrape_postal.py, LJPc-solutions "Nederlandse adressen en postcodes" (Nederland.csv.zst), CC0 1.0. Address rows are deduplicated to postal code and locality, with coordinates rounded to 5 dp. - Province, municipality and locality names:
countries/NLD/scripts/scrape_admin.py, CBS OData table 86097NED "Woonplaatsen in Nederland 2025", CC BY 4.0. All 2,500 rows ofdata/admin.csvaresource=cbs_woonplaatsen_86097NED_2025. Wikipedia was a cross-check only and contributed no rows.combine_phase2.pycopies stateCode/stateName/county/cityName from the matched CBS row into the output.
So the earlier "CC0, no attribution required" was incomplete: CBS requires
attribution ("bronvermelding van het CBS verplicht"). README, ATTRIBUTION and the yaml
sources/licenses now credit both sources: CC0 (LJPc) and CC BY 4.0 (CBS). Both
allow commercial resale, so tier A is unaffected. Text-only fix; no data or source
change.