API reference

Endpoints, verified against the running services.

Every route below is transcribed from the product’s own router and every sample response is trimmed from a real call made on 12 September 2026. Where a service is not deployed, it says so.

GhanaCalendar

API live

Ghana public holidays and deterministic working-day arithmetic.

Removes: Stop hand-maintaining a holiday array copied from a news article, and stop guessing whether a settlement date lands on a working day.

https://api-calendar.digitalghana.dev · Web · Source

MethodPathSummary
GET/healthService status and dataset version.
GET/v1/holidaysHoliday occurrences for a year, with source IDs and confirmation status.
GET/v1/working-dayWhether a single date is a working day in Africa/Accra.
GET/v1/next-working-dayThe next working day on or after a date.
GET/v1/previous-working-dayThe previous working day on or before a date.
GET/v1/add-working-daysAdd or subtract a number of working days.
GET/v1/working-days-betweenEnd-exclusive working-day count between two dates.
POST/graphqlConstrained holidays and isWorkingDay operations.

Request

curl -s 'https://api-calendar.digitalghana.dev/v1/working-day?date=2026-03-06'

Response (trimmed)

{
  "date": "2026-03-06",
  "holiday": {
    "id": "independence-2026",
    "name": "Independence Day",
    "date": "2026-03-06",
    "kind": "statutory",
    "status": "confirmed",
    "sourceId": "mint-2026-calendar"
  },
  "timezone": "Africa/Accra",
  "workingDay": false
}

Published boundaryMovable Islamic dates stay null until the Ministry of the Interior publishes an official notice. The service never guesses a date.

GhanaCodes

API live

Exact, date-aware resolution of Ghana identifier namespaces.

Removes: Stop fuzzy-matching district names between two spreadsheets and hoping the join was right.

https://api-codes.digitalghana.dev · Web · Source

MethodPathSummary
GET/healthService status and code count.
GET/v1/namespacesRegistered identifier namespaces and their authority.
GET/v1/resolve/{namespace}/{code}Resolve one code within a namespace and effective date.
GET/v1/crosswalkMap an entity between namespaces by canonical entity ID.
POST/v1/bulk-resolveDeterministically ordered bulk resolution.
POST/graphqlConstrained resolution operations.

Request

curl -s 'https://api-codes.digitalghana.dev/v1/namespaces'

Response (trimmed)

{
  "namespaces": [
    {
      "id": "gss-phc-2021-region",
      "name": "GSS 2021 PHC region code",
      "authority": "Ghana Statistical Service",
      "entityType": "region"
    }
  ]
}

Published boundaryNo fuzzy matching, ever. An ambiguous lookup returns sorted candidates with an `ambiguous` outcome rather than a guess.

GhanaGov Registry

API live

Source-linked public institutions and official service entry points.

Removes: Stop scraping ministry websites to find out which agency owns a service, and which URL is the real one.

https://api-gov.digitalghana.dev · Web · Source

MethodPathSummary
GET/healthService status, institution and service counts.
GET/v1/institutionsVerified institutions with aliases, hierarchy and source IDs.
GET/v1/institutions/{id}A single institution with its verification evidence.
GET/v1/servicesOfficial service entry points linked to their institution.
GET/v1/searchSearch institutions by name, acronym or alias.
POST/graphqlConstrained registry queries.

Request

curl -s 'https://api-gov.digitalghana.dev/v1/institutions'

Response (trimmed)

{
  "coverage": "verified subset",
  "institutions": [
    {
      "id": "ministry-interior",
      "code": "MINTER",
      "name": "Ministry of the Interior",
      "acronym": "MINTER",
      "type": "ministry",
      "parentId": null,
      "status": "active",
      "officialUrl": "https://www.mint.gov.gh/",
      "aliases": ["Interior Ministry"],
      "sourceIds": ["ohcs-2023-apr", "ohcs-useful-links"],
      "verifiedAt": "2026-09-01"
    }
  ]
}

Published boundaryA deliberately small verified subset. It never proxies a transaction, collects a credential or reproduces a government form.

GhanaSchools

API live

Source-linked education-institution registry.

Removes: Stop maintaining your own list of Ghanaian universities with inconsistent names, acronyms and regions.

https://api-schools.digitalghana.dev · Web · Source

MethodPathSummary
GET/healthService status, dataset version and record count.
GET/v1/schoolsVerified institutions with aliases, region and provenance.
GET/v1/schools/{id}A single institution with field-level provenance.
POST/graphqlConstrained directory queries.

Request

curl -s 'https://api-schools.digitalghana.dev/v1/schools'

Response (trimmed)

