---
title: "Acknowledge read states"
method: POST
path: "/read-states/ack"
tags: ["Read States"]
---

# Acknowledge read states

`POST /read-states/ack`

Applies one or more read-state acknowledgements and returns the authoritative read states after the write.

## Request body

- ReadStateAckRequest
  - `read_states` object[], required — Read-state acknowledgements to apply. Supports normal and manual acknowledgements.
    - `channel_id` string, snowflake, required
    - `message_id` string, snowflake, required
    - `mention_count` integer
    - `manual` boolean — Whether this acknowledgement is an explicit manual read marker

## Response `200`

Success

- ReadStateAckResponse
  - `read_states` ReadStateResponse[], required — Authoritative read states after applying the acknowledgement
    - `id` string, required — The channel ID for this read state
    - `mention_count` integer, required — Number of unread mentions in the channel
    - `last_message_id` string, snowflake, required
    - `last_pin_timestamp` string, nullable, required — ISO8601 timestamp of the last pinned message acknowledged
    - `version` string — Read-state version for ordering updates as a decimal uint64
  - `read_state_proto` string, required — Authoritative read states after applying the acknowledgement, encoded as a base64 protobuf bundle

## Other responses

- `400` — Bad Request - The request was malformed or contained invalid data
- `401` — Unauthorized - Authentication is required or the token is invalid
- `403` — Forbidden - You do not have permission to perform this action
- `429` — Too Many Requests - You are being rate limited
- `500` — Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.dev/fluxer/apis/fluxer-api.md) · [All operations](https://skmtc.dev/fluxer/apis/fluxer-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fluxer/fluxer-api/revisions/d9c706133cc5/schema)
