REST /api/v1/recurring-templates 7 endpoints
GET /api/v1/recurring-templates/api/v1/recurring-templates

List recurring templates

Public

Response Example

{
  "data": [
    {
      "id": "rt-001",
      "coordinator_id": "coord-119",
      "organization_id": "org-44",
      "name": "Weekly Peer Session Template",
      "activity_type": "peer_session",
      "recurrence_rule": "RRULE:FREQ=WEEKLY;BYDAY=MO",
      "duration_minutes": 60,
      "mentor_ids": [
        "mentor-482",
        "mentor-510"
      ],
      "is_active": true,
      "created_at": "2026-01-15T08:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 8
  }
}
GET /api/v1/recurring-templates/api/v1/recurring-templates/:id

Get recurring template by ID

Public

Response Example

{
  "id": "rt-001",
  "coordinator_id": "coord-119",
  "organization_id": "org-44",
  "name": "Weekly Peer Session Template",
  "activity_type": "peer_session",
  "recurrence_rule": "RRULE:FREQ=WEEKLY;BYDAY=MO",
  "duration_minutes": 60,
  "mentor_ids": [
    "mentor-482",
    "mentor-510"
  ],
  "notes_template": "Regular Monday group session",
  "is_active": true,
  "created_at": "2026-01-15T08:00:00Z",
  "updated_at": "2026-03-01T10:00:00Z"
}
POST /api/v1/recurring-templates/api/v1/recurring-templates

Create a new recurring activity template

Public

Request Example

{
  "coordinator_id": "coord-119",
  "organization_id": "org-44",
  "name": "Bi-weekly Workshop",
  "activity_type": "workshop",
  "recurrence_rule": "RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=WE",
  "duration_minutes": 90,
  "mentor_ids": [
    "mentor-482",
    "mentor-521",
    "mentor-533"
  ],
  "notes_template": "Bi-weekly skills workshop"
}

Response Example

{
  "id": "rt-009",
  "coordinator_id": "coord-119",
  "organization_id": "org-44",
  "name": "Bi-weekly Workshop",
  "activity_type": "workshop",
  "recurrence_rule": "RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=WE",
  "duration_minutes": 90,
  "mentor_ids": [
    "mentor-482",
    "mentor-521",
    "mentor-533"
  ],
  "is_active": true,
  "created_at": "2026-03-26T10:00:00Z",
  "updated_at": "2026-03-26T10:00:00Z"
}
PUT /api/v1/recurring-templates/api/v1/recurring-templates/:id

Update a recurring template

Public

Request Example

{
  "name": "Bi-weekly Workshop (Updated)",
  "duration_minutes": 120,
  "mentor_ids": [
    "mentor-482",
    "mentor-521"
  ],
  "is_active": false
}

Response Example

{
  "id": "rt-009",
  "coordinator_id": "coord-119",
  "name": "Bi-weekly Workshop (Updated)",
  "duration_minutes": 120,
  "mentor_ids": [
    "mentor-482",
    "mentor-521"
  ],
  "is_active": false,
  "updated_at": "2026-03-26T11:30:00Z"
}
DELETE /api/v1/recurring-templates/api/v1/recurring-templates/:id

Delete a recurring template

Public

Response Example

{
  "success": true,
  "deleted_id": "rt-009"
}
GET /api/v1/recurring-templates/api/v1/recurring-templates/by-coordinator/:coordinator_id

Get all templates for a specific coordinator

Public

Response Example

{
  "data": [
    {
      "id": "rt-001",
      "name": "Weekly Peer Session Template",
      "activity_type": "peer_session",
      "recurrence_rule": "RRULE:FREQ=WEEKLY;BYDAY=MO",
      "mentor_ids": [
        "mentor-482",
        "mentor-510"
      ],
      "is_active": true
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 5
  }
}
GET /api/v1/recurring-templates/api/v1/recurring-templates/by-organization/:organization_id

Get all templates for an organization

Public

Response Example

{
  "data": [
    {
      "id": "rt-001",
      "coordinator_id": "coord-119",
      "name": "Weekly Peer Session Template",
      "activity_type": "peer_session",
      "is_active": true
    },
    {
      "id": "rt-003",
      "coordinator_id": "coord-205",
      "name": "Monthly Review",
      "activity_type": "review",
      "is_active": true
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 14
  }
}

Additional Metadata

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