{
  "count": 16,
  "coverage": "GTEC-listed public-university verified subset",
  "data": [
    {
      "id": "aamusted",
      "name": "Akenten Appiah-Menka University of Skills Training and Entrepreneurial Development",
      "aliases": ["AAMUSTED"],
      "type": "PUBLIC_UNIVERSITY",
      "ownership": "PUBLIC",
      "locality": "Kumasi",
      "region": "Ashanti",
      "ghanaGeoPlaceId": "01KDVDNA003BF7FQZ9WWE8VPWE"
    }
  ]
}

Published boundaryNo personal, student, contact, admissions or inferred quality data is published. Never a league table.

GhanaDataset Registry

API live

Metadata catalogue of Ghanaian public datasets and how to reach them.

Removes: Stop losing an afternoon working out whether a dataset exists, who publishes it, and what its licence permits.

https://api-datasets.digitalghana.dev · Web · Source

MethodPathSummary
GET/healthService status, dataset version and record counts.
GET/v1/datasetsCatalogue records with publisher, topic, licence and access path.
GET/v1/datasets/{id}A single catalogue record with access conditions.
POST/graphqlConstrained catalogue queries.

Request

curl -s 'https://api-datasets.digitalghana.dev/v1/datasets'

Response (trimmed)

{
  "count": 10,
  "coverage": "metadata-only verified subset",
  "data": [
    {
      "id": "gss-phc-2021-microdata",
      "title": "2021 Population and Housing Census Public Use Microdata",
      "publisher": "Ghana Statistical Service",
      "topic": "Population",
      "licence": "GSS study-specific terms"
    }
  ]
}

Published boundaryMetadata and links only. No source rows or microdata are ever copied into this registry.

GhanaEssential

API live

Verified emergency and essential-service contact numbers.

Removes: Stop hardcoding an emergency number you found on a blog, with no record of when it was last checked.

https://api-essential.digitalghana.dev · Web · Source

MethodPathSummary
GET/healthService status and review date.
GET/v1/contactsVerified contacts with availability, source and review date.
GET/v1/offline.jsonIdentical payload for offline bundling.

Request

curl -s 'https://api-essential.digitalghana.dev/v1/contacts'

Response (trimmed)

{
  "version": "2026.09.01-beta.1",
  "reviewedAt": "2026-09-01",
  "warning": "If life or property is in immediate danger, call 112. Network and agency availability can change; this directory does not dispatch help.",
  "contacts": [
    {
      "id": "national-emergency-112",
      "service": "National Emergency",
      "category": "General emergency",
      "numbers": ["112"],
      "availability": "24/7",
      "status": "VERIFIED"
    }
  ]
}

Published boundaryA directory of published numbers. It does not dispatch help, take incident reports, or collect location or personal data.

GhanaValidate

No API by design

Deterministic Ghana-specific input validation and normalization.

Removes: Stop writing the same brittle Ghanaian phone-number regex in every project, in every language, slightly differently.

https://validate.digitalghana.dev · Web · Source

Published boundaryPackage-first and deliberately offline: it validates syntax and returns reference candidates. It never verifies identity, ownership, reachability, authenticity or legal status.

GhanaGeo

API live

Canonical Ghana geography, search, boundaries and SDKs.

Removes: Stop reconciling three different spellings of the same town across your database, your analytics and your delivery partner.

https://api-geo.digitalghana.dev · Web · Source

MethodPathSummary
GET/healthService status and dataset version.
GET/v1/regionsThe 16 regions, each with provenance and dataset version.
GET/v1/districtsDistricts with their parent region.
GET/v1/placesPopulated places with region and district assignment.
GET/v1/searchRanked place search returning a match reason, never a silent guess.
GET/v1/reverseResolve a lat/lng to its region, district and nearby places.
GET/v1/nearbyPlaces nearest a lat/lng, ordered by distance.
GET/v1/roadsNamed roads from the OpenStreetMap extract (ODbL).
GET/v1/poisPoints of interest from the OpenStreetMap extract (ODbL).
POST/graphqlConstrained geography queries.

Request

curl -s 'https://api-geo.digitalghana.dev/v1/reverse?lat=5.6037&lng=-0.1870'

Response (trimmed)

{
  "region": {
    "id": "01KDVDNA00A63NSRPVSM94SCQD",
    "name": "Greater Accra"
  },
  "district": {
    "id": "01KDVDNA00KQMZMSB1M8NC530M",
    "name": "Ayawaso West Municipal"
  }
}

Published boundaryRecords are REFERENCE-grade pending reconciliation against an official GSS source, and carry that status openly. Search and reverse lookups return candidates with a match reason rather than asserting one right answer. GhanaPostGPS digital addresses are never redistributed.