---
title: "Mark a notification read"
method: PATCH
path: "/api/v1/notifications/{id}"
tags: ["notifications"]
---

# Mark a notification read

`PATCH /api/v1/notifications/{id}`

## Path parameters

- `id` string, required — Notification identifier.

## Request body

- MarkNotificationReadRequest
  - `status` 'read', required — V1 supports only marking an unread notification read.

## Response `200`

OK

- NotificationEnvelope
  - `notification` NotificationResponse, required
    - `body` string, required
    - `createdAt` string, date-time, required
    - `id` string, required
    - `prUrl` string, required
    - `projectId` string, required
    - `resolvedAt` string, date-time, nullable
    - `sessionId` string, required
    - `status` 'unread' | 'read', required — Seen state. unread means the user has not opened the notification panel since it arrived.
    - `target` NotificationTarget, required
      - `kind` 'session' | 'pr', required
      - `prUrl` string
      - `sessionId` string, required
    - `title` string, required
    - `type` 'needs_input' | 'ready_to_merge' | 'pr_merged' | 'pr_closed_unmerged', required

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `500` — Internal Server Error
- `501` — Not Implemented

## Changes

- **2026-08-03** `4f19bf23c856` — 1 info
  - added the optional property `notification/resolvedAt` to the response with the `200` status
- **2026-06-21** `3801d5cb2cb0` — 1 info
  - endpoint added
- **2026-06-10** `b64f5ab46d87` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/changes/api/v1/notifications/:id/patch.md)

---

[API](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon.md) · [All operations](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/composiohq/agent-orchestrator-http-daemon/revisions/09f65272fe44/schema)
