---
title: Update feed entry state
full: true
_openapi:
  method: PATCH
  toc: []
  structuredData:
    headings: []
    contents:
      - content: >
          Update a single feed entry's state. Use this to mark notifications as
          seen, read, clicked, or archived.


          **Idempotent Semantics:**


          State changes are idempotent - calling the same update multiple times
          has no additional effect:

          - `seen: true` → Sets `seen_at` timestamp if currently null (preserves
          original timestamp if already set)

          - `read: true` → Sets `read_at` timestamp if currently null

          - `clicked: true` → Sets `clicked_at` timestamp if currently null

          - `archived: true` → Sets `archived_at` timestamp if currently null

          - `archived: false` → Clears `archived_at` (unarchives the entry)


          **Invalid Operations:**


          These will return `409 Conflict`:

          - `seen: false` - Cannot unmark as seen

          - `read: false` - Cannot unmark as read

          - `clicked: false` - Cannot unmark as clicked


          Only `archived` can be set to `false` to unarchive an entry.
---

{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}

Update a single feed entry's state. Use this to mark notifications as seen, read, clicked, or archived.

**Idempotent Semantics:**

State changes are idempotent - calling the same update multiple times has no additional effect:
- `seen: true` → Sets `seen_at` timestamp if currently null (preserves original timestamp if already set)
- `read: true` → Sets `read_at` timestamp if currently null
- `clicked: true` → Sets `clicked_at` timestamp if currently null
- `archived: true` → Sets `archived_at` timestamp if currently null
- `archived: false` → Clears `archived_at` (unarchives the entry)

**Invalid Operations:**

These will return `409 Conflict`:
- `seen: false` - Cannot unmark as seen
- `read: false` - Cannot unmark as read
- `clicked: false` - Cannot unmark as clicked

Only `archived` can be set to `false` to unarchive an entry.


<APIPage document={"./openapi-user.json"} operations={[{"path":"/channels/{channel_id}/feed/entries/{entry_id}","method":"patch"}]} />