Skip to content
Download Beeper

Mark a chat as unread

client.Chats.MarkUnread(ctx, chatID, body) (*Chat, error)
POST/v1/chats/{chatID}/unread

Mark a chat as unread, optionally from a specific message ID.

ParametersExpand Collapse
chatID string

Chat ID. Input routes also accept the local chat ID from this installation when available.

body ChatMarkUnreadParams
MessageID param.Field[string]Optional

Optional message ID to mark unread from.

ReturnsExpand Collapse
type Chat struct{…}
ID string

Unique identifier of the chat across Beeper.

AccountID string

Account ID this chat belongs to.

Network string

Display-only human-readable account/network name.

Participants ChatParticipants

Chat participants information.

HasMore bool

True if there are more participants than included in items.

Items []ChatParticipantsItem

Participants returned for this chat (limited by the request; may be a subset).

IsAdmin boolOptional

True if this participant has admin privileges in the chat.

IsNetworkBot boolOptional

True if this participant represents an automated network account.

IsPending boolOptional

True if this participant has been invited but has not joined yet.

Total int64

Total number of participants in the chat.

Title string

Display title of the chat as computed by the client/server.

Type ChatType

Chat type: ‘single’ for direct messages, ‘group’ for group chats.

One of the following:
const ChatTypeSingle ChatType = "single"
const ChatTypeGroup ChatType = "group"
UnreadCount int64

Number of unread messages.

Capabilities ChatCapabilitiesOptional

Chat capabilities reported by the platform.

AllowedReactions []stringOptional

Allowed Unicode reactions. Omitted means all emoji reactions are allowed.

Archive boolOptional

True if archive/unarchive is supported.

Attachments map[string, ChatCapabilitiesAttachment]Optional

Supported attachment message types and their per-type constraints, keyed by Matrix msgtype or pseudo-msgtype (for example m.image, m.video, org.matrix.msc3245.voice). Missing message types should be treated as rejected.

MimeTypes map[string, int64]

Supported MIME types or MIME patterns for this file message type. Missing MIME types should be treated as rejected.

One of the following:
const ChatCapabilitiesAttachmentMimeTypeMinus2 ChatCapabilitiesAttachmentMimeType = -2
const ChatCapabilitiesAttachmentMimeTypeMinus1 ChatCapabilitiesAttachmentMimeType = -1
const ChatCapabilitiesAttachmentMimeType0 ChatCapabilitiesAttachmentMimeType = 0
const ChatCapabilitiesAttachmentMimeType1 ChatCapabilitiesAttachmentMimeType = 1
const ChatCapabilitiesAttachmentMimeType2 ChatCapabilitiesAttachmentMimeType = 2
Caption int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesAttachmentCaptionMinus2 ChatCapabilitiesAttachmentCaption = -2
const ChatCapabilitiesAttachmentCaptionMinus1 ChatCapabilitiesAttachmentCaption = -1
const ChatCapabilitiesAttachmentCaption0 ChatCapabilitiesAttachmentCaption = 0
const ChatCapabilitiesAttachmentCaption1 ChatCapabilitiesAttachmentCaption = 1
const ChatCapabilitiesAttachmentCaption2 ChatCapabilitiesAttachmentCaption = 2
MaxCaptionLength int64Optional

Maximum caption length when captions are supported.

MaxDuration int64Optional

Maximum audio or video duration in seconds.

MaxHeight int64Optional

Maximum image or video height in pixels.

MaxSize int64Optional

Maximum file size in bytes.

MaxWidth int64Optional

Maximum image or video width in pixels.

ViewOnce boolOptional

True if this file type can be sent as view-once media.

CustomEmojiReactions boolOptional

True if custom emoji reactions are supported.

