---
title: "Get composite read-only state for the participant Active Session screen (AC"
method: GET
path: "/api/participant/sessions/{sessionId}/active-state"
tags: ["Participant Active Session"]
---

# Get composite read-only state for the participant Active Session screen (AC

`GET /api/participant/sessions/{sessionId}/active-state`

## Request

- Base URL: `https://api.production.yourmedley.com`
- URL: `https://api.production.yourmedley.com/api/participant/sessions/{sessionId}/active-state`
- Auth: HTTP bearer

Returns everything the participant active session screen needs in one
round trip: session metadata, leader, sections, slide deck, current
section index, AI features flag, and the AC #12 commitment trigger.

Authorization: the caller must be an active member of the session's
group (`group_members` row with `left_at IS NULL`). Otherwise 403.

This endpoint is intended to be polled at <= 2s cadence by the
frontend to satisfy AC #6 (participant view updates within 2 seconds
of leader action) and IV2.

## Path parameters

- `sessionId` string, uuid, required

## Response `200`

Active session state for the participant

- object
  - `success` boolean
  - `data` ParticipantActiveSessionState
    - `session_id` string, uuid
    - `title` string
    - `session_number` integer, nullable
    - `status` 'scheduled' | 'in_progress' | 'completed' | 'cancelled' | 'rescheduled'
    - `duration_minutes` integer, nullable
    - `scheduled_start` string, date-time, nullable
    - `scheduled_end` string, date-time, nullable
    - `cohort_id` string, uuid
    - `cohort_name` string
    - `meeting_link` string, nullable: MED-1112 — resolved meeting link (Join video call), null for in-person
    - `group_id` string, uuid, nullable
    - `group_name` string, nullable
    - `modality_id` string, uuid, nullable
    - `coaching_sub_type` 'coach_led' | 'peer_led', nullable
    - `ai_features_enabled` boolean
    - `leader` ParticipantActiveSessionLeader
      - `user_id` string, uuid, nullable
      - `display_name` string
      - `first_name` string
      - `role_label` 'COACH' | 'PEER LEADER', nullable
    - `sections` object[]: MED-976 (E1.3h) — authored sections (slim, participant variant — NO leader_prompts; AC-PL3 enforced at the type layer). Each item carries section_name, duration_minutes, sort_order, participant_prompt, and visuals[] (slide_page associations). Replaces the legacy parsed_outline from MED-784/MED-805.
    - `slide_deck` object, nullable
      - `id` string, uuid
      - `converted_pdf_s3_key` string, nullable
      - `processing_state` 'pending' | 'processing' | 'ready' | 'failed'
      - `original_filename` string
    - `current_section_index` integer, nullable
    - `commitment_section_active` boolean: Decision #2 — true when the active section's title matches `/commitment/i`. Drives the AC #12 commitment area visibility.
    - `coach_present` boolean: MED-952 AC8/AC9 — false when no assigned coach is currently present on the active session screen. Drives the "coach has temporarily stepped away" notice; flips back to true within one poll when a coach rejoins.

## Other responses

- `401`: Unauthorized
- `403`: Not an active member of the session's group
- `404`: Session not found OR live_session_delivery flag off

---

[API](https://skmtc.dev/withmedley/apis/medley-api.md) - [All operations](https://skmtc.dev/withmedley/apis/medley-api/llms.txt) - [OpenAPI document](https://skmtc.dev/withmedley/apis/medley-api/revisions/40aaac5ca6bd?raw)
