Uganda's open data,
ready to use
Official data on every region, district, parish and village, with census figures, schools and constituencies. Browse it here, download it as CSV or JSON, or call the API.
7 datasets from 5 public institutions
Every dataset can be explored here, called through the API, or downloaded as CSV or JSON.
Census 2024
Population by sex and households for districts, counties, sub-counties and parishes.
161 districts · 2,000 sub-counties · 9,750 parishes
Higher education
Licensed universities and tertiary institutions, with websites and email domains.
626 institutions · 43 with websites
Linked codes
ISO 3166-2 codes, humanitarian P-codes, and Wikidata, OpenStreetMap and GeoNames ids.
2,078 links across 5 code systems
Questions you can answer
Each chart is built from the data on this site. Open it, or take the numbers behind it.
- Wakiso
- 3.41M
- Kampala
- 1.80M
- Yumbe
- 945K
- Mukono
- 929K
- Nasana Municipal Council
- 692K
- Luweero
- 616K
UBOS NPHC 2024. District figures include the municipalities inside them.
UBOS villages; Ministry of Education and Sports government schools.
- 10,289
- Sub-county councils
- 2,200
- District councils
- 842
- Municipality councils
Electoral Commission, 2025 demarcation.
Use the data your way
Download complete files
CSV for every dataset, with a data package, checksums and a dated copy of each release.
-
parishes.geojson
GeoJSON polygons (WGS 84) of the parishes. Each feature's properties: id (the portal id), type, level, name, displayName, slug, ubosCode, areaKm2, centroid, inferred and links. Boundaries: uganda-locale project (github.com/kakandemanwell/uganda, CC BY 4.0), processed from Uganda Bureau of Statistics NPHC 2024 and Electoral Commission 2025 data.
12.4 MB10,596 rows -
gazetteer.csv
One row per village with the id, name and code of its parish, sub-county, county, district, sub-region and region.
10.1 MB71,679 rows -
sub-counties.geojson
GeoJSON polygons (WGS 84) of the sub-counties. Each feature's properties: id (the portal id), type, level, name, displayName, slug, ubosCode, areaKm2, centroid, inferred and links. Boundaries: uganda-locale project (github.com/kakandemanwell/uganda, CC BY 4.0), processed from Uganda Bureau of Statistics NPHC 2024 and Electoral Commission 2025 data.
4.6 MB2,133 rows -
villages.csv
All Villages with the ids of their ancestors.
3.7 MB71,679 rows -
schools.csv
One row per school with its EMIS number and the portal ids of its district, sub-county and parish.
1.4 MB13,110 rows
Build with the API
JSON:API, plain JSON or CSV on every list. OpenAPI 3.1 and an llms.txt for AI agents. No key needed to start.
# Every village in Lamwo district curl -g 'https://opendata.ssmusoke.dev/api/v1/villages?filter[district]=91&format=json'
// Every village in Lamwo district
$rows = json_decode(file_get_contents(
'https://opendata.ssmusoke.dev/api/v1/villages?filter[district]=91&format=json'
), true);
// Every village in Lamwo district
$rows = Http::get('https://opendata.ssmusoke.dev/api/v1/villages', [
'filter' => [
'district' => 91,
],
'format' => 'json',
])->json();
# Every village in Lamwo district
import requests
rows = requests.get(
"https://opendata.ssmusoke.dev/api/v1/villages",
params={"filter[district]": 91, "format": "json"},
).json()
// Every village in Lamwo district const rows = await fetch( "https://opendata.ssmusoke.dev/api/v1/villages?filter[district]=91&format=json" ).then((r) => r.json());