Postal Codes Dataset for Belgium, BE

400
Updated:
Files:1
Size:230 kB
Rows:2,781
Formats:csv
License:CC-BY-4.0

Postal Codes Dataset for Belgium, BE including name of the city, town, or place, various administrative divisions and alternative city names.

Part of a Data Solution

  • Postal Codes Solution

    Every worldwide postal-code dataset in one bundle — the ultimate global reference for precise postal codes.

    Explore →

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
20% off
$49.90$39.92
one-time payment

API Access

Access dataset files directly from scripts, code, or AI agents.

Browse dataset files
Dataset Files

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.

/logistics/postal-codes-be/
https://datahub.io/logistics/postal-codes-be/_r/-/.licensing-notes.md
https://datahub.io/logistics/postal-codes-be/_r/-/.migration-notes.md
https://datahub.io/logistics/postal-codes-be/_r/-/ATTRIBUTION.txt
https://datahub.io/logistics/postal-codes-be/_r/-/README.md
https://datahub.io/logistics/postal-codes-be/_r/-/datapackage.yaml
Key Files

Start with these files — they give you everything you need to understand and access the dataset.

datapackage.yaml— metadata & schema
https://datahub.io/logistics/postal-codes-be/_r/-/datapackage.yaml
README.md— documentation
https://datahub.io/logistics/postal-codes-be/_r/-/README.md
Typical Usage
  1. 1. Fetch datapackage.yaml to inspect schema and resources
  2. 2. Download data resources listed in datapackage.yaml
  3. 3. Read README.md for full context

Data Files

postal-codes-be-sample

About

Last updated
6 October 2026
Total rows
100
Format
CSV
File size
9.24 kB

About this dataset

Belgium (BE) — internal licensing notes

Source research, 2026-09-03 — sellability + reproducibility audit

Clean GO. GeoNames' postal export carries all three official admin tiers Belgium has above commune level (Region, Province, Arrondissement) – no gap to fill, no second source needed. Even cleaner than AT/LU: 0 (postal_code, place_name) collisions, and admin_code3 (arrondissement) is globally unique across all 43 values (no cross-province code reuse to disambiguate).

The source — GeoNames BE

https://download.geonames.org/export/zip/BE.zip      # 2,781 rows

Licence CC-BY-4.0, verified against export/zip/readme.txt on 2026-09-03 — Belgium 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 — Region, 3/3 covered (Bruxelles-Capitale, Vlaanderen, Wallonie), codes BRU/VLG/WAL.
  • admin_name2/admin_code2 — Province, 11 distinct values, codes VAN/VBR/WBR/BRU/VWV/VOV/WHT/VLI/WLG/WLX/WNA. Brussels' province-tier code duplicates its region code (BRU) – Brussels-Capital Region has no province subdivision, treated as province-equivalent.
  • admin_name3/admin_code3 — Arrondissement, 43 distinct values, code globally unique (no province shares a code with another).
  • place_name — commune/locality (e.g. Bruxelles, Laeken, Schaerbeek — Brussels' 19 communes each get their own row under the same region/province/arrondissement).

ISO 3166-2:BE derivation verified 2026-09-03 against Wikipedia's ISO_3166-2:BE page: GeoNames' own region AND province codes both map 1:1, letter-for-letter, onto the ISO codes (just prepend BE-) — same mechanism as LU's cantons, applied at two tiers here instead of one.

Cross-check against the independently-built FedEx-schema BEL dataset

fedex-agents-prototype/countries/BEL/data/Belgium.csv (1,189 rows, 1,185 distinct postal codes) was built independently from a different, official source: bpost's own postal-codes-belgium dataset via the Wallonia open data portal (ODWB), backfilled from a Tier-2 Wallonia source because Tier 1 alone only covered ~44% of expected codes. Its province code set (BRU, VAN, VBR, VLI, VOV, VWV, WBR, WHT, WLG, WLX, WNA) is identical to GeoNames' — an independent confirmation the province crosswalk here is correct.

Coverage diff, computed directly: GeoNames (this build) has 1,146 distinct postal codes; the FedEx/bpost build has 1,185. Set difference: 40 codes exist in the bpost-sourced build but not in GeoNames (mostly in the 1000–1199 Brussels range — EU institutions, NATO, government bodies, and other single-address special-purpose codes bpost's research explicitly flagged as special_code). Only 1 code exists in GeoNames but not in the FedEx build.

Not fixed in this pass. The bpost/ODWB source's own licence was not verified in this audit — importing 40 rows from it without confirming that would repeat the "no licence check" failure this gate exists to prevent. Disclosed here as a known, quantified gap rather than silently shipped or silently ignored. If reclaiming those 40 institutional codes is wanted later, verify the ODWB dataset's licence first, then backfill by postal_code only (do not touch the other 2,781 GeoNames-sourced rows).

licence_status

{
  "channel": "postal-codes-r2",
  "source_url": "https://download.geonames.org/export/zip/BE.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 official-quality source (GeoNames) normalised in place, two ISO-code derivations (region + province) – real work but no second authoritative provider consolidated onto it. Same shape as AT/LU/ IT/PH. Not tier A/C: not a genuinely hard multi-source consolidation, and not a trivial pass-through either (the region/province ISO derivation and the coverage cross-check are real work).

What was already live before this rebuild

The prior be/be.csv on R2 (233,732 bytes, dated 2026-07-30) was already structurally clean, unmodified GeoNames data — 0 "nan" strings, correct regions, 0 duplicates. It was missing the packaging layer entirely: no datapackage.json, no README.md, no ATTRIBUTION.txt, no licence_status, no zip. This rebuild adds that packaging and the ISO code derivations; it does not fix data corruption the way the AT/IE/LU rebuilds did, because there wasn't any.

Verdict

Build it. No licensing obstacle, no coverage gap that isn't already disclosed and quantified above.

Build — 2026-09-03 (local only, not published)

Built via datasets/be/scripts/build_postal_codes_product.py.

value
Final rows2,781
Regions covered3/3
Provinces11
Arrondissements43
Distinct communes/localities2,726
Distinct postal codes1,146
(postal_code, place_name) collisions0

Frictionless validation: valid: True. Zero literal "nan" strings, zero float-formatted accuracy values, zero duplicates on the primary key (postal_code, place_name).

Status: built and validated locally only. Nothing published to R2, nothing committed to git. datasets/be/README.md and datapackage.yml updated in place (tier B, premium_source_key: be/be.zip, real sources/licenses/licence_status).