---
title: "Mark Notifications By Entity Read"
method: PUT
path: "/notifications/by-entity/read"
tags: ["Notifications"]
---

# Mark Notifications By Entity Read

`PUT /notifications/by-entity/read`

## Request

- Base URL: `https://be.graph8.com/api/v1`
- URL: `https://be.graph8.com/api/v1/notifications/by-entity/read`
- Auth: HTTP bearer

Mark the whole team's notifications for one record as READ.

The rows survive, stamped with who read them, so the bell can still show
that someone acknowledged it. Idempotent: only unread rows are touched.

Omitting `notification_type` is the wide option - it marks every
notification anyone in the org holds for that record, including mentions
that were meant for a person.

## Query parameters

- `entity_type` string, required: Record type the notification is about, e.g. `chat`.
- `entity_id` string, required: Id of that record.
- `notification_type` string, nullable: Narrow to one notification type. Pass the type you own - omitting it also marks unrelated notifications on the same record, such as a colleague's mention.

## Headers

- `Authorization` string, nullable
- `X-Target-Org-Id` string, nullable

## Response `200`

Successful Response

- ApiResponseCrmRecordPayload
  - `data` CrmRecordPayload, required: An open envelope for one record, one dashboard or one job receipt. Open because most of these reads are COMPUTED shapes - an engagement summary, a next-best-step, an intelligence status - that grow with the product, and dropping a field from an advisory read makes it say "nothing to report" rather than "we did not tell you".
  - `pagination` PaginationMeta
    - `page` integer, required: Current page number (1-indexed)
    - `limit` integer, required: Items per page
    - `total` integer, required: Total number of items
    - `has_next` boolean, required: Whether there are more pages
    - `next_cursor` string, nullable: Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers.
    - `total_available` integer, nullable: Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search.
    - `total_is_lower_bound` boolean, nullable: Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search.
    - `notes` string[], nullable: Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order.

## Other responses

- `422`: Validation Error

---

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