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
- custom:open-government-licence-oman 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-om-sample
| Field | Type | Description | Constraints | Title |
|---|---|---|---|---|
| country_code | string | ISO 3166-1 alpha-2 code for the country. | { "pattern": "^OM$", "required": true } | Country Code |
| postal_code | string | Postal code for the location. | { "pattern": "^\\d{3}$", "required": true } | Postal Code |
| place_name | string | Name of the city, town, or place. | Place Name | |
| admin_name1 | string | Governorate (Muhafazah) — ISO 3166-2:OM alpha code, OM- prefix stripped | Administrative Name 1 | |
| admin_code1 | string | Code for the primary administrative division. | Administrative Code 1 | |
| admin_name2 | string | Wilayat (province) — 63 units | Administrative Name 2 | |
| admin_code2 | string | Code for the secondary administrative division. | Administrative Code 2 | |
| admin_name3 | string | Locality / post-office town served by the code | Administrative Name 3 | |
| admin_code3 | string | Code for the tertiary administrative division. | Administrative Code 3 | |
| latitude | number | Latitude coordinate of the place. | Latitude | |
| longitude | number | Longitude coordinate of the place. | Longitude | |
| accuracy | string | Accuracy level of the latitude and longitude coordinates. | Accuracy | |
| alternative_city_name | string | Alternative name(s) for the city or place. | Alternative City Name |
Download
Download sample CSVAbout
- Last updated
- 11 October 2026
- Total rows
- 100
- Format
- CSV
- File size
- 7.91 kB
About this dataset
Oman (OM): migration notes
Internal record of the P5 migration. This is a dated record (2026-10-11) and is not shipped in the zip.
- Issue: datopian/postal-codes#41 (pc-28e.7.41)
- Producer:
scripts/produce.py(+test_produce.py),pipeline: producer: custom, refresh disabled - Parity: unexplained: 7 of 218 rows (3.2%) have different coordinates, all traced to GeoNames having changed since the live build. Same 218 keys, 0 other changed cells
What the producer does and does not fetch
Oman has no open postal source (Oman Post 404s; GeoNames has no Oman postal file), so the producer is a port of the fedex-agents-prototype chain (countries/OMN: scrape_postal phase 2, rebuild_qa, FedEx→postal-codes conversion) with three curated inputs committed beside it and one fetched:
| Input | Where | Notes |
|---|---|---|
scripts/stations.csv | committed | The 220 post-office rows (3-digit PO-Box codes). Origin undocumented (inherited file, git HEAD Oman.csv of the prototype). Residual risk accepted by the owner 2026-08-27 |
scripts/wilayats.csv | committed | 63 wilayats / 11 governorates from the NCSI Statistical Year Book 2026 (Open Government Licence, attribution only). Transcribed from the PDF; not refreshed automatically |
scripts/wilayat_corrections.csv | committed | 44 rules, each with its own evidence. 3 rules match no row today; harmless |
GeoNames OM.zip | fetched | Coordinates (AREA) and Arabic names. CC BY 4.0 |
So the postal codes themselves do not refresh from anywhere; only the coordinates and Arabic names track GeoNames.
Verification
- Fed the prototype's saved July GeoNames snapshot, the producer logic returns the same 218 rows in the same order as the live om.csv (differs only in CSV quoting bytes, which
write_outputsnormalises). - Fed today's GeoNames dump: 7 rows differ, all in latitude/longitude (one also in the Arabic name).
| Postcode | Place | Live point | New point | Judgement |
|---|---|---|---|---|
| 414, 436, 441 | Masirah | 23.194, 57.212 | 20.651, 58.873 (331 km away) | New is right: Masirah is an island at about 20.6N 58.9E; the live point is on the mainland |
| 700, 716 | Al Duqm | 17.007, 54.126 | 19.662, 57.704 (479 km) | New is right: Duqm is at about 19.7N 57.7E; the live point is in Dhofar |
| 146 | Al Ghubra | 23.274, 57.700 | 23.589, 58.396 (79 km) | New is right: Ghubrah is in Muscat |
| 713 | Al Kahal | 17.089, 54.568 | 24.450, 55.910 (830 km) | Neither is verified. Both are fuzzy matches (the live one to "Arkāḩāl", the new one to "Kaḩal"); the new point is near the UAE border, far from Al Wusta. Not safe to publish as is |
Six of the seven changes fix real errors in the live file. The seventh swaps one doubtful point for another.
Not ready for R2
The 1% bound agreed for this batch is exceeded (3.2%), and 713 is doubtful. Options for the owner:
- Accept the 6 corrections and blank the 713 coordinate (a rule "no fuzzy coordinate match is accepted below an exact one", or a one-row exception).
- Keep live as is and park this producer.
Decisions
| Decision | By | Basis |
|---|---|---|
| Build a producer despite the 2026-10-03 "no producer without a builder" rule | User, 2026-10-11 | The builder chain exists in fedex-agents-prototype; ported rather than invented |
| Commit stations.csv despite the unknown origin | Carried over | licence_status residual-risk acceptance 2026-08-27 |
| FedEx "00000" backfill rows not produced | Agent | The postal-codes product is a list of postal codes; same as the live file |
Other records, unchanged
- README.md and ATTRIBUTION.txt already credit NCSI (Open Government Licence) and GeoNames (CC BY 4.0) and disclose the unverified postal-code origin. Attribution is mandatory in this product, so nothing is stripped here (unlike the FedEx delivery packager, which removes it).
- Licence channel for the decision above is
postal-codes-r2; it does not cover a FedEx delivery.