How many pre-tertiary schools each district has, counted from the Ministry of Education's EMIS school list as served on 2026-09-26: 33488 schools in 261 districts, split by level (basic — kindergarten, primary and junior high together, as EMIS does not separate them — senior high and TVET) and by ownership (public, private registered, private not registered), with level-by-ownership counts. These are counts only; no individual school is published. A few schools with no level or sector are counted as not stated. Guan District (created 2023) has its own row with no district in the 260-district set. Sourced from the Ministry of Education, Ghana, Education Management Information System (EMIS); published by the Ministry, all rights reserved. 261 records.
Every column this dataset returns, with its type. This is the shape of the API response.
| Field | Type |
|---|---|
| region | VARCHAR(80) NOT NULL |
| district | VARCHAR(120) |
| schools_total | INTEGER NOT NULL |
| basic_schools | INTEGER NOT NULL |
| shs_schools | INTEGER NOT NULL |
| tvet_schools | INTEGER NOT NULL |
| level_not_stated | INTEGER NOT NULL |
| public_schools | INTEGER NOT NULL |
| private_schools | INTEGER NOT NULL |
| private_registered_schools | INTEGER NOT NULL |
| private_unregistered_schools | INTEGER NOT NULL |
| ownership_not_stated | INTEGER NOT NULL |
| basic_public | INTEGER NOT NULL |
| basic_private | INTEGER NOT NULL |
| shs_public | INTEGER NOT NULL |
| shs_private | INTEGER NOT NULL |
| tvet_public | INTEGER NOT NULL |
| tvet_private | INTEGER NOT NULL |
| source_district_name | VARCHAR(120) |
| snapshot_date | DATE NOT NULL |
| source | TEXT |
| regionVARCHAR(80) NOT NULL | districtVARCHAR(120) | schools totalINTEGER NOT NULL | basic schoolsINTEGER NOT NULL | shs schoolsINTEGER NOT NULL | tvet schoolsINTEGER NOT NULL | level not statedINTEGER NOT NULL | public schoolsINTEGER NOT NULL | private schoolsINTEGER NOT NULL | private registered schoolsINTEGER NOT NULL | private unregistered schoolsINTEGER NOT NULL | ownership not statedINTEGER NOT NULL | basic publicINTEGER NOT NULL | basic privateINTEGER NOT NULL | shs publicINTEGER NOT NULL | shs privateINTEGER NOT NULL | tvet publicINTEGER NOT NULL | tvet privateINTEGER NOT NULL | source district nameVARCHAR(120) | snapshot dateDATE NOT NULL | sourceTEXT |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Ahafo Region | Asunafo North Municipal | 176 | 169 | 4 | 3 | 0 | 142 | 34 | 33 | 1 | 0 | 137 | 32 | 2 | 2 | 3 | 0 | Asunafo North Municipal | 2026-09-26 | Ministry of Education, Ghana: Education Management Information System (EMIS) |
| Ahafo Region | Asunafo South | 160 | 158 | 2 | 0 | 0 | 135 | 25 | 21 | 4 | 0 | 133 | 25 | 2 | 0 | 0 | 0 | Asunafo South | 2026-09-26 | Ministry of Education, Ghana: Education Management Information System (EMIS) |
| Ahafo Region | Asutifi North | 103 | 99 | 3 | 1 | 0 | 78 | 25 | 20 | 5 | 0 | 74 | 25 | 3 | 0 | 1 | 0 | Asutifi North | 2026-09-26 | Ministry of Education, Ghana: Education Management Information System (EMIS) |
| Ahafo Region | Asutifi South | 103 | 100 | 3 | 0 | 0 | 83 | 20 | 18 | 2 | 0 | 80 | 20 | 3 | 0 | 0 | 0 | Asutifi South | 2026-09-26 | Ministry of Education, Ghana: Education Management Information System (EMIS) |
| Ahafo Region | Tano North Municipal | 124 | 117 | 5 | 2 | 0 | 99 | 25 | 24 | 1 | 0 | 92 | 25 | 5 | 0 | 2 | 0 | Tano North Municipal | 2026-09-26 | Ministry of Education, Ghana: Education Management Information System (EMIS) |
256 more rows — see the plans
See the plansGET connect.apighana.com/api/data/schools_by_district
Cite this dataset and the organisation its records come from (Ministry of Education, Ghana: Education Management Information System). Datasets are updated, so keep the date you accessed it in the citation. Last updated from the source on Sep 26, 2026.
API Ghana. (2026). Schools by district (Version 1.0) [Data set, compiled from Ministry of Education, Ghana: Education Management Information System]. Retrieved October 1, 2026, from https://apighana.com/datasets/schools-by-district
curl "https://connect.apighana.com/api/data/schools_by_district?page=1&limit=20" \ -H "X-API-Key: $APIGHANA_KEY"
const response = await fetch(
"https://connect.apighana.com/api/data/schools_by_district?page=1&limit=20",
{ headers: { "X-API-Key": process.env.APIGHANA_KEY } },
);
const { data, meta } = await response.json();import os, requests
response = requests.get(
"https://connect.apighana.com/api/data/schools_by_district",
headers={"X-API-Key": os.environ["APIGHANA_KEY"]},
params={"page": 1, "limit": 20},
)
rows = response.json()["data"]