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 Luxembourg, LU
| 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
- 2 September 2026
- Total rows
- ...
- Format
- CSV
- File size
- 340 kB
About this dataset
Luxembourg (LU) — internal licensing notes
Source research, 2026-09-02 — sellability + reproducibility audit
Clean GO. GeoNames' postal export carries both admin tiers Luxembourg has (canton, commune) — no gap to fill, no second source needed. Same shape as AT's audit.
The source — GeoNames LU
https://download.geonames.org/export/zip/LU.zip # 4,519 rows
Licence CC-BY-4.0, verified against export/zip/readme.txt on
2026-09-02 — Luxembourg 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— Canton, 12/12 covered (Capellen…Wiltz), GeoNames' own 2-letter code (CA…WI).admin_name2— Commune, 105 distinct values,admin_code2is a per-canton sequence number (e.g. "01" repeats across many different cantons) — not a globally unique commune code, so it cannot be used alone as part of a primary key.admin_name3/admin_code3— always empty. Luxembourg's postal source has no third admin tier at all (unlike AT, which has Gemeinde as admin3) — confirmed empty on all 4,519 rows, not a partial-coverage gap.- 1 (postal_code, place_name) pair collides: "Blumenthal" at
L-7639is listed twice — once under Bech/Echternach canton, once under Junglinster/Grevenmacher canton — a real border locality straddling a commune/canton boundary, same pattern as AT's Weissenbach. Real primary key is (postal_code, place_name, admin_name2), verified unique across all 4,519 rows.
ISO 3166-2:LU derivation verified 2026-09-02 against Wikipedia's
ISO_3166-2:LU page: GeoNames' own canton codes (CA, CL, DI, EC,
ES, GR, LU, ME, RD, RM, VD, WI) map 1:1, letter-for-letter,
onto the ISO codes (just prepend LU-) — even simpler than AT's numeric
crosswalk, no ambiguity.
licence_status
{
"channel": "postal-codes-r2",
"source_url": "https://download.geonames.org/export/zip/LU.zip",
"licence_id": "CC-BY-4.0",
"collected_at": "2026-09-02",
"decision": "compatible",
"decided_by": "claude-session-2026-09-02",
"decided_at": "2026-09-02"
}
Proposed tier
B ($49). Single official-quality source (GeoNames) normalised in place — real work (ISO code derivation, admin-tier cleanup) but no second authoritative provider consolidated onto it. Same shape as AT/IT/PH.
What was already live before this rebuild
The prior lu/lu.csv on R2 (381,661 bytes, dated 2026-07-30) was NOT the
"100-row sample, contact sales" placeholder the old datapackage.yml/
README.md claimed — it was the full 4,519-row GeoNames extract, just with
the standard legacy corruption: literal "nan" strings in every row's
admin_name3 (round-tripped through pandas from an empty upstream field),
and float-formatted accuracy ("4.0"/"6.0" instead of "4"/"6"). No
.licensing-notes.md, no licence_status, no ATTRIBUTION.txt existed
before this pass — LU had never been through this project's proper rebuild.
Verdict
Build it. No licensing obstacle, no coverage gap.
Build — 2026-09-02 (local only, not published)
Built via datasets/lu/scripts/build_postal_codes_product.py.
| value | |
|---|---|
| Final rows | 4,519 |
| Cantons covered | 12/12 |
| Communes | 105 |
| Distinct postal codes | 4,330 |
| Rows with empty admin2 | 0 |
| Rows with empty admin3 | 4,519 (no third tier exists in the source at all) |
Frictionless validation: valid: True. Zero literal "nan" strings, zero
float-formatted accuracy values, zero duplicates on the real primary key
(postal_code, place_name, admin_name2).
Status: built and validated locally only. Nothing published to R2,
nothing committed to git. datasets/lu/README.md and datapackage.yml
updated in place (tier B, premium_source_key: lu/lu.zip, real
sources/licenses/licence_status, replacing the stale "100-row sample"
placeholder text).