---
title: "Set read state"
method: POST
path: "/set_read_state"
---

# Set read state

`POST /set_read_state`

## Request

- Base URL: `https://newsmind.app/api/v1`
- URL: `https://newsmind.app/api/v1/set_read_state`
- Auth: OAuth 2 (authorization code, authorization URL `https://newsmind.app/oauth/authorize`, token URL `https://newsmind.app/oauth/token`, scopes: `mcp`)

Mark articles read or unread. read=true marks read, read=false restores to unread. Scope is EITHER article_ids OR through_published_at (exactly one). through_published_at is a high-water mark — pass current UTC time for 'mark all read'; add feed_id to scope to one source. Never touches stars.

## Request body

- object
  - `read` boolean, required: true = mark read; false = restore to unread.
  - `article_ids` integer[]: Specific article IDs to flip. Mutually exclusive with through_published_at.
  - `through_published_at` string, date-time: High-water mark — every subscribed article published at or before this timestamp flips. For 'mark all read', pass the current UTC time. Mutually exclusive with article_ids.
  - `feed_id` integer: Optional feed scope, high-water-mark mode only — flips only matching articles from this feed.

## Response `200`

Success

- object
  - `read` boolean
  - `updated` integer
  - `scope` 'ids' | 'through'
  - `through_published_at` string, nullable
  - `feed_id` integer, nullable
  - `message` string

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `402`: Subscription required (trial expired or cancelled)
- `429`: Too many calls. Either the per-account rate limit ({error: "rate_limited", message}) or the account's in-flight work ({error: <sentence>, code: "busy"}). Wait Retry-After seconds.
- `500`: Server error on our side (error: internal_error). The team has been notified.
- `503`: Temporarily unable to answer. error: timeout (the request ran too long; narrow it), server_busy or tier_unavailable (retry after Retry-After seconds when sent).

---

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