---
title: "Retrieve subscriber notifications"
method: GET
path: "/v2/subscribers/{subscriberId}/notifications"
tags: ["Subscribers"]
---

# Retrieve subscriber notifications

`GET /v2/subscribers/{subscriberId}/notifications`

Retrieve in-app (inbox) notifications for a subscriber by its unique key identifier **subscriberId**. 
    Supports filtering by tags, read/archived/snoozed/seen state, data attributes, severity, date range, and context keys.

## Path parameters

- `subscriberId` string, required

## Query parameters

- `limit` number
- `after` string
- `offset` number
- `read` boolean
- `archived` boolean
- `snoozed` boolean
- `seen` boolean
- `data` string
- `severity` string[]
- `createdGte` number
- `createdLte` number
- `contextKeys` string[]

## Response `200`

OK

- GetSubscriberNotificationsResponseDto
  - `data` InboxNotificationDto[], required — Array of notifications
    - `id` string, required — Unique identifier of the notification
    - `transactionId` string, required — Transaction identifier of the notification
    - `subject` string — Subject of the notification
    - `body` string, required — Body content of the notification
    - `to` InboxSubscriberResponseDto, required
      - `id` string, required — Unique identifier of the subscriber
      - `firstName` string — First name of the subscriber
      - `lastName` string — Last name of the subscriber
      - `avatar` string — Avatar URL of the subscriber
      - `subscriberId` string, required — External subscriber identifier
    - `isRead` boolean, required — Whether the notification has been read
    - `isSeen` boolean, required — Whether the notification has been seen
    - `isArchived` boolean, required — Whether the notification has been archived
    - `isSnoozed` boolean, required — Whether the notification is snoozed
    - `snoozedUntil` string, nullable — ISO timestamp when the notification will be unsnoozed
    - `deliveredAt` string[] — Timestamps when the notification was delivered
    - `createdAt` string, required — ISO timestamp when the notification was created
    - `readAt` string, nullable — ISO timestamp when the notification was read
    - `firstSeenAt` string, nullable — ISO timestamp when the notification was first seen
    - `archivedAt` string, nullable — ISO timestamp when the notification was archived
    - `avatar` string — Avatar URL for the notification
    - `primaryAction` InboxActionDto
      - `label` string, required — Label of the action button
      - `isCompleted` boolean, required — Whether the action has been completed
      - `redirect` RedirectDto
        - `url` string, required — URL to redirect to
        - `target` '_self' | '_blank' | '_parent' | '_top' | '_unfencedTop' — Target attribute for the redirect link
    - `secondaryAction` InboxActionDto
      - `label` string, required — Label of the action button
      - `isCompleted` boolean, required — Whether the action has been completed
      - `redirect` RedirectDto
        - `url` string, required — URL to redirect to
        - `target` '_self' | '_blank' | '_parent' | '_top' | '_unfencedTop' — Target attribute for the redirect link
    - `channelType` 'in_app' | 'email' | 'sms' | 'chat' | 'push' | 'tool', required — Channel type through which the message is sent
    - `tags` string[] — Tags associated with the notification
    - `data` object — Custom data payload of the notification
    - `redirect` RedirectDto
      - `url` string, required — URL to redirect to
      - `target` '_self' | '_blank' | '_parent' | '_top' | '_unfencedTop' — Target attribute for the redirect link
    - `workflow` NotificationWorkflowDto
      - `id` string, required — Unique identifier of the workflow
      - `identifier` string, required — Workflow identifier used for triggering
      - `name` string, required — Human-readable name of the workflow
      - `critical` boolean, required — Whether this workflow is marked as critical
      - `tags` string[] — Tags associated with the workflow
      - `data` object — Custom data associated with the workflow
      - `severity` 'high' | 'medium' | 'low' | 'none', required — Severity of the workflow
    - `severity` 'high' | 'medium' | 'low' | 'none', required — Severity of the workflow
  - `hasMore` boolean, required — Indicates if there are more notifications available
  - `filter` object, required — The filter applied to the notifications

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `405` — Method Not Allowed
- `409` — Conflict
- `413` — Payload Too Large
- `414` — URI Too Long
- `415` — Unsupported Media Type
- `422` — Unprocessable Entity
- `429` — The client has sent too many requests in a given amount of time.
- `500` — Internal Server Error
- `503` — The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.

---

[API](https://skmtc.net/novu/apis/deprecated-novu-api-use-openapi-json-yaml-instead.md) · [All operations](https://skmtc.net/novu/apis/deprecated-novu-api-use-openapi-json-yaml-instead/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/novu/deprecated-novu-api-use-openapi-json-yaml-instead/versions/986fe259fa85/schema)
