REST /api/v1/report-sessions 7 endpoints
GET /api/v1/report-sessions/api/v1/report-sessions

List active report drafting sessions

Public

Response Example

{
  "data": [
    {
      "session_id": "sess_4f2a1b9c",
      "activity_id": "act_7b4e9f2a",
      "mentor_id": "usr_mentor_042",
      "report_id": "rpt_8f3a2c1d",
      "status": "in_progress",
      "fields_completed": 5,
      "fields_total": 9,
      "started_at": "2026-03-20T14:10:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 1
  }
}
GET /api/v1/report-sessions/api/v1/report-sessions/:id

Get a report drafting session by ID

Public

Response Example

{
  "session_id": "sess_4f2a1b9c",
  "activity_id": "act_7b4e9f2a",
  "mentor_id": "usr_mentor_042",
  "org_id": "org_nansen_01",
  "report_id": "rpt_8f3a2c1d",
  "schema_version": 3,
  "status": "in_progress",
  "current_values": {
    "fld_session_date": "2026-03-20",
    "fld_attendance": 6,
    "fld_session_topic": "Job application support"
  },
  "validation_state": {
    "is_valid": false,
    "errors": {
      "fld_mentor_notes": "Field is required when engagement is high"
    }
  },
  "started_at": "2026-03-20T14:10:00Z"
}
POST /api/v1/report-sessions/api/v1/report-sessions

Initialize a new report drafting session for an activity

Public

Request Example

{
  "activity_id": "act_7b4e9f2a",
  "mentor_id": "usr_mentor_042",
  "org_id": "org_nansen_01"
}

Response Example

{
  "session_id": "sess_4f2a1b9c",
  "report_id": "rpt_8f3a2c1d",
  "activity_id": "act_7b4e9f2a",
  "schema": {
    "schema_id": "schema_org_nansen_01",
    "version": 3,
    "fields": [
      {
        "field_id": "fld_session_date",
        "label": "Session date",
        "type": "date",
        "required": true,
        "order": 1
      }
    ]
  },
  "status": "in_progress",
  "started_at": "2026-03-20T14:10:00Z"
}
PUT /api/v1/report-sessions/api/v1/report-sessions/:id

Update field values in a drafting session

Public

Request Example

{
  "field_updates": {
    "fld_session_topic": "Housing and benefits guidance",
    "fld_attendance": 4,
    "fld_mentor_notes": "Two participants asked about rent support. Shared NAV guide links."
  }
}

Response Example

{
  "session_id": "sess_4f2a1b9c",
  "updated_fields": [
    "fld_session_topic",
    "fld_attendance",
    "fld_mentor_notes"
  ],
  "validation_state": {
    "is_valid": true,
    "errors": {}
  },
  "updated_at": "2026-03-20T14:25:00Z"
}
DELETE /api/v1/report-sessions/api/v1/report-sessions/:id

Discard a report drafting session

Public

Response Example

{
  "deleted": true,
  "session_id": "sess_4f2a1b9c",
  "report_id": "rpt_8f3a2c1d",
  "report_deleted": true
}
POST /api/v1/report-sessions/api/v1/report-sessions/:id/validate

Validate all current form values against the schema

Public

Response Example

{
  "session_id": "sess_4f2a1b9c",
  "is_valid": false,
  "errors": {
    "fld_engagement": "Required field missing",
    "fld_challenges_noted": "Must be at least 10 characters when attendance > 5"
  },
  "validated_at": "2026-03-20T14:28:00Z"
}
POST /api/v1/report-sessions/api/v1/report-sessions/:id/submit

Submit the completed report and trigger way-forward task creation

Public

Request Example

{
  "way_forward_entries": [
    {
      "description": "Connect participant Amara D. with job centre referral",
      "assigned_coordinator_id": "usr_coord_011",
      "priority": "high",
      "due_date": "2026-03-27"
    }
  ]
}

Response Example

{
  "session_id": "sess_4f2a1b9c",
  "report_id": "rpt_8f3a2c1d",
  "status": "submitted",
  "way_forward_items_created": 1,
  "submitted_at": "2026-03-20T14:32:00Z"
}

Additional Metadata

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