---
title: "Mark a conversation read for the signed-in user"
method: PUT
path: "/api/conversations/{id}/read-marker"
tags: ["Conversations"]
---

# Mark a conversation read for the signed-in user

`PUT /api/conversations/{id}/read-marker`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/conversations/{id}/read-marker`
- Auth: API key in cookie `luca.session_token`

Moves the signed-in user's read marker to the message named by `upToMessageId`, so a message that arrived after the coach looked stays unread. Without a body it moves to the thread's newest inbound message. Each team member has their own marker. The marker never moves backwards, so repeating the call changes nothing.

**Session-only.** This endpoint isn't on the API-key allowlist. An organization API key gets a 403 here, whatever scopes it holds.

## Path parameters

- `id` string, uuid, required

## Headers

- `Luca-API-Version` '1'

## Request body

- ConversationReadMarkerBody
  - `upToMessageId` string, uuid

## Response `200`

ok

- ConversationReadMarkerResponse
  - `readThroughAt` string, nullable, required

## Other responses

- `401`: unauthorized
- `404`: not found
- `429`: rate limited
- `500`: internal error
- `503`: service unavailable

---

[API](https://skmtc.dev/setluca/apis/luca-api.md) · [All operations](https://skmtc.dev/setluca/apis/luca-api/llms.txt) · [OpenAPI document](https://skmtc.dev/setluca/apis/luca-api/revisions/90a200e4100b?raw)
