REST /api/v1/certification-status 5 endpoints
GET /api/v1/certification-status/api/v1/certification-status

List derived certification statuses for all mentors in an org

Public

Response Example

{
  "data": [
    {
      "mentor_id": "mentor_a1b2c3",
      "status": "active",
      "is_suppressed_from_public": false,
      "days_until_expiry": 234,
      "is_within_warning_window": false
    },
    {
      "mentor_id": "mentor_d4e5f6",
      "status": "warning",
      "is_suppressed_from_public": false,
      "days_until_expiry": 15,
      "is_within_warning_window": true
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 48
  }
}
GET /api/v1/certification-status/api/v1/certification-status/:mentor_id

Get derived certification status for a specific mentor

Public

Response Example

{
  "mentor_id": "mentor_a1b2c3",
  "status": "active",
  "is_suppressed_from_public": false,
  "expiry_date": "2028-01-20T00:00:00Z",
  "days_until_expiry": 665,
  "is_within_warning_window": false,
  "warning_threshold_days": 30
}
POST /api/v1/certification-status/api/v1/certification-status/derive

Derive status from supplied expiry date and paused flag (stateless computation)

Public

Request Example

{
  "expiry_date": "2026-04-10T00:00:00Z",
  "is_paused": false,
  "is_hlf": false,
  "threshold_days": 30
}

Response Example

{
  "status": "warning",
  "days_until_expiry": 15,
  "is_within_warning_window": true,
  "is_suppressed_from_public": false
}
PUT /api/v1/certification-status/api/v1/certification-status/:mentor_id

Recompute and persist derived status for a mentor

Public

Request Example

{
  "force_recompute": true
}

Response Example

{
  "mentor_id": "mentor_a1b2c3",
  "previous_status": "warning",
  "new_status": "active",
  "recomputed_at": "2026-03-26T10:00:00Z"
}
DELETE /api/v1/certification-status/api/v1/certification-status/:mentor_id

Clear cached derived status (forces recompute on next fetch)

Public

Response Example

{
  "cleared": true,
  "mentor_id": "mentor_a1b2c3"
}

Additional Metadata

{
  "contract_summary": {
    "total_contracts": 410,
    "total_endpoints": 2416,
    "api_styles_used": [
      "rest"
    ]
  },
  "generated_at": "2026-03-26T06:55:53.316Z"
}