---
title: "Mark a conversation as read"
method: POST
path: "/chat/threads/{chatId}/read"
tags: ["Chat"]
---

# Mark a conversation as read

`POST /chat/threads/{chatId}/read`

## Request

- Base URL: `https://viral.app/api/v1`
- URL: `https://viral.app/api/v1/chat/threads/{chatId}/read`
- Auth: API key in header `x-api-key`

Moves the viewer's read pointer through the given message (or the newest message when omitted); it never moves back. With an API key it is the key owner's pointer, and in a direct thread the creator sees the messages as "Seen".

## Path parameters

- `chatId` string, required

## Request body

- object
  - `lastMessageId` string: The newest message you have processed: the read pointer moves through it and never past a message you have not seen. Defaults to the newest message.

## Response `200`

OK

- object
  - `chatId` string, required
  - `lastReadMessageId` string, nullable, required
  - `lastReadAt` string, date-time, required

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `404`: 404
- `408`: 408
- `429`: 429
- `500`: 500

---

[API](https://skmtc.dev/viral/apis/viral-app-api.md) · [All operations](https://skmtc.dev/viral/apis/viral-app-api/llms.txt) · [OpenAPI document](https://skmtc.dev/viral/apis/viral-app-api/revisions/31e97fa79ef1?raw)
