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-co-sample
| Field | Type | Description | Constraints | Title |
|---|---|---|---|---|
| country_code | string | ISO 3166-1 alpha-2 -- always CO | Country Code | |
| postal_code | string | Colombian postal code (6 digits) | { "pattern": "^\\d{6}$" } | Postal Code |
| place_name | string | Locality / municipio name | Place Name | |
| admin_name1 | string | Department -- all 33 covered | Administrative Name 1 | |
| admin_code1 | string | ISO 3166-2:CO department code | Administrative Code 1 | |
| admin_name2 | string | Municipio name | Administrative Name 2 | |
| admin_code2 | string | Official DIVIPOLA municipality code (5 digits) -- passed through from the source unchanged, already correct | 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
- 2 October 2026
- Total rows
- 100
- Format
- CSV
- File size
- 7.67 kB
About this dataset
Colombia (CO): 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.13 (closed 2026-10-02)
- Commit:
928111e(worktree commit97995da, same content), landed in batch 1 - Parity verdict:
format-only(gate: pass, no sign-off needed) - Producer:
custom, refresh disabled
Sources
| Input | URL | Notes |
|---|---|---|
| GeoNames postal export | https://download.geonames.org/export/zip/CO.zip | The only input, as in the old builder. GeoNames' CO layer derives from 4-72/MinTIC's official file (CC BY-SA 4.0); the GeoNames re-export is CC BY 4.0 |
Parity against the live zip (2026-10-02)
Rows: 3,681 live and 3,681 fresh, none only on one side. 0 changed cells, no diff classes. The bytes differ only in line endings: the old builder's csv.DictWriter wrote CRLF, the producer writes LF.
Decisions
| Decision | By | Basis |
|---|---|---|
| Land without sign-off | Parity gate (format-only passes) | Noted in the batch 1 sign-off section of docs/parity/p5.md |
| Refuse a literal "nan" in the raw export instead of rewriting it | Agent | The old file's "nan" came from the old R2 enrichment, not from GeoNames |
| Remove "3,681 postal codes", "3,681 rows" and "3,681 distinct postal codes" from README and descriptor; "0 collisions" → "verified unique" | Orchestrator instruction (the README counts rule, user 2026-10-02) | Kept 33 departments and 1,122 municipios |
Replace the README's licence_status.decision sentence with "Only the GeoNames-sourced data is shipped here" | Orchestrator (batch 1 doc fixes b7fb93b), after the user said "Fix the small doc problems you've noticed" | The agent flagged that the descriptor has no licence_status |
Leave the row counts in ATTRIBUTION.txt for now | User (session 2479b1c9-…, 2026-10-02: "file a bead to fix it later") | Filed as pc-3d2, folded into pc-hfz |
Transforms carried over
Folded from build_postal_codes_product.py (2026-09-16 audit):
admin_code1→ ISO 3166-2:CO by a name crosswalk of all 33 departments, incl. Bogotá D.C. (Wikipedia, 2026-09-16). GeoNames' value is a bare ordinal.admin_code2passed through as the 5-digit DIVIPOLA code. The check that each DIVIPOLA two-digit prefix maps to exactly one ISO department is now aProducerError.admin_name3/admin_code3andalternative_city_nameare empty.- Structural checks as
ProducerErrors: 12 columns with country CO, 6-digit postal code, unique postal code (the primary key), 5-digitadmin_code2, no unmapped department, every department present. No exact row-count check.
Open questions
- Resolved (user, 2026-10-05, pc-28e.7.59): the 4-72 file is not used; share-alike conflicts with selling the dataset. The current source stays.
ATTRIBUTION.txtstill says "3,681 rows";.licensing-notes.mdhas historical counts. Both are for pc-3d2 / pc-hfz.
Provenance
Reconstructed 2026-10-05 from the agent transcript 2479b1c9-c4dd-47e5-be82-34ccf8d49a80/subagents/agent-acebe2dcb1ed694ca.jsonl, the orchestrator session 2479b1c9-…, the commit messages (928111e, b7fb93b, 5311ad3), the bd close reason and docs/parity/p5.md.