Delete int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesDeleteMinus2 ChatCapabilitiesDelete = -2
const ChatCapabilitiesDeleteMinus1 ChatCapabilitiesDelete = -1
const ChatCapabilitiesDelete0 ChatCapabilitiesDelete = 0
const ChatCapabilitiesDelete1 ChatCapabilitiesDelete = 1
const ChatCapabilitiesDelete2 ChatCapabilitiesDelete = 2
DeleteChat boolOptional

True if deleting chats for the authenticated user is supported.

DeleteChatForEveryone boolOptional

True if deleting chats for everyone is supported.

DeleteForMe boolOptional

True if deleting messages only for the authenticated user is supported.

DeleteMaxAge int64Optional

Maximum message age for delete-for-everyone, in seconds.

DisappearingTimer ChatCapabilitiesDisappearingTimerOptional

Disappearing-message timer capabilities.

OmitEmptyTimer boolOptional

True if empty timer objects should be omitted from message content.

Timers []int64Optional

Allowed disappearing timer values in milliseconds. Omitted means any timer is allowed.

Types []stringOptional

Supported disappearing timer types.

One of the following:
const ChatCapabilitiesDisappearingTimerTypeAfterRead ChatCapabilitiesDisappearingTimerType = "afterRead"
const ChatCapabilitiesDisappearingTimerTypeAfterSend ChatCapabilitiesDisappearingTimerType = "afterSend"
Edit int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesEditMinus2 ChatCapabilitiesEdit = -2
const ChatCapabilitiesEditMinus1 ChatCapabilitiesEdit = -1
const ChatCapabilitiesEdit0 ChatCapabilitiesEdit = 0
const ChatCapabilitiesEdit1 ChatCapabilitiesEdit = 1
const ChatCapabilitiesEdit2 ChatCapabilitiesEdit = 2
EditMaxAge int64Optional

Maximum message age for edits, in seconds.

EditMaxCount int64Optional

Maximum number of edits allowed for one message.

Formatting map[string, int64]Optional

Supported rich-text formatting features keyed by feature name (for example bold, inline_code, code_block.syntax_highlighting). Omitted means no formatting support is advertised.

One of the following:
const ChatCapabilitiesFormattingMinus2 ChatCapabilitiesFormatting = -2
const ChatCapabilitiesFormattingMinus1 ChatCapabilitiesFormatting = -1
const ChatCapabilitiesFormatting0 ChatCapabilitiesFormatting = 0
const ChatCapabilitiesFormatting1 ChatCapabilitiesFormatting = 1
const ChatCapabilitiesFormatting2 ChatCapabilitiesFormatting = 2
LocationMessage int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesLocationMessageMinus2 ChatCapabilitiesLocationMessage = -2
const ChatCapabilitiesLocationMessageMinus1 ChatCapabilitiesLocationMessage = -1
const ChatCapabilitiesLocationMessage0 ChatCapabilitiesLocationMessage = 0
const ChatCapabilitiesLocationMessage1 ChatCapabilitiesLocationMessage = 1
const ChatCapabilitiesLocationMessage2 ChatCapabilitiesLocationMessage = 2
MarkAsUnread boolOptional

True if marking chats unread is supported.

MaxTextLength int64Optional

Maximum length of normal text messages.

MessageRequest ChatCapabilitiesMessageRequestOptional

Message request capabilities.

AcceptWithButton int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesMessageRequestAcceptWithButtonMinus2 ChatCapabilitiesMessageRequestAcceptWithButton = -2
const ChatCapabilitiesMessageRequestAcceptWithButtonMinus1 ChatCapabilitiesMessageRequestAcceptWithButton = -1
const ChatCapabilitiesMessageRequestAcceptWithButton0 ChatCapabilitiesMessageRequestAcceptWithButton = 0
const ChatCapabilitiesMessageRequestAcceptWithButton1 ChatCapabilitiesMessageRequestAcceptWithButton = 1
const ChatCapabilitiesMessageRequestAcceptWithButton2 ChatCapabilitiesMessageRequestAcceptWithButton = 2
AcceptWithMessage int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesMessageRequestAcceptWithMessageMinus2 ChatCapabilitiesMessageRequestAcceptWithMessage = -2
const ChatCapabilitiesMessageRequestAcceptWithMessageMinus1 ChatCapabilitiesMessageRequestAcceptWithMessage = -1
const ChatCapabilitiesMessageRequestAcceptWithMessage0 ChatCapabilitiesMessageRequestAcceptWithMessage = 0
const ChatCapabilitiesMessageRequestAcceptWithMessage1 ChatCapabilitiesMessageRequestAcceptWithMessage = 1
const ChatCapabilitiesMessageRequestAcceptWithMessage2 ChatCapabilitiesMessageRequestAcceptWithMessage = 2
ParticipantActions ChatCapabilitiesParticipantActionsOptional

