Uganda Bureau of Statistics (UBOS)
Administrative units of Uganda
The administrative hierarchy of Uganda from regions down to villages: 4 regions, 15 sub-regions, districts (including cities and municipal councils), counties, sub-counties, parishes and villages, with the codes used by government and a crosswalk to ISO 3166-2, OCHA COD-AB P-codes, Wikidata, OpenStreetMap and GeoNames.
Get the data
Every list below can be read one page at a time (API), or taken whole as CSV or JSON.
-
Every district and city, with ISO 3166-2 codes, P-codes and Wikidata ids
/api/v1/districts -
Every village in Lamwo district
/api/v1/villages?filter[district]=91 -
The parishes of one sub-county
/api/v1/parishes?filter[subCounty]=1 -
Places called Kira, at any level
/api/v1/search?q=kira
# Every district and city, with ISO 3166-2 codes, P-codes and Wikidata ids curl -g 'https://opendata.ssmusoke.dev/api/v1/districts?format=json'
// Every district and city, with ISO 3166-2 codes, P-codes and Wikidata ids
$rows = json_decode(file_get_contents(
'https://opendata.ssmusoke.dev/api/v1/districts?format=json'
), true);
// Every district and city, with ISO 3166-2 codes, P-codes and Wikidata ids
$rows = Http::get('https://opendata.ssmusoke.dev/api/v1/districts', [
'format' => 'json',
])->json();
# Every district and city, with ISO 3166-2 codes, P-codes and Wikidata ids
import requests
rows = requests.get(
"https://opendata.ssmusoke.dev/api/v1/districts",
params={"format": "json"},
).json()
// Every district and city, with ISO 3166-2 codes, P-codes and Wikidata ids const rows = await fetch( "https://opendata.ssmusoke.dev/api/v1/districts?format=json" ).then((r) => r.json());
Files
Files have not been generated yet; use the API meanwhile.
Cite as
Uganda OpenData Playground (2026). Administrative units of Uganda. https://opendata.ssmusoke.dev/public/datasets. Licensed under CC-BY-4.0.
Source
Uganda Bureau of Statistics (UBOS) (2025-04-10)
Known issues
- Codes (ubosCode) are only unique within their parent unit, except for districts. Use the numeric id as the identifier.
- Cities and municipal councils appear as separate units at district level.
- UBOS district codes are not ISO 3166-2 codes; the ISO code is published separately in the identifiers attribute.
- COD-AB P-codes are matched by name against the 2020 COD-AB boundaries. Cities, divisions and units created or reorganised since 2020 may have no P-code.
- 70 villages have no household code prefix (hh_code_prefix). Run "php artisan opendata:validate" for the current list of data quality warnings.
- The change history starts on 2026-11-08; earlier boundary changes (such as the 2020 cities) are not recorded, and validity dates are empty unless known.
Changelog
- 2026-11-08 · Validity dates and a change history for every unit; retired units drop out of lists but stay available. Crosswalk to COD-AB P-codes, Wikidata, OpenStreetMap and GeoNames.
- 2026-11-08 · API v1: stable ids, full ancestor path, ISO 3166-2 crosswalk, bulk downloads.
- 2025-04-10 · First publication.