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-md-sample
| Field | Type | Description | Constraints | Title |
|---|---|---|---|---|
| country_code | string | ISO 3166-1 alpha-2 -- always MD | Country Code | |
| postal_code | string | Moldovan postal code (MD-NNNN) | { "pattern": "^MD-\\d{4}$" } | Postal Code |
| place_name | string | Locality/place name | Place Name | |
| admin_name1 | string | District/municipality/territorial unit -- 35/37 ISO units represented (Basarabeasca has no rows in this source; the locality "Lazo", whose unit could not be resolved, ships with admin_code1 blank) | Administrative Name 1 | |
| admin_code1 | string | ISO 3166-2:MD code | Administrative Code 1 | |
| admin_name2 | string | Not populated -- no second admin tier in this source | Administrative Name 2 | |
| admin_code2 | string | Not populated | Administrative Code 2 | |
| admin_name3 | string | Not populated | 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
- 6.05 kB
About this dataset
Moldova (MD): 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.34 (closed 2026-10-02)
- Commit:
a7ad9eb(worktree commit011fe18), landed in batch 2 - Parity verdict:
explained(row_orderonly); signed off by the user - Producer:
custom, refresh disabled
Sources
| Input | URL | Notes |
|---|---|---|
| GeoNames postal export | https://download.geonames.org/export/zip/MD.zip | The only input; same URL as the old builder |
Parity against the live zip (2026-10-02)
Rows: 1,753 live and 1,753 fresh, none only on one side, 0 changed cells. Line endings went from CRLF to LF.
Cause: GeoNames reordered its export (upstream drift). Sorted, the two files are identical, and the postal-code sequence is the same. 539 row positions differ across 234 postal codes, always within one postal code.
| Postal code | Live order | Fresh order |
|---|---|---|
| MD-6537 | Balmaz, Mirnoe | Mirnoe, Balmaz |
| MD-6511 | Botnaresti one row higher | Botnaresti one row lower |
The informational 100-row sample check reported unexplained against postal.datahub.io/md/md.csv. It doesn't feed the gate, and the cause was not traced.
Decisions
| Decision | By | Basis |
|---|---|---|
Accept row_order | User, 2026-10-02 (session 2479b1c9-…, "agree to all" to the batch-2 sign-off question) | Recorded in the sign-off section of docs/parity/p5.md |
| Map every "Tr." label, including "Bender Tr.", to MD-SN rather than Bender's own de jure code MD-BD | Agent: a faithful port | The old builder did this; disclosed in ATTRIBUTION.txt |
Keep "Lazo" with a blank admin_code1 | Agent: a faithful port | Its unit can't be resolved; the old builder left it blank rather than guess |
Reword the accuracy description to admit undocumented values | Orchestrator (commit 5311ad3, batch 2); reported to the user with the batch-2 results | The agent found accuracy 3 on 69 rows (live and fresh). The standard text said "GeoNames documents no other values" |
| Remove row and distinct-code counts from README and description; keep "35/37 units" | Orchestrator instruction (README counts rule, plan §4 P5) | Counts drift; admin-unit counts are fixed |
Transforms carried over
From build_postal_codes_product.py (now removed, with publish_r2.py):
admin_name1labels → ISO 3166-2:MDadmin_code1plus a clean display name, via a name crosswalk. GeoNames' ownadmin_code1is dropped.- Typo and variant labels merged: Cantrmir → Cantemir, Canul → Cahul, Uhnheni → Ungheni, Mun.Balti → Balti, Mun.Chisinau → Chisinau, Comrat → Gagauzia, the three "Criuleni-Dub." spellings and "Dubasari Cr." → Dubasari (MD-DU).
- Every "Tr." label → MD-SN "Stinga Nistrului (Transnistria)".
alternative_city_nameis empty.- The old asserts are now
ProducerErrors: unknownadmin_name1label, literal "nan", float-formatted accuracy, duplicate (postal_code, place_name). Added: postal codes matchMD-NNNN, and every crosswalk unit has rows. Basarabeasca has no rows in GeoNames and isn't in the crosswalk.
Open questions
- Resolved (2026-10-05, pc-28e.7.60): README now says "GeoNames accuracy code" with no code list. Was:
README.mdstill lists the accuracy codes as "(1/4/6)", though the data has 3s. Only the descriptor was reworded. ATTRIBUTION.txt("1,753 rows") and.licensing-notes.mdstill contain counts; they are left for the end-of-epic sweep (pc-hfz).
Provenance
Reconstructed 2026-10-05 from the agent transcript 2479b1c9-c4dd-47e5-be82-34ccf8d49a80/subagents/agent-adde1f3784d365b45.jsonl, the orchestrator session 2479b1c9-…, the commit messages (a7ad9eb, 5311ad3), docs/parity/p5.md and the bd close reason.