Participant management capabilities.

Ban int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesParticipantActionsBanMinus2 ChatCapabilitiesParticipantActionsBan = -2
const ChatCapabilitiesParticipantActionsBanMinus1 ChatCapabilitiesParticipantActionsBan = -1
const ChatCapabilitiesParticipantActionsBan0 ChatCapabilitiesParticipantActionsBan = 0
const ChatCapabilitiesParticipantActionsBan1 ChatCapabilitiesParticipantActionsBan = 1
const ChatCapabilitiesParticipantActionsBan2 ChatCapabilitiesParticipantActionsBan = 2
Invite int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesParticipantActionsInviteMinus2 ChatCapabilitiesParticipantActionsInvite = -2
const ChatCapabilitiesParticipantActionsInviteMinus1 ChatCapabilitiesParticipantActionsInvite = -1
const ChatCapabilitiesParticipantActionsInvite0 ChatCapabilitiesParticipantActionsInvite = 0
const ChatCapabilitiesParticipantActionsInvite1 ChatCapabilitiesParticipantActionsInvite = 1
const ChatCapabilitiesParticipantActionsInvite2 ChatCapabilitiesParticipantActionsInvite = 2
Kick int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesParticipantActionsKickMinus2 ChatCapabilitiesParticipantActionsKick = -2
const ChatCapabilitiesParticipantActionsKickMinus1 ChatCapabilitiesParticipantActionsKick = -1
const ChatCapabilitiesParticipantActionsKick0 ChatCapabilitiesParticipantActionsKick = 0
const ChatCapabilitiesParticipantActionsKick1 ChatCapabilitiesParticipantActionsKick = 1
const ChatCapabilitiesParticipantActionsKick2 ChatCapabilitiesParticipantActionsKick = 2
Leave int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesParticipantActionsLeaveMinus2 ChatCapabilitiesParticipantActionsLeave = -2
const ChatCapabilitiesParticipantActionsLeaveMinus1 ChatCapabilitiesParticipantActionsLeave = -1
const ChatCapabilitiesParticipantActionsLeave0 ChatCapabilitiesParticipantActionsLeave = 0
const ChatCapabilitiesParticipantActionsLeave1 ChatCapabilitiesParticipantActionsLeave = 1
const ChatCapabilitiesParticipantActionsLeave2 ChatCapabilitiesParticipantActionsLeave = 2
RevokeInvite int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesParticipantActionsRevokeInviteMinus2 ChatCapabilitiesParticipantActionsRevokeInvite = -2
const ChatCapabilitiesParticipantActionsRevokeInviteMinus1 ChatCapabilitiesParticipantActionsRevokeInvite = -1
const ChatCapabilitiesParticipantActionsRevokeInvite0 ChatCapabilitiesParticipantActionsRevokeInvite = 0
const ChatCapabilitiesParticipantActionsRevokeInvite1 ChatCapabilitiesParticipantActionsRevokeInvite = 1
const ChatCapabilitiesParticipantActionsRevokeInvite2 ChatCapabilitiesParticipantActionsRevokeInvite = 2
Poll int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesPollMinus2 ChatCapabilitiesPoll = -2
const ChatCapabilitiesPollMinus1 ChatCapabilitiesPoll = -1
const ChatCapabilitiesPoll0 ChatCapabilitiesPoll = 0
const ChatCapabilitiesPoll1 ChatCapabilitiesPoll = 1
const ChatCapabilitiesPoll2 ChatCapabilitiesPoll = 2
Reaction int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesReactionMinus2 ChatCapabilitiesReaction = -2
const ChatCapabilitiesReactionMinus1 ChatCapabilitiesReaction = -1
const ChatCapabilitiesReaction0 ChatCapabilitiesReaction = 0
const ChatCapabilitiesReaction1 ChatCapabilitiesReaction = 1
const ChatCapabilitiesReaction2 ChatCapabilitiesReaction = 2
ReactionCount int64Optional

