REST /api/v1/certifications 7 endpoints
GET /api/v1/certifications/api/v1/certifications

List certification records

Public

Response Example

{
  "data": [
    {
      "record_id": "cert_001abc",
      "mentor_id": "mentor_a1b2c3",
      "issued_date": "2024-03-10T00:00:00Z",
      "expiry_date": "2026-03-10T00:00:00Z",
      "issuer": "Frivillig Sentralen",
      "course_code": "PM-BASIC-2024",
      "is_current": false,
      "created_at": "2024-03-10T09:00:00Z"
    },
    {
      "record_id": "cert_002def",
      "mentor_id": "mentor_a1b2c3",
      "issued_date": "2026-01-20T00:00:00Z",
      "expiry_date": "2028-01-20T00:00:00Z",
      "issuer": "Frivillig Sentralen",
      "course_code": "PM-ADVANCED-2026",
      "is_current": true,
      "created_at": "2026-01-20T11:30:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 2
  }
}
GET /api/v1/certifications/api/v1/certifications/:id

Get certification record by ID

Public

Response Example

{
  "record_id": "cert_002def",
  "mentor_id": "mentor_a1b2c3",
  "issued_date": "2026-01-20T00:00:00Z",
  "expiry_date": "2028-01-20T00:00:00Z",
  "issuer": "Frivillig Sentralen",
  "course_code": "PM-ADVANCED-2026",
  "notes": "Completed refresher module",
  "is_current": true,
  "created_at": "2026-01-20T11:30:00Z"
}
POST /api/v1/certifications/api/v1/certifications

Save a new certification record

Public

Request Example

{
  "mentor_id": "mentor_a1b2c3",
  "issued_date": "2026-03-26T00:00:00Z",
  "expiry_date": "2028-03-26T00:00:00Z",
  "issuer": "Frivillig Sentralen",
  "course_code": "PM-ADVANCED-2026",
  "notes": "Renewed on schedule"
}

Response Example

{
  "record_id": "cert_003ghi",
  "mentor_id": "mentor_a1b2c3",
  "issued_date": "2026-03-26T00:00:00Z",
  "expiry_date": "2028-03-26T00:00:00Z",
  "issuer": "Frivillig Sentralen",
  "course_code": "PM-ADVANCED-2026",
  "is_current": true,
  "created_at": "2026-03-26T10:00:00Z"
}
PUT /api/v1/certifications/api/v1/certifications/:id

Update a certification record

Public

Request Example

{
  "expiry_date": "2028-06-01T00:00:00Z",
  "notes": "Expiry extended after appeal"
}

Response Example

{
  "record_id": "cert_002def",
  "mentor_id": "mentor_a1b2c3",
  "expiry_date": "2028-06-01T00:00:00Z",
  "notes": "Expiry extended after appeal",
  "is_current": true,
  "updated_at": "2026-03-26T10:30:00Z"
}
DELETE /api/v1/certifications/api/v1/certifications/:id

Delete a certification record

Public

Response Example

{
  "deleted": true,
  "record_id": "cert_001abc"
}
GET /api/v1/certifications/api/v1/certifications/mentor/:mentor_id/latest

Get the most recent certification for a mentor

Public

Response Example

{
  "record_id": "cert_002def",
  "mentor_id": "mentor_a1b2c3",
  "issued_date": "2026-01-20T00:00:00Z",
  "expiry_date": "2028-01-20T00:00:00Z",
  "course_code": "PM-ADVANCED-2026",
  "is_current": true
}
GET /api/v1/certifications/api/v1/certifications/mentor/:mentor_id/history

Get full certification history for a mentor

Public

Response Example

{
  "data": [
    {
      "record_id": "cert_001abc",
      "issued_date": "2024-03-10T00:00:00Z",
      "expiry_date": "2026-03-10T00:00:00Z",
      "course_code": "PM-BASIC-2024",
      "is_current": false
    },
    {
      "record_id": "cert_002def",
      "issued_date": "2026-01-20T00:00:00Z",
      "expiry_date": "2028-01-20T00:00:00Z",
      "course_code": "PM-ADVANCED-2026",
      "is_current": true
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 2
  }
}

Additional Metadata

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