---
title: "Record the assigned leader's RSVP for a peer-led session"
method: POST
path: "/api/sessions/{sessionId}/peer-leader-rsvp"
tags: ["Peer Leader RSVP"]
---

# Record the assigned leader's RSVP for a peer-led session

`POST /api/sessions/{sessionId}/peer-leader-rsvp`

## Request

- Base URL: `https://api.production.yourmedley.com`
- URL: `https://api.production.yourmedley.com/api/sessions/{sessionId}/peer-leader-rsvp`
- Auth: HTTP bearer

Updates `sessions.session_leader_rsvp_status` to `confirmed` or
`declined` and writes a `session_audit_log` row with the corresponding
enum value (`rsvp_confirmed` / `rsvp_declined`). The caller must be
the current `sessions.session_leader_id` and the session must not have
started yet.

## Path parameters

- `sessionId` string, uuid, required

## Request body

- PeerLeaderRsvpRequest
  - `status` 'confirmed' | 'declined', required: Leader's RSVP decision.

## Response `200`

RSVP recorded.

- PeerLeaderRsvpResponse
  - `success` boolean
  - `data` object
    - `session_id` string, uuid
    - `session_leader_rsvp_status` 'unconfirmed' | 'confirmed' | 'declined'
    - `session_leader_rsvp_responded_at` string, date-time

## Other responses

- `400`: Validation error (invalid sessionId or status)
- `401`: Unauthenticated
- `403`: Caller is not the assigned session leader
- `404`: Session not found or soft-deleted
- `422`: Session has already started — RSVP locked

---

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