Maximum number of reactions allowed on a single message.

ReadReceipts boolOptional

True if read receipts are supported.

Reply int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesReplyMinus2 ChatCapabilitiesReply = -2
const ChatCapabilitiesReplyMinus1 ChatCapabilitiesReply = -1
const ChatCapabilitiesReply0 ChatCapabilitiesReply = 0
const ChatCapabilitiesReply1 ChatCapabilitiesReply = 1
const ChatCapabilitiesReply2 ChatCapabilitiesReply = 2
State ChatCapabilitiesStateOptional

Chat state update capabilities.

Avatar ChatCapabilitiesStateAvatarOptional

Chat avatar state capability.

Level int64

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesStateAvatarLevelMinus2 ChatCapabilitiesStateAvatarLevel = -2
const ChatCapabilitiesStateAvatarLevelMinus1 ChatCapabilitiesStateAvatarLevel = -1
const ChatCapabilitiesStateAvatarLevel0 ChatCapabilitiesStateAvatarLevel = 0
const ChatCapabilitiesStateAvatarLevel1 ChatCapabilitiesStateAvatarLevel = 1
const ChatCapabilitiesStateAvatarLevel2 ChatCapabilitiesStateAvatarLevel = 2
Description ChatCapabilitiesStateDescriptionOptional

Chat description/topic state capability.

Level int64

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesStateDescriptionLevelMinus2 ChatCapabilitiesStateDescriptionLevel = -2
const ChatCapabilitiesStateDescriptionLevelMinus1 ChatCapabilitiesStateDescriptionLevel = -1
const ChatCapabilitiesStateDescriptionLevel0 ChatCapabilitiesStateDescriptionLevel = 0
const ChatCapabilitiesStateDescriptionLevel1 ChatCapabilitiesStateDescriptionLevel = 1
const ChatCapabilitiesStateDescriptionLevel2 ChatCapabilitiesStateDescriptionLevel = 2
DisappearingTimer ChatCapabilitiesStateDisappearingTimerOptional

Disappearing-message timer state capability.

Level int64

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesStateDisappearingTimerLevelMinus2 ChatCapabilitiesStateDisappearingTimerLevel = -2
const ChatCapabilitiesStateDisappearingTimerLevelMinus1 ChatCapabilitiesStateDisappearingTimerLevel = -1
const ChatCapabilitiesStateDisappearingTimerLevel0 ChatCapabilitiesStateDisappearingTimerLevel = 0
const ChatCapabilitiesStateDisappearingTimerLevel1 ChatCapabilitiesStateDisappearingTimerLevel = 1
const ChatCapabilitiesStateDisappearingTimerLevel2 ChatCapabilitiesStateDisappearingTimerLevel = 2
Title ChatCapabilitiesStateTitleOptional

Chat title state capability.

Level int64

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesStateTitleLevelMinus2 ChatCapabilitiesStateTitleLevel = -2
const ChatCapabilitiesStateTitleLevelMinus1 ChatCapabilitiesStateTitleLevel = -1
const ChatCapabilitiesStateTitleLevel0 ChatCapabilitiesStateTitleLevel = 0
const ChatCapabilitiesStateTitleLevel1 ChatCapabilitiesStateTitleLevel = 1
const ChatCapabilitiesStateTitleLevel2 ChatCapabilitiesStateTitleLevel = 2
Thread int64Optional

