Postal Codes Dataset for Albania, AL

426
Updated:
Files:1
Size:40.3 kB
Rows:494
Formats:csv
License:CC-BY-4.0

Postal Codes Dataset for Albania, AL 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-al/
https://datahub.io/logistics/postal-codes-al/_r/-/.licensing-notes.md
https://datahub.io/logistics/postal-codes-al/_r/-/.migration-notes.md
https://datahub.io/logistics/postal-codes-al/_r/-/ATTRIBUTION.txt
https://datahub.io/logistics/postal-codes-al/_r/-/README.md
https://datahub.io/logistics/postal-codes-al/_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-al/_r/-/datapackage.yaml
README.md— documentation
https://datahub.io/logistics/postal-codes-al/_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-al-sample


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

CandidateVerdictWhy
Eurostat GISCO LAU❌ not sellableDerived 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 sellableNon-commercial licence.
HDX — Albania Subnational Administrative Boundaries (cod-ab-alb)❌ licence launderingPackage 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 internallyNationwide 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 unknownNo 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 retrievableAngular 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 retrievableOfficial 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:

  1. admin_name3 is the literal string nan on every row. GeoNames leaves it empty; a pandas round-trip wrote the float NaN out as text.
  2. admin_code2 is a GeoNames internal geonameId, not an official code. e.g. Bashkia Berat → 10944368. Confirmed against download.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.
  3. admin_code1 is the FIPS-style scheme (40, 41, 43, …), not ISO 3166-2:AL (AL-01…AL-12). Derive the ISO codes.
  4. Integer accuracy written as float (4 → 4.0); 2 rows blank.
  5. 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_code1 derived via a verified ISO 3166-2:AL crosswalk (Wikipedia, checked 2026-08-28), keyed to the exact 12 admin_name1 strings 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_name re-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.