---
title: "Mark every unread message matching a filter as read."
method: POST
path: "/v1/messages/read-all"
tags: ["Messages"]
---

# Mark every unread message matching a filter as read.

`POST /v1/messages/read-all`

## Request

- Base URL: `https://api.inboxy.net`
- URL: `https://api.inboxy.net/v1/messages/read-all`
- Auth: HTTP bearer

Requires `manage` scope. Body is an optional filter — `address_id`, `classification`, and/or `before` (ISO-8601, only messages received strictly before this instant). Empty body marks every unread message read. Idempotent: re-running returns `{ marked: 0 }` once the set is empty.

## Request body

- MarkAllMessagesRequest: Optional filter scoping which messages are marked. Empty object marks every unread message read.
  - `address_id` string, uuid
  - `classification` 'otp' | 'login_link' | 'verify' | 'receipt' | 'notice' | 'marketing' | 'spam' | 'other'
  - `before` string, date-time: ISO-8601; only mark messages received strictly before this instant.

## Response `200`

Update succeeded.

- MarkAllResult: Result of a bulk mark-as-read. `marked` is the number of rows mutated by this call (already-read rows are skipped).
  - `marked` integer, required

## Other responses

- `403`: Token lacks the required scope.

---

[API](https://skmtc.dev/inboxy/apis/inboxy-api.md) · [All operations](https://skmtc.dev/inboxy/apis/inboxy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/inboxy/apis/inboxy-api/revisions/25155a8dec0f?raw)
