> ## Documentation Index
> Fetch the complete documentation index at: https://v0.x-docs.novu.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Backend SDK methods

### Fetch subscriber’s In-App notifications feed

<CodeGroup>
  ```javascript Node.JS theme={null}
  const { data: inAppMessages } = await novu.subscribers.getNotificationsFeed(
    "subscriberId",
    {
      page: 0,
      limit: 10,

      // it is of type string. By default all feeds messages are fetched
      feedIdentifier: "Product Updates",

      // seen and read filter of type boolean
      seen: true,
      read: true,
    }
  );
  ```
</CodeGroup>

### Fetch all Messages Sent To All Subscribers

<CodeGroup>
  ```javascript Node.JS theme={null}
  import { ChannelTypeEnum } from "@novu/node";

  // All fields are optional
  const listMessagesOptions = {
    // pagination options
    page: 0,
    limit: 20,

    /**
     *  Filter options
     */
    // use ChannelTypeEnum.PUSH for push, ChannelTypeEnum.EMAIL for email,
    channel: ChannelTypeEnum.IN_APP, // only In-App type messages will be fetched
    subscriberId: "6444105141ffb0919496dfcb",
    transactionIds: ["644-41051-41ffb0-919496-dfcb"],
  };

  const { data: messagesData } = await novu.messages.list(listMessagesOptions);
  ```
</CodeGroup>

### Delete an In-App notification/message

<CodeGroup>
  ```javascript Node.JS theme={null}
  // messageId is of MongoDB Id type
  await novu.messages.deleteById("messageId");
  ```
</CodeGroup>

### Mark an In-App Message as Read/Seen

<CodeGroup>
  ```javascript Node.JS theme={null}
  const { data: markMessageAsRead } = await novu.subscribers.markMessageRead(
    "subscriberId",
    "messageId"
  );

  const { data: markMessageAsSeen } = await novu.subscribers.markMessageSeen(
    "subscriberId",
    "messageId"
  );
  ```
</CodeGroup>

### Mark an In-App Message as Read/Unread/Seen/Unseen

<CodeGroup>
  ```javascript Node.JS theme={null}
  const { data: markMessageAs } = await novu.subscribers.markMessageAs(
    "subscriberId",
    "messageId",
    { seen: true, read: false }
  );
  ```
</CodeGroup>

### Mark all In-App Messages as Read/Unread/Seen/Unseen

<CodeGroup>
  ```javascript Node.JS theme={null}
  import { MarkMessagesAsEnum } from "@novu/node"

  const { data: markAllInAppMessages } = await novu.subscribers.markAllMessagesAs(
     'subscriberId',

     // can be filtered with feed identifiers
     feedIdentifier: ['Marketing', 'Product']

     // MarkMessageAsEnum.READ => It will mark all messages as read
     // MarkMessageAsEnum.SEEN => It will mark all messages as seen
     // MarkMessageAsEnum.UNREAD => It will mark all messages as unread
     // MarkMessageAsEnum.UNSEEN => It will mark all messages as unseen
     markAs: MarkMessageAsEnum.Read
  );
  ```
</CodeGroup>

### Fetch All Feeds

<CodeGroup>
  ```javascript Node.JS theme={null}
  const { data: feedsData } = await novu.feeds.get();
  ```
</CodeGroup>
