REST /api/v1/expiry-notifications 5 endpoints
GET /api/v1/expiry-notifications/api/v1/expiry-notifications

List expiry notification records. Filterable by mentor, coordinator, and status.

Public

Response Example

{
  "data": [
    {
      "notification_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "mentor_id": "mentor_sarah_chen",
      "coordinator_id": "coord_maya_patel",
      "threshold": "30_day",
      "expiry_date": "2026-04-15T00:00:00Z",
      "status": "active",
      "sent_at": "2026-03-16T08:00:00Z",
      "acknowledged_at": null,
      "created_at": "2026-03-16T08:00:00Z"
    },
    {
      "notification_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "mentor_id": "mentor_james_okafor",
      "coordinator_id": "coord_maya_patel",
      "threshold": "7_day",
      "expiry_date": "2026-04-01T00:00:00Z",
      "status": "active",
      "sent_at": "2026-03-25T08:00:00Z",
      "acknowledged_at": null,
      "created_at": "2026-03-25T08:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 2
  }
}
GET /api/v1/expiry-notifications/api/v1/expiry-notifications/:notification_id

Get a specific notification record by ID.

Public

Response Example

{
  "notification_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "mentor_id": "mentor_sarah_chen",
  "coordinator_id": "coord_maya_patel",
  "threshold": "30_day",
  "expiry_date": "2026-04-15T00:00:00Z",
  "status": "active",
  "sent_at": "2026-03-16T08:00:00Z",
  "acknowledged_at": null,
  "created_at": "2026-03-16T08:00:00Z"
}
POST /api/v1/expiry-notifications/api/v1/expiry-notifications

Create a new expiry notification record when a threshold is triggered.

Public

Request Example

{
  "mentor_id": "mentor_sarah_chen",
  "coordinator_id": "coord_maya_patel",
  "threshold": "30_day",
  "expiry_date": "2026-04-15T00:00:00Z"
}

Response Example

{
  "notification_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "mentor_id": "mentor_sarah_chen",
  "coordinator_id": "coord_maya_patel",
  "threshold": "30_day",
  "expiry_date": "2026-04-15T00:00:00Z",
  "status": "active",
  "sent_at": "2026-03-26T08:00:00Z",
  "acknowledged_at": null,
  "created_at": "2026-03-26T08:00:00Z"
}
PUT /api/v1/expiry-notifications/api/v1/expiry-notifications/:notification_id

Acknowledge or update an expiry notification record.

Public

Request Example

{
  "status": "acknowledged",
  "acknowledged_at": "2026-03-26T14:30:00Z",
  "acknowledged_by": "coord_maya_patel"
}

Response Example

{
  "notification_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "mentor_id": "mentor_sarah_chen",
  "coordinator_id": "coord_maya_patel",
  "threshold": "30_day",
  "expiry_date": "2026-04-15T00:00:00Z",
  "status": "acknowledged",
  "sent_at": "2026-03-16T08:00:00Z",
  "acknowledged_at": "2026-03-26T14:30:00Z",
  "created_at": "2026-03-16T08:00:00Z"
}
DELETE /api/v1/expiry-notifications/api/v1/expiry-notifications/:notification_id

Delete a notification record.

Public

Response Example

{
  "deleted": true,
  "notification_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

Additional Metadata

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