---
title: "Record the coach's waiting-room presence heartbeat (MED-1126)"
method: POST
path: "/api/coach/sessions/{sessionId}/prep/heartbeat"
tags: ["Coach Session Prep"]
---

# Record the coach's waiting-room presence heartbeat (MED-1126)

`POST /api/coach/sessions/{sessionId}/prep/heartbeat`

## Request

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

Stamps the coach's `session_attendance` presence heartbeat
(`last_seen_at`, and `joined_at` on first contact) so the coach shows
as present in the participant waiting room while prepping. Coaches have
no waiting room of their own — the prep page pings this on the same ~4s
cadence the participant waiting room polls. Coach-led sessions only;
reuses the prep authorization gate.

## Path parameters

- `sessionId` string, uuid, required

## Response `204`

Presence heartbeat recorded

## Other responses

- `400`: Invalid sessionId format
- `401`: Unauthorized (not logged in)
- `403`: Coach is not assigned to this session
- `404`: Session not found
- `500`: Internal error

---

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