Postal Codes Dataset for Anguilla, AI

222
Updated:
Files:1
Size:852 B
Rows:14
Formats:csv
License:CC-BY-4.0

Postal Codes Dataset for Anguilla, AI 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 →

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-ai/
https://datahub.io/logistics/postal-codes-ai/_r/-/.licensing-notes.md
https://datahub.io/logistics/postal-codes-ai/_r/-/.migration-notes.md
https://datahub.io/logistics/postal-codes-ai/_r/-/ATTRIBUTION.txt
https://datahub.io/logistics/postal-codes-ai/_r/-/README.md
https://datahub.io/logistics/postal-codes-ai/_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-ai/_r/-/datapackage.yaml
README.md— documentation
https://datahub.io/logistics/postal-codes-ai/_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

Explore with AI

postal-codes-ai


About this dataset

Anguilla (AI) — internal licensing notes

Audit, 2026-09-17 — research/audit only, no build performed

Triggered because ai/ai.csv on the main R2 bucket is only 214 bytes (dated 2026-07-30) and had never been audited. Anguilla is a tiny British Overseas Territory (population ~15,000) — worth checking whether 214 bytes means "near-empty/neglected" or "genuinely this small."

1. What is actually in the current R2 file

Fetched directly from R2 (credentials from this repo's own .env, bucket postal-codes, endpoint *.eu.r2.cloudflarestorage.com) rather than assumed from size alone:

country_code,postal_code,place_name,admin_name1,admin_code1,admin_name2,admin_code2,admin_name3,admin_code3,latitude,longitude,accuracy,alternative_city_name
AI,AI-2640,Anguilla,nan,,nan,,nan,,18.2167,-63.05,4,AXA

Exactly one data row. Also found two more copies in the bucket, byte-identical to ai/ai.csv:

  • ai/geonames/2026-09-01/0.csv
  • ai/geonames/latest/0.csv

So this file has already been regenerated from a GeoNames-sourced pipeline as recently as 2026-09-01 — it is not stale, it is a current, deliberate GeoNames extract that simply has one row because the source has one row.

Data-quality bug found (worth fixing on any rebuild): admin_name1, admin_name2, admin_name3 are shipped as the literal string "nan" rather than an empty string — a Python/pandas NaN that got str()-stringified before being written to CSV instead of left blank. Same failure class as issues flagged elsewhere in this project (a script writing a value nobody checked). Should be blank, not "nan", on any regeneration.

alternative_city_name = AXA is plausible, legitimate GeoNames alternate- name data (an old/indigenous name for Anguilla, not a bug) — left as is.

2. Does Anguilla have a real postal-code system? Yes — verified, not assumed

Checked the actual official postal operator rather than trusting aggregator copy-paste:

  • Anguilla Postal Service (https://www.aps.ai/, the real official site) — fetched directly. Its own General Post Office address is given as "General Post Office, The Valley, AI-2640, Anguilla." The site carries no addressing/postcode documentation, no downloadable list, no API — but its own GPO address confirms AI-2640 is the live code in use by the postal authority itself, not just an aggregator claim.
  • Smarty's address-format reference for Anguilla lists the postal code format as "N/A" (i.e., no structured per-address postcode format exists) while listing AI-2640 in its example addresses and separately listing the 14 districts — consistent with a single fixed territory-wide code, not a district-level system.
  • Multiple aggregators (ipostalcode.com, postalcode.pro, geonames.org) independently describe AI-2640 as the Anguilla postal code, all consistent with each other and with the official GPO's own address — no conflicting claim found anywhere.
  • No UPU S42/S53 country template or bulk UPU postcode file specific to Anguilla was locatable beyond the general UPU addressing-standards PDF, which does not contradict the single-code finding.

Conclusion: confirmed, not assumed. Anguilla genuinely has one fixed postal code, AI-2640, for the entire territory — the same shape as several other small Caribbean/UK-territory codes in this class. A 1-row dataset is not a coverage gap; it is complete.

3. GeoNames postal export — download.geonames.org/export/zip/AI.zip

  • HTTP 200. Unzipped to readme.txt + AI.txt.
  • AI.txt contents: exactly one row — AI AI-2640 Anguilla 18.2167 -63.05 4 (admin1/admin2/admin3 name+code fields all empty in the raw file — the literal "nan" string in the R2 copy is an artifact of this pipeline's regeneration step, not something GeoNames itself ships).
  • Checked readme.txt for a Malta/Chile/China/Ireland-style truncation disclaimer (those four are explicitly flagged in GeoNames' own readme as deliberately incomplete for copyright reasons) — no such note exists for Anguilla. This one row is presented as GeoNames' complete, unmodified answer for the country, not a truncated one.
  • Standard GeoNames postal licence: CC BY 4.0, attribution required (a link to geonames.org). No country-specific restriction found for AI.

This matches the R2 file exactly (same code, same place name, same lat/lon, same accuracy value) — confirms ai/ai.csv is already a faithful, current GeoNames extract, not a broken or partial one.

4. Admin tier — no ISO 3166-2 subdivisions exist for Anguilla

  • Confirmed via Wikipedia's ISO_3166-2:AI page directly: "Currently no ISO 3166-2 codes are defined in the entry for Anguilla." Anguilla is a single territory in the ISO subdivision sense — there is no official admin_code1 to assign, matching the blank admin_code1 in both the R2 file and the raw GeoNames export.
  • A real (informal, non-ISO) admin tier does exist: 14 districts, used for census and electoral purposes since at least 1974 (Anguilla Statistics Department, statistics.gov.ai). Confirmed this list two independent ways, and both agree exactly:
    • GeoNames' own main gazetteer dump (download.geonames.org/export/dump/AI.zip, 235 total rows across all feature classes) tags 14 places as feature code ADM1 with GeoNames-internal numeric codes (112053xx range): Blowing Point, East End, George Hill, Island Harbour, North Hill, North Side, Sandy Ground, Sandy Hill, South Hill, Stoney Ground, The Farrington, The Quarter, The Valley, West End. The same 14 names also appear as PPLA/PPLC populated-place points, giving each district a real lat/lon centroid.
    • statoids.com/uai.html independently lists the identical 14 districts, each with a HASC code (e.g. AI.BP, AI.EE) — a third-party academic compilation, not an ISO or government code, and with no clear licence statement found on the site.
    • The two lists match 14/14 by name. This is a genuine, real admin tier — just not an ISO one, and only reliably licence-clean if sourced from GeoNames' own numeric codes rather than statoids' HASC codes.

5. Does the GeoNames main gazetteer dump offer anything beyond the postal export?

Yes, but only at the admin (district) tier, not the postal tier:

  • The postal export is genuinely a single row — there is no finer postal granularity to recover from any source; Anguilla's real system does not have one.
  • The main dump (235 rows total: 45 P-class populated places, 15 A-class admin/boundary entries, remainder bays/hills/points/streams with no addressing relevance) does add the 14-district admin structure with names, GeoNames-native codes, and centroids — none of which is present in the postal export (which has no admin fields populated at all).
  • So the dump is a legitimate additional source for an admin_name1 / admin_code1 enrichment, not for additional postal codes. It would let a rebuild ship e.g. 14 rows (one per district, all sharing postal_code AI-2640) with real district names/coordinates instead of 1 row with blank admin fields — a genuine value-add, still CC BY 4.0, no new licence exposure, since both files come from GeoNames itself.

Verdict

No build performed in this pass (research/audit only, per instruction). Key findings:

  1. The current 214-byte / 1-row file is not a neglected/broken dataset — it is a faithful, currently-regenerated (2026-09-01) GeoNames extract, and it is complete: Anguilla genuinely has exactly one postal code, AI-2640, for the whole territory, confirmed via the official Anguilla Postal Service's own GPO address, not just aggregator claims.
  2. One real, fixable defect: the literal string "nan" shipped in admin_name1/2/3 instead of blank — a stringification bug, not a sourcing problem.
  3. There is a legitimate small upgrade available, not a "real vs. fake" gap: expand from 1 row to 14 (one per district, same postal code repeated), sourced from GeoNames' own main gazetteer dump (which already has all 14 districts tagged ADM1, with GeoNames-native codes and coordinates) rather than statoids' HASC codes (unclear licence). This would give consumers real admin-level granularity Anguilla's admin structure actually has, even though the postal granularity genuinely stops at one code for the whole country.
  4. No ISO 3166-2:AI codes exist — confirmed directly, not assumed — so admin_code1 has no ISO destination either way.
  5. Licensing: both GeoNames sources (postal export and main dump) are CC BY 4.0, same licence already governing the shipped file — no conflict, no OSM/ODbL exposure, no premium-tier justification (a 1-to-14-row dataset is far smaller than a 100-row sample, same reasoning as Malta's is_premium decision).

Either is defensible; recommend the small upgrade since the source data already exists and was already fetched in this pass:

  • Fix the "nan" string bug in the regeneration pipeline regardless of which shape is shipped (empty string, not "nan").
  • Optionally expand 1 row → 14 rows, one per district, all carrying postal_code = AI-2640 (single-zone inheritance, same pattern used elsewhere in this project for capital/single-postal-zone admin units), admin_name1 = district name, admin_code1 = GeoNames' own numeric ADM1 code (not statoids' HASC — unclear licence), latitude/longitude = the district's own PPLA/PPLC centroid rather than the single territory-wide point currently used, accuracy label reconsidered (current numeric 4 is GeoNames' legacy 1-6 scale, not this project's descriptive tier vocabulary — needs a decision on which convention this repo's schema wants here).
  • If either change is made, licence_status should be regenerated fresh (per the provenance/licence gate) rather than copied forward, since the source technically changes from "postal export only" to "postal export
    • main dump" even though both are GeoNames CC BY 4.0.
  • No R2, git, or datapackage.yml changes were made in this pass.