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 Albania, AL
| 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
- 28 August 2026
- Total rows
- ...
- Format
- CSV
- File size
- 40.8 kB
- Source
- GeoNames
About this dataset
Albania (AL) — internal licensing notes
Source research, 2026-08-27 — sellability + reproducibility audit
GeoNames is the only source that is both legally sellable and reproducible. Every alternative was tested on 2026-08-27 and each fails on resale, on retrievability, or both. Findings below so this is not re-litigated.
The only usable source — GeoNames AL
https://download.geonames.org/export/zip/AL.zip # 8.9 KB, 494 rows
Licence CC-BY-4.0, verified against export/zip/readme.txt on
2026-08-27 — Albania carries no per-country caveat (the readme flags only
GB, CL, CN, IE, MT, AR, BR).
Ruled out — do not re-attempt without new evidence
| Candidate | Verdict | Why |
|---|---|---|
| Eurostat GISCO LAU | ❌ not sellable | Derived from EuroGeographics. lau-2019-metadata.pdf directs to "License conditions for EuroGeographics Administrative and Topographic spatial datasets" and states access requires a signed agreement form obtained from Eurostat/GISCO. Commercial reuse is not granted. |
| GADM | ❌ not sellable | Non-commercial licence. |
HDX — Albania Subnational Administrative Boundaries (cod-ab-alb) | ❌ licence laundering | Package is labelled cc-by-igo, which reads as reusable. But the dataset's own methodology field states: "Administrative level 3 boundaries were acquired from www.gadm.org" — and GADM is non-commercial. A package-level licence asserted by a redistributor does not cure a non-commercial component. Last modified 2019-12-21; also carries known geometry defects in its own caveats field. |
| OpenStreetMap / Overpass / Nominatim | ❌ blocked internally | Nationwide admin_level=N extraction fails prongs 1, 3 and 4 of the ODbL share-alike gate in CLAUDE.md, and Nominatim's usage policy independently forbids systematic queries and reselling of geocoding results. |
Posta Shqiptare (postashqiptare.al/c/45/kodi-postar) | ❌ not retrievable, licence unknown | No bulk download. 14 district links and a lookup modal only — no CSV/XLS/PDF, and no terms-of-use or copyright statement anywhere on the page. Scraping it would yield decision: "unresolved", which per CLAUDE.md is a hard block on shipping. |
| opendata.gov.al (Open Data Albania) | ❌ not retrievable | Angular SPA. /api/dataset/list returns {"isSuccessful":false,"errorMessage":"DcatDataset not found."}; /api/datasets, /api/v1/datasets and /assets/config.json all 404. Nothing machine-retrievable found. |
ASIG geoportal (geoportal.asig.gov.al) | ❌ not retrievable | Official geospatial authority and the right home for this data in principle (boundaries per DCM no. 360, 29.05.2019), but viewer-only. /en/data redirect-loops (>10 hops) and asig.gov.al/en/open-data/ returns 404. No open-data download path found. |
If ASIG ever publishes a licensed bulk download of njësitë administrative, that is the upgrade path — it is the only remaining candidate that could be both official and sellable.
Defects in the currently-published file
al/al.csv on R2 is a GeoNames re-export (row count matches AL.zip
exactly: 494) round-tripped through pandas and corrupted. All of these are
fixable from GeoNames alone — no new source required:
admin_name3is the literal stringnanon every row. GeoNames leaves it empty; a pandas round-trip wrote the float NaN out as text.admin_code2is a GeoNames internal geonameId, not an official code. e.g. Bashkia Berat →10944368. Confirmed againstdownload.geonames.org/export/dump/admin2Codes.txt: all 61 bashkia are keyed by geonameId (AL.40.10944368), so this is GeoNames' own identifier and means nothing to a buyer. Either derive a real code or leave the column empty — do not ship an internal id as an admin code.admin_code1is the FIPS-style scheme (40,41,43, …), not ISO 3166-2:AL (AL-01…AL-12). Derive the ISO codes.- Integer
accuracywritten as float (4→4.0); 2 rows blank. - 494 rows but only 489 distinct postal codes — 5 duplicate codes; check against the primary key rule before publishing.
Reference structure for validating a rebuild: Albania has 12 counties
(qark), 61 municipalities (bashki), 373–374 administrative units (njësi
administrative). GeoNames covers tiers 1 and 2; tier 3 is unavailable from
any sellable source (see the table above), so admin_name3 should ship
empty, not as nan and not backfilled from a non-commercial source.
Attribution is absent from the sold product. R2 carries only
al/al.csv — no README.md, datapackage.json, ATTRIBUTION.txt or
al.zip. The repo datapackage.yml lists sources: [{title: "Multiple sources"}] with no licenses[]. CC BY 4.0 attribution is a licence
condition — live breach on a paid product.
datapackage.yml also sets is_premium: true with no premium_tier and
no premium_source_key, and no zip exists in R2 for a key to point at.
At 494 rows against a 100-row public sample the premium value is thin —
worth deciding deliberately whether AL should be premium at all.
licence_status (proposed — needs human sign-off before shipping)
{
"channel": "postal-codes-r2",
"components": [
{
"field_group": "all fields",
"source_url": "https://download.geonames.org/export/zip/AL.zip",
"licence_id": "CC-BY-4.0",
"collected_at": "2026-08-27",
"decision": "compatible",
"decided_by": "claude-opus-5 (source research)",
"decided_at": "2026-08-27"
}
]
}
Proposed tier
B ($49). Single-source normalisation with nothing to reconcile. There is
no second authoritative source to consolidate, so this cannot reach A on the
criteria in docs/PRICING_TIERS.md — and it should not be priced as if it did.
Build — 2026-08-28 (local only, not published)
Built via datasets/al/scripts/build_postal_codes_product.py. 494 rows,
validated clean with Frictionless.
Correction to this document's own earlier coverage claim: the "Reference
structure" section above states Albania has 61 bashki and implies GeoNames
reaches them; it does not say GeoNames covers all 61, but the build's first
draft assumed exactly that and shipped it as "61/61 covered" in the
README/ATTRIBUTION text before the raw source was re-checked. GeoNames'
AL.zip only carries 31 of Albania's 61 bashki — verified directly by
listing distinct admin_name2 values in the raw file. This is a real
coverage gap in the source, disclosed in data/README.md and
data/ATTRIBUTION.txt, not something to gloss over as "all bashki."
Other build decisions, beyond what this file already documented:
admin_code1derived via a verified ISO 3166-2:AL crosswalk (Wikipedia, checked 2026-08-28), keyed to the exact 12admin_name1strings GeoNames uses — not assumed from FIPS-code ordering.- GeoNames' one inconsistent qark label ("Tirana", where the other 11 all read "Qarku i X") normalised to "Qarku i Tiranës" for consistency — disclosed as a correction, not silently changed.
alternative_city_namere-derived fresh from GeoNames' gazetteer dump (283/494 rows populated) — same join method used for TH/RO, so the live file's 215-row figure is not lost.- No duplicate (postal_code, place_name) pairs — confirmed directly; the "489 distinct postal codes" figure above is 5 codes shared across different place names, not a primary-key collision.
Status: built and validated locally only. Nothing published to R2, nothing committed to git.