{"openapi":"3.1.0","info":{"title":"Uganda OpenData Playground API","version":"1.0.0","description":"Open data about Uganda: the administrative hierarchy (Region \u2192 Sub-region \u2192 District \u2192 County \u2192 Sub-county \u2192 Parish \u2192 Village), 2024 census population per unit, and higher education institutions.\n\nResponses follow [JSON:API 1.1](https://jsonapi.org/format/1.1/): `filter[...]`, `sort`, `include`, `fields[type]` and `page[number]`/`page[size]` (max 100). Errors use [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) problem details.\n\n**Rate limits:** anonymous clients get 60 requests per minute per IP. Create a free API key in your account settings and send it as `Authorization: Bearer <key>` for 600 per minute. Watch the `X-RateLimit-Remaining` and `Retry-After` headers.\n\n**Formats:** every list also answers as plain JSON (`?format=json`) or CSV (`?format=csv`, or `Accept: text/csv`). These return the whole filtered list rather than one page, up to 100,000 rows, with nested values as dotted CSV columns (`path.districts.name`).\n\n**Bulk data:** to copy a whole dataset, download the files listed under `/datasets` rather than paging through the API.\n\n**AI agents:** a plain-text guide to the API is at https://opendata.ssmusoke.dev/llms.txt.\n\nData is licensed under Creative Commons Attribution 4.0 International (https://creativecommons.org/licenses/by/4.0/).","license":{"name":"CC-BY-4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"contact":{"email":"OpenData@ssmusoke.dev"}},"servers":[{"url":"https://opendata.ssmusoke.dev/api/v1"}],"security":[{},{"apiKey":[]}],"tags":[{"name":"Administrative units","description":"Regions, sub-regions, districts, counties, sub-counties, parishes and villages."},{"name":"Search","description":"Find places by name and match free-text addresses."},{"name":"Education","description":"Government primary and secondary schools (Ministry of Education and Sports); tertiary and TVET institutions and their accredited programmes from the NCHE, TVET Council and Ministry TVET registers, with how the registers changed over time."},{"name":"History","description":"Changes to administrative units over time, and a change feed for mirrors."},{"name":"Statistics","description":"Figures per administrative unit, such as UBOS 2024 census population and households."},{"name":"Elections","description":"Electoral Commission constituencies and local government electoral areas (2025)."},{"name":"Datasets","description":"Dataset metadata, licences, sources and bulk downloads."},{"name":"Discovery","description":"Entry point and statistics."}],"paths":{"/":{"get":{"tags":["Discovery"],"summary":"API entry point with links to every collection","operationId":"root","responses":{"200":{"description":"Links to the collections","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/search":{"get":{"tags":["Search"],"summary":"Search places by name across all levels","description":"Exact matches rank first, then names starting with the query, then other matches; higher levels before lower ones.","operationId":"search","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":100}},{"name":"type","in":"query","description":"Comma-separated levels: regions, sub-regions, districts, counties, sub-counties, parishes, villages","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}},{"name":"filter[region]","in":"query","description":"Only places inside this Region id.","schema":{"type":"integer"}},{"name":"filter[subRegion]","in":"query","description":"Only places inside this Sub-region id.","schema":{"type":"integer"}},{"name":"filter[district]","in":"query","description":"Only places inside this District id.","schema":{"type":"integer"}},{"name":"filter[county]","in":"query","description":"Only places inside this County id.","schema":{"type":"integer"}},{"name":"filter[subCounty]","in":"query","description":"Only places inside this Sub-county id.","schema":{"type":"integer"}},{"name":"filter[parish]","in":"query","description":"Only places inside this Parish id.","schema":{"type":"integer"}},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Matching units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"422":{"description":"Invalid query","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/resolve":{"get":{"tags":["Search"],"summary":"Match a free-text address to an administrative unit","description":"Give names for any levels. They are matched top-down, ignoring case, punctuation and words such as \"District\". The deepest match is returned, with a confidence per level in meta.matches. Parish and village names need a district, county or sub-county as well.","operationId":"resolve","parameters":[{"name":"region","in":"query","description":"Region name","schema":{"type":"string"}},{"name":"subRegion","in":"query","description":"Sub-region name","schema":{"type":"string"}},{"name":"district","in":"query","description":"District name","schema":{"type":"string"}},{"name":"county","in":"query","description":"County name","schema":{"type":"string"}},{"name":"subCounty","in":"query","description":"Sub-county name","schema":{"type":"string"}},{"name":"parish","in":"query","description":"Parish name","schema":{"type":"string"}},{"name":"village","in":"query","description":"Village name","schema":{"type":"string"}}],"responses":{"200":{"description":"Best match (data is null when nothing matched)","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminUnit"},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"description":"Not enough information","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/stats":{"get":{"tags":["Discovery"],"summary":"Record counts per level and dataset freshness","operationId":"stats","responses":{"200":{"description":"Statistics","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/datasets":{"get":{"tags":["Datasets"],"summary":"List datasets with licence, source, known issues and downloads","operationId":"listDatasets","responses":{"200":{"description":"Datasets","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"parameters":[{"$ref":"#/components/parameters/format"}]}},"/datasets/{slug}":{"get":{"tags":["Datasets"],"summary":"Get one dataset","operationId":"getDataset","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","enum":["administrative-units","population-census-2024","schools","higher-education-institutions","electoral-areas-2025"]}}],"responses":{"200":{"description":"Dataset","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/catalog":{"get":{"tags":["Datasets"],"summary":"W3C DCAT v3 catalogue (JSON-LD) for harvesting","operationId":"catalog","responses":{"200":{"description":"DCAT catalogue","content":{"application/ld+json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/statistics":{"get":{"tags":["Statistics"],"summary":"List figures per administrative unit, such as census population","description":"Indicators: `population` (Population), `population-male` (Male population), `population-female` (Female population), `household-population` (Household population), `households` (Households), `average-household-size` (Average household size). For example, the population of every parish in district 1: `?filter[indicator]=population&filter[level]=parishes&filter[district]=1`.","operationId":"listStatistics","parameters":[{"name":"filter[indicator]","in":"query","description":"Indicators, comma separated.","schema":{"type":"string","enum":["population","population-male","population-female","household-population","households","average-household-size"]}},{"name":"filter[period]","in":"query","description":"Reference year, e.g. 2024.","schema":{"type":"string"}},{"name":"filter[source]","in":"query","description":"Source, e.g. ubos-nphc-2024.","schema":{"type":"string"}},{"name":"filter[level]","in":"query","description":"Level of the units.","schema":{"type":"string","enum":["regions","sub-regions","districts","counties","sub-counties","parishes","villages"]}},{"name":"filter[unit]","in":"query","description":"Unit ids, comma separated (use with filter[level]).","schema":{"type":"string"}},{"name":"filter[region]","in":"query","description":"Only units in this Region (needs filter[level]).","schema":{"type":"string"}},{"name":"filter[subRegion]","in":"query","description":"Only units in this Sub-region (needs filter[level]).","schema":{"type":"string"}},{"name":"filter[district]","in":"query","description":"Only units in this District (needs filter[level]).","schema":{"type":"string"}},{"name":"filter[county]","in":"query","description":"Only units in this County (needs filter[level]).","schema":{"type":"string"}},{"name":"filter[subCounty]","in":"query","description":"Only units in this Sub-county (needs filter[level]).","schema":{"type":"string"}},{"name":"filter[parish]","in":"query","description":"Only units in this Parish (needs filter[level]).","schema":{"type":"string"}},{"name":"sort","in":"query","description":"value, indicator, period or unitId; prefix with - for descending.","schema":{"type":"string"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of figures","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter or sort","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/changes":{"get":{"tags":["History"],"summary":"Every change to the administrative units, oldest first","description":"For apps that mirror the data: poll with filter[changedSince] set to your last sync and apply the changes in order. Deleted units appear with changeType \"deleted\".","operationId":"listChanges","parameters":[{"name":"filter[changedSince]","in":"query","description":"Only changes recorded since this ISO 8601 date-time.","schema":{"type":"string","format":"date-time"}},{"name":"filter[level]","in":"query","schema":{"type":"string","enum":["regions","sub-regions","districts","counties","sub-counties","parishes","villages"]}},{"name":"filter[unit]","in":"query","description":"Unit ids, comma separated.","schema":{"type":"string"}},{"name":"filter[changeType]","in":"query","schema":{"type":"string","enum":["created","renamed","recoded","moved","retired","reinstated","deleted","split","merged","updated"]}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of changes","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/education/institutions":{"get":{"tags":["Education"],"summary":"List tertiary and TVET institutions (NCHE, TVET Council, Ministry TVET register)","description":"One record per institution, whichever registers list it; include=listings gives each register's own listing with first and last seen dates. regulator is nche or tvet. status is current while a register's latest read lists the institution, otherwise former; lists show current institutions unless filter[status]=former or all. registers names the registers that list it today and formerRegisters those that dropped it; each listing has its own status. With filter[register] or filter[category], filter[status] applies to those listings, and register and category must match on the same listing: filter[register]=nche&filter[status]=former lists institutions NCHE dropped, even if a TVET register lists them today. Universities also have a website and emailDomain where known, from wkambale/Ug-Universities-Api (MIT licence).","operationId":"listInstitutions","parameters":[{"name":"filter[status]","in":"query","schema":{"type":"string","enum":["current","former","all"],"default":"current"}},{"name":"filter[regulator]","in":"query","schema":{"type":"string","enum":["nche","tvet"]}},{"name":"filter[register]","in":"query","description":"Has ever been listed by: nche, tvet-council, moes-tvet (comma-separated)","schema":{"type":"string"}},{"name":"filter[category]","in":"query","description":"Category on a register, as a slug: university, oti, odai, campus, technical-college, vocational-training-institute, \u2026 (comma-separated)","schema":{"type":"string"}},{"name":"filter[parent]","in":"query","description":"Id of the institution a campus belongs to","schema":{"type":"string"}},{"name":"filter[subCounty]","in":"query","description":"Sub-county id","schema":{"type":"string"}},{"name":"filter[parish]","in":"query","description":"Parish id","schema":{"type":"string"}},{"name":"filter[name]","in":"query","schema":{"type":"string"}},{"name":"filter[district]","in":"query","description":"District id","schema":{"type":"string"}},{"name":"filter[institutionType]","in":"query","description":"Institution type id (public or private)","schema":{"type":"string"}},{"name":"filter[awardType]","in":"query","description":"Award type id","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","schema":{"type":"string"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["name","-name","id","-id"]}},{"name":"include","in":"query","description":"district, subCounty, parish, parent, institutionType, awardType, listings, programmes","schema":{"type":"string"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of institutions","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/education/institutions/{id}":{"get":{"tags":["Education"],"summary":"Get one institution","operationId":"getInstitution","parameters":[{"$ref":"#/components/parameters/id"}],"responses":{"200":{"description":"Institution","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/education/programmes":{"get":{"tags":["Education"],"summary":"List accredited programmes (NCHE and TVET Council)","description":"NCHE programmes have level, discipline, accreditation and expiry dates, review year and a TVET flag; TVET Council programmes have the maximum admissible number. status is current while the register's latest read lists the programme; lists show current programmes unless filter[status]=former or all. accreditation is the register's own active or inactive. Values of level, discipline, accreditation and tvetLeaning are lowercase slugs of the register's wording, which levelName and disciplineName keep.","operationId":"listProgrammes","parameters":[{"name":"filter[name]","in":"query","description":"Part of the name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[institution]","in":"query","description":"Institution id","schema":{"type":"string"}},{"name":"filter[register]","in":"query","schema":{"type":"string","enum":["nche","tvet-council"]}},{"name":"filter[level]","in":"query","description":"bachelors, masters, doctorate, postgraduate-diploma, diploma, certificate, higher-education-access-certificate, other (comma-separated)","schema":{"type":"string"}},{"name":"filter[discipline]","in":"query","description":"e.g. business, education, medicine-and-health-sciences, engineering","schema":{"type":"string"}},{"name":"filter[accreditation]","in":"query","description":"Accreditation status the register gives","schema":{"type":"string","enum":["active","inactive"]}},{"name":"filter[tvetLeaning]","in":"query","description":"NCHE TVET flag","schema":{"type":"string","enum":["yes","no","review"]}},{"name":"filter[status]","in":"query","schema":{"type":"string","enum":["current","former","all"],"default":"current"}},{"name":"filter[district]","in":"query","description":"District id of the institution","schema":{"type":"string"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["id","-id","name","-name","level","-level","accreditedOn","-accreditedOn","expiresOn","-expiresOn"]}},{"name":"include","in":"query","description":"institution","schema":{"type":"string"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of programmes","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/education/programmes/{id}":{"get":{"tags":["Education"],"summary":"Get one programme","operationId":"getProgramme","parameters":[{"$ref":"#/components/parameters/id"}],"responses":{"200":{"description":"Programme","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/education/register-changes":{"get":{"tags":["Education"],"summary":"Institutions and programmes added to, dropped from or returning to a register","description":"Dated by the import that first saw the change, not by the regulator's decision. An institution dropped by NCHE and added by the TVET Council or the Ministry TVET register has moved between regulators.","operationId":"listRegisterChanges","parameters":[{"name":"filter[register]","in":"query","schema":{"type":"string","enum":["nche","tvet-council","moes-tvet"]}},{"name":"filter[subject]","in":"query","schema":{"type":"string","enum":["institution","programme"]}},{"name":"filter[change]","in":"query","schema":{"type":"string","enum":["added","dropped","returned"]}},{"name":"filter[institution]","in":"query","description":"Institution id","schema":{"type":"string"}},{"name":"filter[observedSince]","in":"query","description":"Observed on or after (YYYY-MM-DD)","schema":{"type":"string","format":"date"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["observedOn","-observedOn","name","-name","id","-id"]}},{"name":"include","in":"query","description":"institution, programme","schema":{"type":"string"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of register changes","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/education/register-snapshots":{"get":{"tags":["Education"],"summary":"Counts per register and import date, for time series","description":"measure is institutions or programmes; dimension is total, category, accreditationStatus, ownership or sector for institutions, and level, discipline, accreditation or tvetLeaning for programmes. value is a lowercase slug and label the register's wording. The 2025-04-12 NCHE snapshot is the first scrape of the NCHE website and has institutions only.","operationId":"listRegisterSnapshots","parameters":[{"name":"filter[register]","in":"query","schema":{"type":"string","enum":["nche","tvet-council","moes-tvet"]}},{"name":"filter[measure]","in":"query","schema":{"type":"string","enum":["institutions","programmes"]}},{"name":"filter[dimension]","in":"query","schema":{"type":"string"}},{"name":"filter[value]","in":"query","schema":{"type":"string"}},{"name":"filter[snapshotOn]","in":"query","schema":{"type":"string","format":"date"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["snapshotOn","-snapshotOn","count","-count","id","-id"]}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of snapshot counts","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/education/schools":{"get":{"tags":["Education"],"summary":"List government primary and secondary schools (Ministry of Education and Sports)","operationId":"listSchools","parameters":[{"name":"filter[name]","in":"query","description":"Part of the name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[emisNumber]","in":"query","description":"EMIS number","schema":{"type":"string"}},{"name":"filter[level]","in":"query","schema":{"type":"string","enum":["primary","secondary"]}},{"name":"filter[ownership]","in":"query","schema":{"type":"string","enum":["government"]}},{"name":"filter[district]","in":"query","description":"District id","schema":{"type":"string"}},{"name":"filter[subCounty]","in":"query","description":"Sub-county id","schema":{"type":"string"}},{"name":"filter[parish]","in":"query","description":"Parish id","schema":{"type":"string"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["id","-id","name","-name","emisNumber","-emisNumber"]}},{"name":"include","in":"query","description":"district, subCounty, parish","schema":{"type":"string"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of schools","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/education/schools/{id}":{"get":{"tags":["Education"],"summary":"Get one school","operationId":"getSchool","parameters":[{"$ref":"#/components/parameters/id"}],"responses":{"200":{"description":"School","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/education/institution-types":{"get":{"tags":["Education"],"summary":"List institution types (ownership)","operationId":"listInstitutionTypes","responses":{"200":{"description":"Institution types","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"parameters":[{"$ref":"#/components/parameters/format"}]}},"/education/institution-types/{id}":{"get":{"tags":["Education"],"summary":"Get one institution type","operationId":"getInstitutionType","parameters":[{"$ref":"#/components/parameters/id"}],"responses":{"200":{"description":"Institution type","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/education/award-types":{"get":{"tags":["Education"],"summary":"List award types (licence categories)","operationId":"listAwardTypes","responses":{"200":{"description":"Award types","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"parameters":[{"$ref":"#/components/parameters/format"}]}},"/education/award-types/{id}":{"get":{"tags":["Education"],"summary":"Get one award type","operationId":"getAwardType","parameters":[{"$ref":"#/components/parameters/id"}],"responses":{"200":{"description":"Award type","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/elections/constituencies":{"get":{"tags":["Elections"],"summary":"List Electoral Commission constituencies","operationId":"listConstituencies","parameters":[{"name":"filter[name]","in":"query","description":"Part of the name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[ecCode]","in":"query","description":"Electoral Commission constituency code.","schema":{"type":"string"}},{"name":"filter[district]","in":"query","description":"District id.","schema":{"type":"string"}},{"name":"filter[county]","in":"query","description":"County id.","schema":{"type":"string"}},{"name":"include","in":"query","description":"district, county, electoralAreasCount","schema":{"type":"string"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of constituencies","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/elections/constituencies/{id}":{"get":{"tags":["Elections"],"summary":"Get one constituency","operationId":"getConstituency","parameters":[{"$ref":"#/components/parameters/id"}],"responses":{"200":{"description":"Constituency","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/elections/electoral-areas":{"get":{"tags":["Elections"],"summary":"List electoral areas of directly elected local government councillors (2025)","description":"Category district: district or city council seats, usually one per sub-county. Category sub-county: sub-county, town or municipal division council seats, usually one per parish. Category municipality: municipality or city division council seats.","operationId":"listElectoralAreas","parameters":[{"name":"filter[name]","in":"query","description":"Part of the name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[category]","in":"query","description":"Council level.","schema":{"type":"string","enum":["district","municipality","sub-county"]}},{"name":"filter[constituency]","in":"query","description":"Constituency id.","schema":{"type":"string"}},{"name":"filter[district]","in":"query","description":"District id.","schema":{"type":"string"}},{"name":"filter[subCounty]","in":"query","description":"Sub-county id.","schema":{"type":"string"}},{"name":"filter[parish]","in":"query","description":"Parish id.","schema":{"type":"string"}},{"name":"include","in":"query","description":"constituency, district, subCounty, parish","schema":{"type":"string"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of electoral areas","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/elections/electoral-areas/{id}":{"get":{"tags":["Elections"],"summary":"Get one electoral area","operationId":"getElectoralArea","parameters":[{"$ref":"#/components/parameters/id"}],"responses":{"200":{"description":"Electoral area","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/regions":{"get":{"tags":["Administrative units"],"summary":"List Regions","operationId":"listRegions","parameters":[{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: statistics, subRegionsCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[regions]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of Regions","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter, sort or include","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/regions/{id}":{"get":{"tags":["Administrative units"],"summary":"Get one region","operationId":"getRegion","parameters":[{"$ref":"#/components/parameters/id"},{"name":"include","in":"query","description":"Comma-separated: statistics, subRegionsCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}}],"responses":{"200":{"description":"The region","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminUnit"},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/regions/{id}/children":{"get":{"tags":["Administrative units"],"summary":"List the Sub-regions in a region","operationId":"listRegionChildren","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"filter[region]","in":"query","description":"Only units in this Region (id; comma separated for several).","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: region, statistics, districtsCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[sub-regions]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of child units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/regions/{id}/history":{"get":{"tags":["History"],"summary":"Changes to a region: created, renamed, recoded, moved, retired","operationId":"listRegionHistory","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Changes, oldest first","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/regions/{id}/statistics":{"get":{"tags":["Statistics"],"summary":"Figures for a region, such as its 2024 census population","operationId":"listRegionStatistics","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[indicator]","in":"query","description":"Indicators, comma separated.","schema":{"type":"string","enum":["population","population-male","population-female","household-population","households","average-household-size"]}},{"name":"filter[period]","in":"query","description":"Reference year, e.g. 2024.","schema":{"type":"string"}},{"name":"filter[source]","in":"query","description":"Source, e.g. ubos-nphc-2024.","schema":{"type":"string"}}],"responses":{"200":{"description":"Figures for the unit","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/sub-regions":{"get":{"tags":["Administrative units"],"summary":"List Sub-regions","operationId":"listSubRegions","parameters":[{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"filter[region]","in":"query","description":"Only units in this Region (id; comma separated for several).","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: region, statistics, districtsCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[sub-regions]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of Sub-regions","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter, sort or include","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/sub-regions/{id}":{"get":{"tags":["Administrative units"],"summary":"Get one sub-region","operationId":"getSubRegion","parameters":[{"$ref":"#/components/parameters/id"},{"name":"include","in":"query","description":"Comma-separated: region, statistics, districtsCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}}],"responses":{"200":{"description":"The sub-region","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminUnit"},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/sub-regions/{id}/children":{"get":{"tags":["Administrative units"],"summary":"List the Districts in a sub-region","operationId":"listSubRegionChildren","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"filter[region]","in":"query","description":"Only units in this Region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subRegion]","in":"query","description":"Only units in this Sub-region (id; comma separated for several).","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, statistics, countiesCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[districts]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of child units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/sub-regions/{id}/ancestors":{"get":{"tags":["Administrative units"],"summary":"List the ancestors of a sub-region, from its region down","operationId":"listSubRegionAncestors","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Ancestor units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/sub-regions/{id}/history":{"get":{"tags":["History"],"summary":"Changes to a sub-region: created, renamed, recoded, moved, retired","operationId":"listSubRegionHistory","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Changes, oldest first","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/sub-regions/{id}/statistics":{"get":{"tags":["Statistics"],"summary":"Figures for a sub-region, such as its 2024 census population","operationId":"listSubRegionStatistics","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[indicator]","in":"query","description":"Indicators, comma separated.","schema":{"type":"string","enum":["population","population-male","population-female","household-population","households","average-household-size"]}},{"name":"filter[period]","in":"query","description":"Reference year, e.g. 2024.","schema":{"type":"string"}},{"name":"filter[source]","in":"query","description":"Source, e.g. ubos-nphc-2024.","schema":{"type":"string"}}],"responses":{"200":{"description":"Figures for the unit","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/districts":{"get":{"tags":["Administrative units"],"summary":"List Districts","operationId":"listDistricts","parameters":[{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"filter[region]","in":"query","description":"Only units in this Region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subRegion]","in":"query","description":"Only units in this Sub-region (id; comma separated for several).","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, statistics, countiesCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[districts]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of Districts","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter, sort or include","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/districts/{id}":{"get":{"tags":["Administrative units"],"summary":"Get one district","operationId":"getDistrict","parameters":[{"$ref":"#/components/parameters/id"},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, statistics, countiesCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}}],"responses":{"200":{"description":"The district","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminUnit"},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/districts/{id}/children":{"get":{"tags":["Administrative units"],"summary":"List the Counties in a district","operationId":"listDistrictChildren","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"filter[region]","in":"query","description":"Only units in this Region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subRegion]","in":"query","description":"Only units in this Sub-region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[district]","in":"query","description":"Only units in this District (id; comma separated for several).","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, district, statistics, subCountiesCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[counties]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of child units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/districts/{id}/ancestors":{"get":{"tags":["Administrative units"],"summary":"List the ancestors of a district, from its region down","operationId":"listDistrictAncestors","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Ancestor units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/districts/{id}/history":{"get":{"tags":["History"],"summary":"Changes to a district: created, renamed, recoded, moved, retired","operationId":"listDistrictHistory","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Changes, oldest first","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/districts/{id}/statistics":{"get":{"tags":["Statistics"],"summary":"Figures for a district, such as its 2024 census population","operationId":"listDistrictStatistics","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[indicator]","in":"query","description":"Indicators, comma separated.","schema":{"type":"string","enum":["population","population-male","population-female","household-population","households","average-household-size"]}},{"name":"filter[period]","in":"query","description":"Reference year, e.g. 2024.","schema":{"type":"string"}},{"name":"filter[source]","in":"query","description":"Source, e.g. ubos-nphc-2024.","schema":{"type":"string"}}],"responses":{"200":{"description":"Figures for the unit","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/counties":{"get":{"tags":["Administrative units"],"summary":"List Counties","operationId":"listCounties","parameters":[{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"filter[region]","in":"query","description":"Only units in this Region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subRegion]","in":"query","description":"Only units in this Sub-region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[district]","in":"query","description":"Only units in this District (id; comma separated for several).","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, district, statistics, subCountiesCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[counties]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of Counties","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter, sort or include","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/counties/{id}":{"get":{"tags":["Administrative units"],"summary":"Get one county","operationId":"getCounty","parameters":[{"$ref":"#/components/parameters/id"},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, district, statistics, subCountiesCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}}],"responses":{"200":{"description":"The county","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminUnit"},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/counties/{id}/children":{"get":{"tags":["Administrative units"],"summary":"List the Sub-counties in a county","operationId":"listCountyChildren","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"filter[region]","in":"query","description":"Only units in this Region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subRegion]","in":"query","description":"Only units in this Sub-region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[district]","in":"query","description":"Only units in this District (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[county]","in":"query","description":"Only units in this County (id; comma separated for several).","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, district, county, statistics, parishesCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[sub-counties]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of child units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/counties/{id}/ancestors":{"get":{"tags":["Administrative units"],"summary":"List the ancestors of a county, from its region down","operationId":"listCountyAncestors","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Ancestor units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/counties/{id}/history":{"get":{"tags":["History"],"summary":"Changes to a county: created, renamed, recoded, moved, retired","operationId":"listCountyHistory","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Changes, oldest first","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/counties/{id}/statistics":{"get":{"tags":["Statistics"],"summary":"Figures for a county, such as its 2024 census population","operationId":"listCountyStatistics","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[indicator]","in":"query","description":"Indicators, comma separated.","schema":{"type":"string","enum":["population","population-male","population-female","household-population","households","average-household-size"]}},{"name":"filter[period]","in":"query","description":"Reference year, e.g. 2024.","schema":{"type":"string"}},{"name":"filter[source]","in":"query","description":"Source, e.g. ubos-nphc-2024.","schema":{"type":"string"}}],"responses":{"200":{"description":"Figures for the unit","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/sub-counties":{"get":{"tags":["Administrative units"],"summary":"List Sub-counties","operationId":"listSubCounties","parameters":[{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"filter[region]","in":"query","description":"Only units in this Region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subRegion]","in":"query","description":"Only units in this Sub-region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[district]","in":"query","description":"Only units in this District (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[county]","in":"query","description":"Only units in this County (id; comma separated for several).","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, district, county, statistics, parishesCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[sub-counties]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of Sub-counties","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter, sort or include","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/sub-counties/{id}":{"get":{"tags":["Administrative units"],"summary":"Get one sub-county","operationId":"getSubCounty","parameters":[{"$ref":"#/components/parameters/id"},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, district, county, statistics, parishesCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}}],"responses":{"200":{"description":"The sub-county","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminUnit"},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/sub-counties/{id}/children":{"get":{"tags":["Administrative units"],"summary":"List the Parishes in a sub-county","operationId":"listSubCountyChildren","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"filter[region]","in":"query","description":"Only units in this Region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subRegion]","in":"query","description":"Only units in this Sub-region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[district]","in":"query","description":"Only units in this District (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[county]","in":"query","description":"Only units in this County (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subCounty]","in":"query","description":"Only units in this Sub-county (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[ruralUrban]","in":"query","description":"RURAL or URBAN.","schema":{"type":"string","enum":["RURAL","URBAN"]}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, district, county, subCounty, statistics, villagesCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[parishes]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of child units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/sub-counties/{id}/ancestors":{"get":{"tags":["Administrative units"],"summary":"List the ancestors of a sub-county, from its region down","operationId":"listSubCountyAncestors","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Ancestor units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/sub-counties/{id}/history":{"get":{"tags":["History"],"summary":"Changes to a sub-county: created, renamed, recoded, moved, retired","operationId":"listSubCountyHistory","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Changes, oldest first","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/sub-counties/{id}/statistics":{"get":{"tags":["Statistics"],"summary":"Figures for a sub-county, such as its 2024 census population","operationId":"listSubCountyStatistics","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[indicator]","in":"query","description":"Indicators, comma separated.","schema":{"type":"string","enum":["population","population-male","population-female","household-population","households","average-household-size"]}},{"name":"filter[period]","in":"query","description":"Reference year, e.g. 2024.","schema":{"type":"string"}},{"name":"filter[source]","in":"query","description":"Source, e.g. ubos-nphc-2024.","schema":{"type":"string"}}],"responses":{"200":{"description":"Figures for the unit","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/parishes":{"get":{"tags":["Administrative units"],"summary":"List Parishes","operationId":"listParishes","parameters":[{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"filter[region]","in":"query","description":"Only units in this Region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subRegion]","in":"query","description":"Only units in this Sub-region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[district]","in":"query","description":"Only units in this District (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[county]","in":"query","description":"Only units in this County (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subCounty]","in":"query","description":"Only units in this Sub-county (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[ruralUrban]","in":"query","description":"RURAL or URBAN.","schema":{"type":"string","enum":["RURAL","URBAN"]}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, district, county, subCounty, statistics, villagesCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[parishes]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of Parishes","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter, sort or include","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/parishes/{id}":{"get":{"tags":["Administrative units"],"summary":"Get one parish","operationId":"getParish","parameters":[{"$ref":"#/components/parameters/id"},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, district, county, subCounty, statistics, villagesCount. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}}],"responses":{"200":{"description":"The parish","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminUnit"},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/parishes/{id}/children":{"get":{"tags":["Administrative units"],"summary":"List the Villages in a parish","operationId":"listParishChildren","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"filter[region]","in":"query","description":"Only units in this Region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subRegion]","in":"query","description":"Only units in this Sub-region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[district]","in":"query","description":"Only units in this District (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[county]","in":"query","description":"Only units in this County (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subCounty]","in":"query","description":"Only units in this Sub-county (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[parish]","in":"query","description":"Only units in this Parish (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[hhCodePrefix]","in":"query","description":"Household listing code prefix.","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, district, county, subCounty, parish, statistics. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[villages]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of child units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/parishes/{id}/ancestors":{"get":{"tags":["Administrative units"],"summary":"List the ancestors of a parish, from its region down","operationId":"listParishAncestors","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Ancestor units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/parishes/{id}/history":{"get":{"tags":["History"],"summary":"Changes to a parish: created, renamed, recoded, moved, retired","operationId":"listParishHistory","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Changes, oldest first","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/parishes/{id}/statistics":{"get":{"tags":["Statistics"],"summary":"Figures for a parish, such as its 2024 census population","operationId":"listParishStatistics","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[indicator]","in":"query","description":"Indicators, comma separated.","schema":{"type":"string","enum":["population","population-male","population-female","household-population","households","average-household-size"]}},{"name":"filter[period]","in":"query","description":"Reference year, e.g. 2024.","schema":{"type":"string"}},{"name":"filter[source]","in":"query","description":"Source, e.g. ubos-nphc-2024.","schema":{"type":"string"}}],"responses":{"200":{"description":"Figures for the unit","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/villages":{"get":{"tags":["Administrative units"],"summary":"List Villages","operationId":"listVillages","parameters":[{"name":"filter[id]","in":"query","description":"One or more ids, comma separated.","schema":{"type":"string"}},{"name":"filter[name]","in":"query","description":"Part of the name or alternate name (at least 2 characters).","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","description":"Portal slug, e.g. masaka-city; unique within the level and kept when the unit is renamed.","schema":{"type":"string"}},{"name":"filter[ubosCode]","in":"query","description":"Code as published by government (unique only within the parent unit, except districts).","schema":{"type":"string"}},{"name":"filter[updatedSince]","in":"query","description":"Only units created or changed since this ISO 8601 date-time, including units whose ancestors moved or were renamed (their ancestor ids or path changed). Add filter[status]=all to see units retired since.","schema":{"type":"string","format":"date-time"}},{"name":"filter[validOn]","in":"query","description":"Units valid on this date (default: today). Use a past date to see the hierarchy as it was.","schema":{"type":"string","format":"date"}},{"name":"filter[status]","in":"query","description":"current (default), former (abolished, merged or split), future (not yet in force) or all. An empty value is rejected.","schema":{"type":"string","enum":["current","former","future","all"]}},{"name":"filter[region]","in":"query","description":"Only units in this Region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subRegion]","in":"query","description":"Only units in this Sub-region (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[district]","in":"query","description":"Only units in this District (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[county]","in":"query","description":"Only units in this County (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[subCounty]","in":"query","description":"Only units in this Sub-county (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[parish]","in":"query","description":"Only units in this Parish (id; comma separated for several).","schema":{"type":"string"}},{"name":"filter[hhCodePrefix]","in":"query","description":"Household listing code prefix.","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-separated fields; prefix with - for descending.","schema":{"type":"string","example":"name"}},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, district, county, subCounty, parish, statistics. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}},{"name":"fields[villages]","in":"query","description":"Sparse fieldset: only return these attributes.","schema":{"type":"string","example":"name,path"}},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"A page of Villages","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid filter, sort or include","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/villages/{id}":{"get":{"tags":["Administrative units"],"summary":"Get one village","operationId":"getVillage","parameters":[{"$ref":"#/components/parameters/id"},{"name":"include","in":"query","description":"Comma-separated: region, subRegion, district, county, subCounty, parish, statistics. Ancestors appear in \"included\"; counts in meta.childrenCount.","schema":{"type":"string"}}],"responses":{"200":{"description":"The village","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminUnit"},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/villages/{id}/ancestors":{"get":{"tags":["Administrative units"],"summary":"List the ancestors of a village, from its region down","operationId":"listVillageAncestors","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Ancestor units","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AdminUnit"}},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/villages/{id}/history":{"get":{"tags":["History"],"summary":"Changes to a village: created, renamed, recoded, moved, retired","operationId":"listVillageHistory","parameters":[{"$ref":"#/components/parameters/id"},{"$ref":"#/components/parameters/pageNumber"},{"$ref":"#/components/parameters/pageSize"},{"$ref":"#/components/parameters/format"}],"responses":{"200":{"description":"Changes, oldest first","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}},"application/json":{"schema":{"type":"array","items":{"type":"object"}}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/villages/{id}/statistics":{"get":{"tags":["Statistics"],"summary":"Figures for a village, such as its 2024 census population","operationId":"listVillageStatistics","parameters":[{"$ref":"#/components/parameters/id"},{"name":"filter[indicator]","in":"query","description":"Indicators, comma separated.","schema":{"type":"string","enum":["population","population-male","population-female","household-population","households","average-household-size"]}},{"name":"filter[period]","in":"query","description":"Reference year, e.g. 2024.","schema":{"type":"string"}},{"name":"filter[source]","in":"query","description":"Source, e.g. ubos-nphc-2024.","schema":{"type":"string"}}],"responses":{"200":{"description":"Figures for the unit","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":["object","array"]},"included":{"type":"array"},"links":{"type":"object"},"meta":{"type":"object"}}}}}},"404":{"description":"Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit exceeded; retry after the Retry-After header","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"Optional free API key for higher rate limits."}},"parameters":{"pageNumber":{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1}},"pageSize":{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},"id":{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},"format":{"name":"format","in":"query","description":"jsonapi (default, one page), json or csv (the whole filtered list, up to 100,000 rows).","schema":{"type":"string","enum":["jsonapi","json","csv"],"default":"jsonapi"}}},"schemas":{"AdminUnit":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string","example":"1"},"type":{"type":"string","enum":["regions","sub-regions","districts","counties","sub-counties","parishes","villages"]},"attributes":{"type":"object","properties":{"name":{"type":"string","example":"KALANGALA"},"slug":{"type":"string","example":"kalangala","description":"Unique within the level; the address of the place on the portal."},"displayName":{"type":"string","example":"Kalangala"},"alternateName":{"type":["string","null"]},"level":{"type":"string","example":"district"},"ubosCode":{"type":["string","null"],"example":"101"},"ruralUrban":{"type":"string","description":"Parishes only"},"hhCodePrefix":{"type":"string","description":"Villages only"},"identifiers":{"type":"object","description":"Identifiers in other schemes, keyed by scheme: iso3166-2, cod-ab-pcode (OCHA COD-AB), wikidata, osm-relation, geonames.","additionalProperties":{"type":"string"},"example":{"cod-ab-pcode":"UG1006","geonames":"443338","iso3166-2":"UG-101","osm-relation":"3501887","wikidata":"Q867219"}},"path":{"type":"array","description":"Ancestors from region down.","items":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"slug":{"type":["string","null"]},"name":{"type":"string"}}}},"status":{"type":"string","enum":["current","former","future"]},"validFrom":{"type":["string","null"],"format":"date","description":"When the unit came into force, where known."},"validTo":{"type":["string","null"],"format":"date","description":"When the unit was abolished, merged or split."},"updatedAt":{"type":["string","null"],"format":"date-time"}}},"relationships":{"type":"object"},"links":{"type":"object","description":"self (this resource in the API), html (its page on the portal), and related lists."},"meta":{"type":"object"}}},"Problem":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"errors":{"type":"object"}}}}}}