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
  }
}

Additional Metadata

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