---
title: "Autosave a single reflection response"
method: PUT
path: "/api/participant/sessions/{sessionId}/reflection/responses"
tags: ["Pre-Session Reflection"]
---

# Autosave a single reflection response

`PUT /api/participant/sessions/{sessionId}/reflection/responses`

## Request

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

Upserts a single response row for the (session, participant, question)
triple. Idempotent. Returns the updated row and the recomputed reflection
status (NOT_STARTED / IN_PROGRESS / COMPLETED).

Returns 410 Gone when the session has started — reflection is locked
per IV5.

## Path parameters

- `sessionId` string, uuid, required

## Request body

- object
  - `question_id` string, uuid, required
  - `response_text` string, required

## Response `200`

Response upserted; returns new computed status

- object
  - `success` boolean
  - `data` object
    - `status` 'NOT_STARTED' | 'IN_PROGRESS' | 'COMPLETED'
    - `response` object

## Other responses

- `400`: Bad request body
- `401`: Unauthorized
- `403`: Participant not enrolled in this session's cohort
- `404`: Session not found OR live_session_delivery flag off
- `410`: Reflection is locked — session has started

---

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