Skip to main content
CDE means the Catholic Diocese of Enugu Education Board. Kralis exposes a read-only result feed for CDE consumers. The CDE feed is currently public at the API layer as a temporary arrangement. The endpoint includes school-scoped data selected by the school acronym, so treat school acronyms and returned result data as sensitive integration inputs. This public access is expected to be tightened when the CDE integration contract is formalized.

Integration directory

The shared public integration directory is available at:
It advertises the CDE and Klapp API entry points:

Integration index

The public index returns the CDE integration identifier, the school-scoped result path template, and an example path:

Route overview

Required query parameters:
Example:
The response includes the selected school context, students, subjects, scores, totals, averages, and result metadata. Class aliases such as jss1, term aliases such as first, and the full academic year name are supported by the endpoint.

Response shape

Each student’s scores contains the subject name and the CDE-compatible test, exam, and total values. student_id is the Kralis username, not a Ministry identifier. The metadata.class value is the normalized Kralis class code; class_full_name is the display name.

Query rules and behavior

  • class is required; classe is accepted as an alias.
  • class is normalized by removing spaces and punctuation and converting to lowercase. primary1 and basic1 resolve to p1; jss1 and sss2 resolve to js1 and ss2.
  • term is required and accepts 1, 2, 3, ordinal forms, names such as first, and forms with an optional term prefix or suffix such as term 1 and 1st term.
  • year is required. The endpoint first tries a case-insensitive exact match against Year.year_name, then accepts a unique case-insensitive prefix. If a prefix matches more than one year, the response is a validation error and the full year name is required. The resolved year scopes the returned results.
  • The class and year must belong to the school resolved from school_acronym.
  • The term must exist for the selected school and is resolved to First Term, Second Term, or Third Term.
  • Only existing Kralis results are returned; this endpoint does not create or update results.
  • Results are ordered by student surname and first name.
  • student_id is the student’s Kralis username. It is not a CDE- or school-issued identifier.
  • subject_count is the number of score rows returned for that student. If no score rows are available, average is returned as 0.
  • The response is cached for one hour, so a just-updated score may not appear immediately.
The legacy /srms/<school_acronym>/ result alias remains available for compatible consumers but is not the preferred contract. Use metadata to confirm that the response belongs to the requested school, class, academic year, and term before displaying or importing it. Because responses are cached for one hour, clients should allow for a delay after a result is updated in Kralis before requesting it again.