Badge Evaluation Service
API Contract
REST
/api/v1/badge-evaluations
3 endpoints
POST
/api/v1/badge-evaluations/api/v1/badge-evaluations
Trigger badge evaluation for a peer mentor — runs all criteria checks and awards newly earned badges
Auth Required
adminsystem
Request Example
{
"peer_mentor_id": "pm-kari-001",
"organisation_id": "org-nhf-oslo"
}
Response Example
{
"peer_mentor_id": "pm-kari-001",
"organisation_id": "org-nhf-oslo",
"evaluated_at": "2026-03-26T14:00:00Z",
"badges_evaluated": 8,
"newly_awarded": [
{
"id": "earned-016",
"badge_definition_id": "bdg-def-004",
"badge_name": "10 Sessions",
"awarded_at": "2026-03-26T14:00:05Z"
}
],
"badges_revoked": [],
"no_change_count": 7
}
POST
/api/v1/badge-evaluations/api/v1/badge-evaluations/check-criteria
Check whether a peer mentor meets criteria for a specific badge definition
Auth Required
adminsystem
Request Example
{
"badge_definition_id": "bdg-def-005",
"peer_mentor_id": "pm-kari-001",
"organisation_id": "org-nhf-oslo"
}
Response Example
{
"badge_definition_id": "bdg-def-005",
"peer_mentor_id": "pm-kari-001",
"criteria_met": false,
"criteria": {
"type": "training_completion_count",
"threshold": 10,
"current_value": 7
},
"gap": 3,
"evaluated_at": "2026-03-26T14:01:00Z"
}
GET
/api/v1/badge-evaluations/api/v1/badge-evaluations/:peer_mentor_id
Get evaluation history for a peer mentor
Auth Required
admincoordinator
Response Example
{
"data": [
{
"id": "eval-009",
"peer_mentor_id": "pm-kari-001",
"organisation_id": "org-nhf-oslo",
"evaluated_at": "2026-03-26T14:00:00Z",
"trigger": "edge_function",
"newly_awarded_count": 1,
"revoked_count": 0
},
{
"id": "eval-008",
"peer_mentor_id": "pm-kari-001",
"organisation_id": "org-nhf-oslo",
"evaluated_at": "2026-03-19T09:15:00Z",
"trigger": "manual",
"newly_awarded_count": 0,
"revoked_count": 0
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 9
}
}