-2: rejected, -1: dropped, 0: unsupported, 1: partially supported, 2: fully supported.

One of the following:
const ChatCapabilitiesThreadMinus2 ChatCapabilitiesThread = -2
const ChatCapabilitiesThreadMinus1 ChatCapabilitiesThread = -1
const ChatCapabilitiesThread0 ChatCapabilitiesThread = 0
const ChatCapabilitiesThread1 ChatCapabilitiesThread = 1
const ChatCapabilitiesThread2 ChatCapabilitiesThread = 2
TypingNotifications boolOptional

True if typing notifications are supported.

Description stringOptional

Group chat description/topic when available.

Draft ChatDraftOptional

Current draft object for this chat, or null when no draft is set.

Text string

Rich-text draft body as returned by Beeper.

Attachments map[string, ChatDraftAttachment]Optional

Draft attachments keyed by attachment ID.

ID string

Draft attachment identifier.

Type string

Draft attachment type. GIF and recorded audio are mutually exclusive types.

One of the following:
const ChatDraftAttachmentTypeFile ChatDraftAttachmentType = "file"
const ChatDraftAttachmentTypeGif ChatDraftAttachmentType = "gif"
const ChatDraftAttachmentTypeRecordedAudio ChatDraftAttachmentType = "recorded_audio"
AudioDurationSeconds float64Optional

Audio duration in seconds if known.

FileName stringOptional

Original filename if available.

FilePath stringOptional

Local filesystem path for the draft attachment.

FileSize float64Optional

File size in bytes if known.

MimeType stringOptional

MIME type if known.

Size ChatDraftAttachmentSizeOptional

Pixel dimensions of the attachment.

Height float64Optional
Width float64Optional
StickerID stringOptional

Sticker identifier if the draft attachment is a sticker.

ImgURL stringOptional

Local filesystem path to the chat avatar image when available.

IsArchived boolOptional

True if chat is archived.

IsLowPriority boolOptional

True if chat is marked low priority.

IsMarkedUnread boolOptional

True if the chat was explicitly marked unread by the authenticated user.

IsMuted boolOptional

True if chat notifications are muted.

IsPinned boolOptional

True if chat is pinned.

IsReadOnly boolOptional

True if messages cannot be sent in this chat.

LastActivity TimeOptional

Timestamp of last activity.

formatdate-time
LastReadMessageSortKey stringOptional

Last read message sortKey.

LocalChatID stringOptional

Local chat ID specific to this installation.

MessageExpirySeconds int64Optional

Disappearing-message timer in seconds when available.

Reminder ChatReminderOptional

Current reminder for this chat, or null when no reminder is set.

DismissOnIncomingMessage boolOptional

Cancel reminder if someone messages in the chat.

RemindAt TimeOptional

Timestamp when the reminder should trigger.

formatdate-time
Snooze ChatSnoozeOptional

Current snooze state for this chat, or null when no snooze is set.

SnoozeUntil TimeOptional

Timestamp when the snooze expires.

formatdate-time
UserSnoozedAt TimeOptional

Timestamp when the user set the snooze.

formatdate-time
UnreadMentionsCount int64Optional

Number of unread messages that mention the authenticated user or @room.

Mark a chat as unread

package main

import (
  "context"
  "fmt"

  "github.com/beeper/desktop-api-go"
  "github.com/beeper/desktop-api-go/option"
)

