> ## Documentation Index
> Fetch the complete documentation index at: https://www.mill.fyi/llms.txt
> Use this file to discover all available pages before exploring further.

# Mark personal notifications

> Mark selected notifications or all notifications present at the request snapshot as read/unread. Repeated read marks preserve the first read time. Choose ids OR all:true.

Write access: a member/administrator with a write-enabled credential, or an authorized signed-in user.

Mark selected notifications or all notifications present at the request snapshot as read/unread. Repeated read marks preserve the first read time. Choose ids OR all:true.

Choose ids or all:true, never both. read defaults to true; false marks unread. All applies to the request snapshot, leaving later arrivals unread. Repeated read marks preserve the original receipt time. Team API keys cannot mutate personal notifications.

MCP clients can use [`mark_notifications`](https://www.mill.fyi/mcp-reference/mark_notifications) for this operation.

[Request conventions](https://www.mill.fyi/api-reference/overview.md) · [API keys](https://www.mill.fyi/api-keys.md) · [MCP connections](https://www.mill.fyi/mcp-connections.md)


## OpenAPI

````yaml api-reference/openapi.json PATCH /api/notifications
openapi: 3.1.0
info:
  title: Mill HTTP API
  version: 1.0.6
  description: >-
    All registered task-board, account, OAuth, MCP transport and health
    operations. MCP tool schemas come from runtime validators; account
    operations follow their server handlers. Example data is fictional.
    Generation imports routes without issuing requests or connecting to a
    database.
servers:
  - url: https://mill-api.example.com
security: []
paths:
  /api/notifications:
    patch:
      tags:
        - Notifications
      summary: Mark personal notifications
      description: >-
        Mark selected notifications or all notifications present at the request
        snapshot as read/unread. Repeated read marks preserve the first read
        time. Choose ids OR all:true.


        Choose ids or all:true, never both. read defaults to true; false marks
        unread. All applies to the request snapshot, leaving later arrivals
        unread. Repeated read marks preserve the original receipt time. Team API
        keys cannot mutate personal notifications.


        Write access: a member/administrator with a write-enabled credential, or
        an authorized signed-in user.
      operationId: patch_api_notifications
      parameters:
        - name: Origin
          in: header
          required: false
          schema:
            type: string
            format: uri
          description: >-
            The exact configured Mill UI origin. Required for browser mutations
            carrying session cookies.
        - name: Idempotency-Key
          in: header
          required: false
          schema:
            type: string
            minLength: 8
            maxLength: 128
            pattern: ^[A-Za-z0-9._:-]+$
          description: >-
            Reuse the same key and exact request bytes for retries of one
            logical mutation; different content conflicts.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ids:
                  minItems: 1
                  maxItems: 100
                  type: array
                  items:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                all:
                  type: boolean
                  const: true
                read:
                  type: boolean
              additionalProperties: false
            example:
              ids:
                - 77777777-7777-4777-8777-777777777777
              read: true
      responses:
        '200':
          description: >-
            Successful response. Examples are illustrative; field values vary by
            record.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  updated:
                    type: integer
                additionalProperties: true
                description: >-
                  Illustrative response shape. Fields can be absent in alternate
                  successful flows; see the operation description and example.
              example:
                ok: true
                updated: 1
        default:
          description: >-
            Request failure. Inspect code, message and requestId; respect
            Retry-After on HTTP 429.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
        - sessionCookie: []
components:
  schemas:
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - requestId
          properties:
            code:
              type: string
            message:
              type: string
            requestId:
              type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Personal or team Mill REST API key
    sessionCookie:
      type: apiKey
      in: cookie
      name: mill_session
      description: >-
        Signed-in human browser session; mutation requests also need the exact
        UI Origin

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.