---
title: "Mark attendance for a session"
method: POST
path: "/api/coach/sessions/{sessionId}/attendance"
tags: ["Coach Portal"]
---

# Mark attendance for a session

`POST /api/coach/sessions/{sessionId}/attendance`

## Request

- Base URL: `https://api.production.yourmedley.com`
- URL: `https://api.production.yourmedley.com/api/coach/sessions/{sessionId}/attendance`
- Auth: HTTP bearer

Submit attendance records for all participants in a session. Optionally triggers post-session surveys.

## Path parameters

- `sessionId` string, uuid, required

## Request body

- object
  - `attendance` object[], required: Attendance records for each participant
    - `user_id` string, uuid, required
    - `status` 'attended' | 'partial' | 'absent', required
    - `absent_reason` 'business_conflict' | 'personal_conflict' | 'no_notice': Required if status is absent
    - `notes` string: Optional notes about attendance
    - `coach_notes` string, nullable: MED-979 — optional per-participant free-text note authored by the coach on the post-session "Attendance & Engagement" screen. Independent of `notes`.
  - `send_surveys` boolean, required: If true, triggers post-session surveys to attended/partial participants

## Response `200`

Attendance marked successfully

- object
  - `session_id` string, uuid
  - `attendance_count` integer
  - `attended_count` integer
  - `partial_count` integer
  - `absent_count` integer
  - `attendance_percentage` number
  - `surveys_triggered` boolean

## Other responses

- `400`: Validation error (e.g., absent without reason)
- `401`: Unauthorized
- `404`: Session not found

---

[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)
