Skip to main content
TRCN

TRCN Teacher Verification API

A partner integration guide for approved examination bodies and government agencies that need to confirm TRCN teacher standing before examiner, invigilator, supervisor, or posting workflows.

What the API answers

Is this person a TRCN-verified teacher?

  • Have they passed PQE?
  • Do they hold a TRCN certificate?
  • Do they hold a professional licence?
  • Is the licence valid, expired, due for renewal, suspended, or revoked?

Quickstart

Use the primary endpoint for single-record checks. Send the least sensitive identifier that can uniquely match the teacher, preferably TRCN registration number or Teacher ID.

cURL request
curl https://api.trcn.gov.ng/v1/inter-agency/teacher-verification \
  -H "Authorization: Bearer $TRCN_PARTNER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 9d6d3c30-8bd1-4d62-9ec6-17c03d44f3a7" \
  -d '{
    "identifier": {
      "regNo": "TRCN/AB/001234"
    },
    "purpose": "WAEC_EXAMINER_REGISTRATION",
    "context": {
      "partnerReference": "WAEC-EXAMINER-2026-000481",
      "examBody": "WAEC",
      "examYear": 2026,
      "role": "Examiner",
      "subjectCode": "ENG"
    }
  }'
Signed response envelope
{
  "verificationId": "ver_8f4b7d6c9a1e4f23b1c0a992",
  "verifiedAt": "2026-05-04T18:34:11.229Z",
  "issuer": "https://api.trcn.gov.ng",
  "audience": "waec",
  "result": {
    "found": true,
    "source": "new_system",
    "verifiedByTrcn": true,
    "eligibleForExamDuty": true,
    "professionalStanding": "ACTIVE",
    "teacher": {
      "name": "Okafor Adaeze Ngozi",
      "tId": 70123,
      "state": "Lagos",
      "category": "A"
    },
    "pqe": {
      "status": "PASSED",
      "examNumber": "PQE-001",
      "gradeLabel": "Passed",
      "source": "result"
    },
    "certificate": {
      "status": "VERIFIED",
      "regNo": "TRCN/AB/001234",
      "issueDate": "2026-01-10"
    },
    "license": {
      "status": "VALID",
      "expiryDate": "2029-01-10",
      "daysRemaining": 981,
      "validityYears": 3,
      "renewalState": "CURRENT"
    },
    "disciplinary": {
      "status": "CLEAR",
      "source": "credential_records"
    },
    "reasons": ["PQE_PASSED", "CERTIFICATE_VERIFIED", "LICENSE_VALID"]
  },
  "signature": "eyJhbGciOiJSUzI1NiIsImtpZCI6InRyY24taW50ZXJhZ2VuY3ktdjEifQ...",
  "signatureKid": "trcn-interagency-v1"
}

Authentication and signed responses

Partner access is not self-service because the API can disclose regulated professional standing. TRCN issues credentials after partner approval, scope assignment, and UAT.

Partner credentials
Use Bearer API keys or mTLS certificates issued for a named partner system.
Purpose-limited calls
Every request must declare a permitted purpose such as WAEC examiner registration or NECO e-Posting.
Verify the envelope
Responses include a JWS signature. Fetch JWKS and verify issuer, audience, and key id.
Node.js verification example
import { jwtVerify, createRemoteJWKSet } from "jose";

const jwks = createRemoteJWKSet(
  new URL("https://api.trcn.gov.ng/v1/inter-agency/.well-known/jwks.json")
);

const response = await fetch("https://api.trcn.gov.ng/v1/inter-agency/teacher-verification", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.TRCN_PARTNER_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID()
  },
  body: JSON.stringify({
    identifier: { nin: "12345678901" },
    purpose: "NECO_SUPERVISOR_RECRUITMENT",
    context: {
      partnerReference: "NECO-SUP-2026-01442",
      examBody: "NECO",
      examYear: 2026,
      role: "Supervisor"
    }
  })
});

const envelope = await response.json();
await jwtVerify(envelope.signature, jwks, {
  issuer: "https://api.trcn.gov.ng",
  audience: "neco"
});

if (envelope.result.eligibleForExamDuty) {
  // Continue examiner or supervisor workflow.
}

Endpoints and partner purposes

The API is versioned in the URL and returns JSON. Batch calls accept up to 100 records and should include idempotency keys for safe retry.

MethodPathUse
POST/v1/inter-agency/teacher-verificationPrimary teacher standing check
POST/v1/inter-agency/eligibility-checkCompatibility alias for older integrations
POST/v1/inter-agency/batchBatch verification, maximum 100 records
GET/v1/inter-agency/.well-known/jwks.jsonPublic keys for response verification
GET/v1/inter-agency/healthPublic service health check

Supported WAEC and NECO purposes

WAEC_EXAMINER_REGISTRATIONWAEC_MARKING_VENUE_UPLOADWAEC_MARKING_INVITATIONWAEC_CURRENT_EXAMINER_RECHECKNECO_SUPERVISOR_RECRUITMENTNECO_EPOSTING_ASSIGNMENTNECO_SUPERVISOR_APPOINTMENT

Professional standing statuses

Partners should drive their workflow from eligibleForExamDuty and keep professionalStanding for audit, reporting, and manual review queues.

StandingEligibleMeaning
ACTIVEYesPQE passed, certificate verified, licence valid.
RENEWAL_DUEYesLicence is still valid but close to renewal.
EXPIREDNoTRCN licence has expired.
CERTIFIED_UNLICENSEDNoCertificate exists but no valid licence was found.
PQE_FAILEDNoCandidate did not pass PQE.
PQE_NOT_FOUNDNoNo digital PQE pass or trusted legacy substitute was found.
REVOKEDNoCredential record indicates revocation.
SUSPENDEDNoCredential record indicates suspension.
NOT_FOUNDNoNo matching TRCN teacher record was found.

Production checklist

These are the integration rules TRCN expects partner teams to meet before production traffic is enabled.

Retry safely

Use Idempotency-Key on POST requests and exponential backoff on 429 or transient 5xx responses.

Protect teacher data

Never expose API keys in browser code. Store only the minimum response fields needed for the exam workflow.

Use typed integration code

Validate request and response schemas in the partner application, and reject unknown professional standing values.

Keep an audit trail

Persist verificationId, partnerReference, purpose, timestamp, and professionalStanding for later review.

Need access?

Contact TRCN with your organisation name, technical contact, intended use case, expected request volume, and preferred identifiers. Credentials are issued only to approved partners.

For public teacher checks without partner credentials, use Search the Register.