func main() {
  client := beeperdesktopapi.NewClient(
    option.WithAccessToken("My Access Token"),
  )
  chat, err := client.Chats.MarkUnread(
    context.TODO(),
    "!NCdzlIaMjZUmvmvyHU:beeper.com",
    beeperdesktopapi.ChatMarkUnreadParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", chat.ID)
}
{
  "id": "!whatsapp_15550101002:ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc.local-whatsapp.localhost",
  "accountID": "local-whatsapp_ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc",
  "network": "WhatsApp",
  "participants": {
    "hasMore": false,
    "items": [
      {
        "id": "@15550101002:local-whatsapp.localhost",
        "cannotMessage": false,
        "email": "email",
        "fullName": "Kishan Bagaria",
        "imgURL": "imgURL",
        "isSelf": false,
        "phoneNumber": "+15550101002",
        "username": "username",
        "isAdmin": true,
        "isNetworkBot": true,
        "isPending": true
      },
      {
        "id": "@ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc:local-whatsapp.localhost",
        "cannotMessage": false,
        "email": "email",
        "fullName": "Batuhan İçöz",
        "imgURL": "imgURL",
        "isSelf": true,
        "phoneNumber": "phoneNumber",
        "username": "username",
        "isAdmin": true,
        "isNetworkBot": true,
        "isPending": true
      }
    ],
    "total": 2
  },
  "title": "Kishan Bagaria",
  "type": "single",
  "unreadCount": 0,
  "capabilities": {
    "allowedReactions": [
      "string"
    ],
    "archive": true,
    "attachments": {
      "foo": {
        "mimeTypes": {
          "foo": -2
        },
        "caption": -2,
        "maxCaptionLength": 0,
        "maxDuration": 0,
        "maxHeight": 0,
        "maxSize": 0,
        "maxWidth": 0,
        "viewOnce": true
      }
    },
    "customEmojiReactions": true,
    "delete": -2,
    "deleteChat": true,
    "deleteChatForEveryone": true,
    "deleteForMe": true,
    "deleteMaxAge": 0,
    "disappearingTimer": {
      "omitEmptyTimer": true,
      "timers": [
        0
      ],
      "types": [
        "afterRead"
      ]
    },
    "edit": -2,
    "editMaxAge": 0,
    "editMaxCount": 0,
    "formatting": {
      "foo": -2
    },
    "locationMessage": -2,
    "markAsUnread": true,
    "maxTextLength": 0,
    "messageRequest": {
      "acceptWithButton": -2,
      "acceptWithMessage": -2
    },
    "participantActions": {
      "ban": -2,
      "invite": -2,
      "kick": -2,
      "leave": -2,
      "revokeInvite": -2
    },
    "poll": -2,
    "reaction": -2,
    "reactionCount": 0,
    "readReceipts": true,
    "reply": -2,
    "state": {
      "avatar": {
        "level": -2
      },
      "description": {
        "level": -2
      },
      "disappearingTimer": {
        "level": -2
      },
      "title": {
        "level": -2
      }
    },
    "thread": -2,
    "typingNotifications": true
  },
  "description": "description",
  "draft": {
    "text": "text",
    "attachments": {
      "foo": {
        "id": "id",
        "type": "file",
        "audioDurationSeconds": 0,
        "fileName": "fileName",
        "filePath": "filePath",
        "fileSize": 0,
        "mimeType": "mimeType",
        "size": {
          "height": 0,
          "width": 0
        },
        "stickerID": "stickerID"
      }
    }
  },
  "imgURL": "imgURL",
  "isArchived": false,
  "isLowPriority": true,
  "isMarkedUnread": true,
  "isMuted": false,
  "isPinned": false,
  "isReadOnly": true,
  "lastActivity": "2026-05-05T20:11:54.000Z",
  "lastReadMessageSortKey": "455171049984",
  "localChatID": "5639",
  "messageExpirySeconds": 0,
  "reminder": {
    "dismissOnIncomingMessage": true,
    "remindAt": "2025-08-31T23:30:12.520Z"
  },
  "snooze": {
    "snoozeUntil": "2025-08-31T23:30:12.520Z",
    "userSnoozedAt": "2025-08-31T23:30:12.520Z"
  },
  "unreadMentionsCount": 0
}
Returns Examples
{
  "id": "!whatsapp_15550101002:ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc.local-whatsapp.localhost",
  "accountID": "local-whatsapp_ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc",
  "network": "WhatsApp",
  "participants": {
    "hasMore": false,
    "items": [
      {
        "id": "@15550101002:local-whatsapp.localhost",
        "cannotMessage": false,
        "email": "email",
        "fullName": "Kishan Bagaria",
        "imgURL": "imgURL",
        "isSelf": false,
        "phoneNumber": "+15550101002",
        "username": "username",
        "isAdmin": true,
        "isNetworkBot": true,
        "isPending": true
      },
      {
        "id": "@ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc:local-whatsapp.localhost",
        "cannotMessage": false,
        "email": "email",
        "fullName": "Batuhan İçöz",
        "imgURL": "imgURL",
        "isSelf": true,
        "phoneNumber": "phoneNumber",
        "username": "username",
        "isAdmin": true,
        "isNetworkBot": true,
        "isPending": true
      }
    ],
    "total": 2
  },
  "title": "Kishan Bagaria",
  "type": "single",
  "unreadCount": 0,
  "capabilities": {
    "allowedReactions": [
      "string"
    ],
    "archive": true,
    "attachments": {
      "foo": {
        "mimeTypes": {
          "foo": -2
        },
        "caption": -2,
        "maxCaptionLength": 0,
        "maxDuration": 0,
        "maxHeight": 0,
        "maxSize": 0,
        "maxWidth": 0,
        "viewOnce": true
      }
    },
    "customEmojiReactions": true,
    "delete": -2,
    "deleteChat": true,
    "deleteChatForEveryone": true,
    "deleteForMe": true,
    "deleteMaxAge": 0,
    "disappearingTimer": {
      "omitEmptyTimer": true,
      "timers": [
        0
      ],
      "types": [
        "afterRead"
      ]
    },
    "edit": -2,
    "editMaxAge": 0,
    "editMaxCount": 0,
    "formatting": {
      "foo": -2
    },
    "locationMessage": -2,
    "markAsUnread": true,
    "maxTextLength": 0,
    "messageRequest": {
      "acceptWithButton": -2,
      "acceptWithMessage": -2
    },
    "participantActions": {
      "ban": -2,
      "invite": -2,
      "kick": -2,
      "leave": -2,
      "revokeInvite": -2
    },
    "poll": -2,
    "reaction": -2,
    "reactionCount": 0,
    "readReceipts": true,
    "reply": -2,
    "state": {
      "avatar": {
        "level": -2
      },
      "description": {
        "level": -2
      },
      "disappearingTimer": {
        "level": -2
      },
      "title": {
        "level": -2
      }
    },
    "thread": -2,
    "typingNotifications": true
  },
  "description": "description",
  "draft": {
    "text": "text",
    "attachments": {
      "foo": {
        "id": "id",
        "type": "file",
        "audioDurationSeconds": 0,
        "fileName": "fileName",
        "filePath": "filePath",
        "fileSize": 0,
        "mimeType": "mimeType",
        "size": {
          "height": 0,
          "width": 0
        },
        "stickerID": "stickerID"
      }
    }
  },
  "imgURL": "imgURL",
  "isArchived": false,
  "isLowPriority": true,
  "isMarkedUnread": true,
  "isMuted": false,
  "isPinned": false,
  "isReadOnly": true,
  "lastActivity": "2026-05-05T20:11:54.000Z",
  "lastReadMessageSortKey": "455171049984",
  "localChatID": "5639",
  "messageExpirySeconds": 0,
  "reminder": {
    "dismissOnIncomingMessage": true,
    "remindAt": "2025-08-31T23:30:12.520Z"
  },
  "snooze": {
    "snoozeUntil": "2025-08-31T23:30:12.520Z",
    "userSnoozedAt": "2025-08-31T23:30:12.520Z"
  },
  "unreadMentionsCount": 0
}