---
title: Batch update feed entries
full: true
_openapi:
  method: PATCH
  toc: []
  structuredData:
    headings: []
    contents:
      - content: >
          Update multiple feed entries' state in a single request. Useful for
          "mark all as read" functionality.


          **Idempotent Semantics:**


          Same as single entry update - timestamps are only set if currently
          null:

          - `seen: true` → Sets `seen_at` if null

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

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

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

          - `archived: false` → Clears `archived_at`


          **Invalid Operations:**


          Returns `409 Conflict` for:

          - `seen: false`, `read: false`, `clicked: false`


          **Partial Success:**


          All entries in the request are updated atomically. If any entry fails
          validation,

          the entire request fails and no entries are updated.
---

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

Update multiple feed entries' state in a single request. Useful for "mark all as read" functionality.

**Idempotent Semantics:**

Same as single entry update - timestamps are only set if currently null:
- `seen: true` → Sets `seen_at` if null
- `read: true` → Sets `read_at` if null
- `clicked: true` → Sets `clicked_at` if null
- `archived: true` → Sets `archived_at` if null
- `archived: false` → Clears `archived_at`

**Invalid Operations:**

Returns `409 Conflict` for:
- `seen: false`, `read: false`, `clicked: false`

**Partial Success:**

All entries in the request are updated atomically. If any entry fails validation,
the entire request fails and no entries are updated.


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