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.
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
Explore with AIpostal-codes-ao
| Field | Type | Description | Title |
|---|---|---|---|
| country_code | string | ISO 3166-1 alpha-2 code for the country. | Country Code |
| postal_code | string | Postal code for the location. | Postal Code |
| place_name | string | Name of the city, town, or place. | Place Name |
| admin_name1 | string | Primary administrative division (e.g., state, region). | Administrative Name 1 |
| admin_code1 | string | Code for the primary administrative division. | Administrative Code 1 |
| admin_name2 | string | Secondary administrative division (e.g., county, district). | Administrative Name 2 |
| admin_code2 | string | Code for the secondary administrative division. | Administrative Code 2 |
| admin_name3 | string | Tertiary administrative division (e.g., municipality, borough). | 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 CSVAbout
- Last updated
- 6 October 2026
- Total rows
- 326
- Format
- CSV
- File size
- 13.4 kB
About this dataset
Angola (AO) — licensing trace
Built 2026-08-27, following on from Guyana/Seychelles/DR Congo/Sierra
Leone. Angola was originally held back — the FedEx-side research (see
fedex-agents-prototype/countries/AGO/research.json) had flagged a human
decision as needed before any build, due to two open gaps: an unresolved
name for the 4th new province, and no source enumerating the new
326-municipality structure. Both were resolved this session by going back
to the primary source instead of Wikipedia/press — see below.
Product-shape exception
Same exception as GY/SC/CD/SL: this project's convention states the
postal-codes product is "a list of postal codes" and a no-code
placeholder "does not belong in it." Angola has none. Ships into the
standard ao/ prefix anyway, with postal_code genuinely empty on every
row, per the same standing instruction covering this whole batch.
How the two open research gaps were actually resolved
- Naming conflict for the 4th new province. Previously reported three different ways ("Moxico Leste" / "Cassai Zambeze" / an unrelated "Alto Zambeze"). Fetched the actual text of Lei n.º 14/24 — Chapter XIV is literally titled "Província do Moxico Leste". The other two names don't appear anywhere in the law; they were press/Wikipedia confusion.
- No source enumerating the 326 municipalities. Wikipedia's tables
were simply never updated after the 2024 reform. The law's own text
states each province's full municipality roster directly, in its
composition article ("A Província de X … compreende os Municípios de
A, de B, … e de Z."). Extracted all 21 provinces' rosters
programmatically — see
../scripts/build_postal_codes_product.py's docstring and the FedEx-sidecountries/AGO/scripts/scrape_admin.py. Total extracted: 326, matching the independently-reported press figure (RNA, O País, Isto É Notícia) exactly — strong evidence the extraction is complete, not silently dropping rows.
Licence — the cleanest case in this admin-only batch
Source: Lei n.º 14/24 itself (Angola's own law). Checked Angola's copyright statute, Lei n.º 15/14 (Lei dos Direitos de Autor e Conexos), Article 24.º ("Obras não protegidas"): explicitly excludes "as leis, decisões de órgãos administrativos e judiciais publicados ou não em Diário da República" (laws, and administrative/judicial decisions, published or not) from copyright protection.
This means Lei 14/24 carries no copyright claim at all in Angola — stronger than every other source in this admin-only batch:
- Seychelles/DR Congo (Wikipedia, CC BY-SA) — share-alike blocks exclusive resale.
- Sierra Leone (OCHA, CC-BY-IGO) — attribution required, but no share-alike.
- Angola — no condition of any kind.
licence_status.decision: "compatible"for both channels.is_premium: true/premium_tier: Bset indatapackage.yml(tier B perdocs/PRICING_TIERS.md: single primary source with real derivation work — regex extraction, ISO-code handling, verification against an independent total — but no second source consolidated onto it, same shape as Sierra Leone).
Attribution to the Diário da República / Lei 14/24 is still included in
README.md and ATTRIBUTION.txt as good citation practice, not because
Angola's law requires it.
Known, documented limitation
ISO 3166-2:AO has not been updated for the 4 provinces Lei 14/24 created
or split (Icolo e Bengo; Cuando and Cubango, split from the old Cuando
Cubango; Moxico Leste, split from Moxico). Re-verified 2026-08-27 (no ISO
newsletter update found). admin_code1 is left empty for those 326-36=290
non-empty vs 36 empty rows, per this project's own convention that empty is
the only legitimate value when no ISO code exists — never fabricated.
Commune-level (admin3, ~378 nationally) enumeration was not attempted — judged out of scope for this pass given the much larger row count and attribution-mapping risk versus the municipality-level extraction. Left as a documented follow-up, not silently omitted.
What ships
ao.csv — 326 rows (province × municipality), 13-column postal-codes
schema, postal_code empty throughout.
Update 2026-08-27 — shipped free, not premium
Despite the "no copyright at all" analysis above genuinely supporting a
paid resale, the human decided (2026-08-27) on a blanket policy: any
dataset with no postal codes ships free, regardless of how permissive
its specific licence is. is_premium / premium_tier / premium_source_key
removed from datapackage.yml. The licence analysis above remains
accurate and is kept for the record — it's a policy choice overriding it,
not a finding that the earlier analysis was wrong.