Skip to content
Download Beeper

Shared

ModelsExpand Collapse
type APIError struct{…}
Code string
Message string
Details map[string, any]Optional
type AppStateSnapshot struct{…}
E2EE AppStateSnapshotE2EE

Encrypted messaging setup status.

CrossSigning bool

Whether this account can verify trusted devices.

FirstSyncDone bool

Whether the first encrypted message sync is complete.

HasBackedUpRecoveryKey bool

Whether the user confirmed that they saved their recovery key.

Initialized bool

Whether encrypted messaging setup has started.

KeyBackup bool

Whether encrypted message backup is available.

Secrets AppStateSnapshotE2EESecrets

Encrypted messaging keys available on this device.

MasterKey bool

Whether the account identity key is available.

MegolmBackupKey bool

Whether the encrypted message backup key is available.

RecoveryKey bool

Whether a recovery key is available.

SelfSigningKey bool

Whether the device trust key is available.

UserSigningKey bool

Whether the user trust key is available.

SecretStorage bool

Whether secure key storage is available.

Verified bool

Whether this device is trusted for encrypted messages.

RecoveryKeyGeneratedAt float64Optional

Unix timestamp for when the recovery key was created.

State AppStateSnapshotState

Current sign-in and encrypted messaging setup state for Beeper Desktop or Beeper Server.

One of the following:
const AppStateSnapshotStateNeedsLogin AppStateSnapshotState = "needs-login"
const AppStateSnapshotStateInitializing AppStateSnapshotState = "initializing"
const AppStateSnapshotStateNeedsCrossSigningSetup AppStateSnapshotState = "needs-cross-signing-setup"
const AppStateSnapshotStateNeedsVerification AppStateSnapshotState = "needs-verification"
const AppStateSnapshotStateNeedsSecrets AppStateSnapshotState = "needs-secrets"
const AppStateSnapshotStateNeedsFirstSync AppStateSnapshotState = "needs-first-sync"
const AppStateSnapshotStateReady AppStateSnapshotState = "ready"
Matrix AppStateSnapshotMatrixOptional

Signed-in account details. Omitted until sign-in is complete.

DeviceID string

Current device ID.

Homeserver string

Beeper homeserver URL for this account.

UserID string

Signed-in Beeper user ID.

Verification AppStateSnapshotVerificationOptional

Trusted device verification progress.

ID string

Verification ID to pass in verification action paths.

AvailableActions []string

Verification actions that are valid for the current state.

One of the following:
const AppStateSnapshotVerificationAvailableActionAccept AppStateSnapshotVerificationAvailableAction = "accept"
const AppStateSnapshotVerificationAvailableActionCancel AppStateSnapshotVerificationAvailableAction = "cancel"
const AppStateSnapshotVerificationAvailableActionQRConfirmScanned AppStateSnapshotVerificationAvailableAction = "qr.confirmScanned"
const AppStateSnapshotVerificationAvailableActionSASStart AppStateSnapshotVerificationAvailableAction = "sas.start"
const AppStateSnapshotVerificationAvailableActionSASConfirm AppStateSnapshotVerificationAvailableAction = "sas.confirm"
Direction string

Whether this device started or received the verification.

One of the following:
const AppStateSnapshotVerificationDirectionIncoming AppStateSnapshotVerificationDirection = "incoming"
const AppStateSnapshotVerificationDirectionOutgoing AppStateSnapshotVerificationDirection = "outgoing"
Methods []string

Verification methods supported for this transaction.

One of the following:
const AppStateSnapshotVerificationMethodQR AppStateSnapshotVerificationMethod = "qr"
const AppStateSnapshotVerificationMethodSAS AppStateSnapshotVerificationMethod = "sas"
Purpose string

Why this verification exists.

One of the following:
const AppStateSnapshotVerificationPurposeLogin AppStateSnapshotVerificationPurpose = "login"
const AppStateSnapshotVerificationPurposeDevice AppStateSnapshotVerificationPurpose = "device"
State string

Current trusted-device verification state.

One of the following:
const AppStateSnapshotVerificationStateRequested AppStateSnapshotVerificationState = "requested"
const AppStateSnapshotVerificationStateReady AppStateSnapshotVerificationState = "ready"
const AppStateSnapshotVerificationStateSASReady AppStateSnapshotVerificationState = "sas_ready"
const AppStateSnapshotVerificationStateQRScanned AppStateSnapshotVerificationState = "qr_scanned"
const AppStateSnapshotVerificationStateDone AppStateSnapshotVerificationState = "done"
const AppStateSnapshotVerificationStateCancelled AppStateSnapshotVerificationState = "cancelled"
const AppStateSnapshotVerificationStateError AppStateSnapshotVerificationState = "error"
Error AppStateSnapshotVerificationErrorOptional

Verification error details, if verification stopped.

Code string

Verification error code.

Reason string

User-facing verification error message.

OtherDevice AppStateSnapshotVerificationOtherDeviceOptional

Other device participating in verification.

ID string

Other device ID.

Name stringOptional

Other device display name, if known.

OtherUserID stringOptional

Other Beeper user participating in verification.

QR AppStateSnapshotVerificationQROptional

QR verification data.

Data string

QR code payload to display for verification.

SAS AppStateSnapshotVerificationSASOptional

Emoji or number comparison data for verification.

Emojis string

Emoji sequence to compare on both devices.

Decimals stringOptional

Number sequence to compare on both devices.

type Attachment struct{…}
Type AttachmentType

Attachment type.

One of the following:
const AttachmentTypeUnknown AttachmentType = "unknown"
const AttachmentTypeImg AttachmentType = "img"
const AttachmentTypeVideo AttachmentType = "video"
const AttachmentTypeAudio AttachmentType = "audio"
ID stringOptional

Attachment identifier, typically an mxc:// URL. Use the download file endpoint to get a local file path.

Duration float64Optional

Duration in seconds (audio/video).

FileName stringOptional

Original filename if available.

FileSize float64Optional

File size in bytes if known.

IsGif boolOptional

True if the attachment is a GIF.

IsSticker boolOptional

True if the attachment is a sticker.

IsVoiceNote boolOptional

True if the attachment is a voice note.

MimeType stringOptional

MIME type if known (e.g., ‘image/png’).

PosterImg stringOptional

Preview image URL for video attachments (poster frame). May be temporary or available only on this device; download promptly if durable access is needed.

Size AttachmentSizeOptional

Pixel dimensions of the attachment: width/height in px.

Height float64Optional
Width float64Optional
SrcURL stringOptional

Public URL or local file path to fetch the file. May be temporary or available only on this device; download promptly if durable access is needed.

Transcription AttachmentTranscriptionOptional

Attachment transcription if available.

Engine string

Transcription engine.

Transcription string

Transcribed text.

Language stringOptional

Detected or selected language.

type AttachmentCapabilities struct{…}

Capabilities for one attachment message type.

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 AttachmentCapabilitiesMimeTypeMinus2 AttachmentCapabilitiesMimeType = -2
const AttachmentCapabilitiesMimeTypeMinus1 AttachmentCapabilitiesMimeType = -1
const AttachmentCapabilitiesMimeType0 AttachmentCapabilitiesMimeType = 0
const AttachmentCapabilitiesMimeType1 AttachmentCapabilitiesMimeType = 1
const AttachmentCapabilitiesMimeType2 AttachmentCapabilitiesMimeType = 2
Caption int64Optional

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

One of the following:
const AttachmentCapabilitiesCaptionMinus2 AttachmentCapabilitiesCaption = -2
const AttachmentCapabilitiesCaptionMinus1 AttachmentCapabilitiesCaption = -1
const AttachmentCapabilitiesCaption0 AttachmentCapabilitiesCaption = 0
const AttachmentCapabilitiesCaption1 AttachmentCapabilitiesCaption = 1
const AttachmentCapabilitiesCaption2 AttachmentCapabilitiesCaption = 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.

type ChatCapabilities struct{…}

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, AttachmentCapabilities]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 AttachmentCapabilitiesMimeTypeMinus2 AttachmentCapabilitiesMimeType = -2
const AttachmentCapabilitiesMimeTypeMinus1 AttachmentCapabilitiesMimeType = -1
const AttachmentCapabilitiesMimeType0 AttachmentCapabilitiesMimeType = 0
const AttachmentCapabilitiesMimeType1 AttachmentCapabilitiesMimeType = 1
const AttachmentCapabilitiesMimeType2 AttachmentCapabilitiesMimeType = 2
Caption int64Optional

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

One of the following:
const AttachmentCapabilitiesCaptionMinus2 AttachmentCapabilitiesCaption = -2
const AttachmentCapabilitiesCaptionMinus1 AttachmentCapabilitiesCaption = -1
const AttachmentCapabilitiesCaption0 AttachmentCapabilitiesCaption = 0
const AttachmentCapabilitiesCaption1 AttachmentCapabilitiesCaption = 1
const AttachmentCapabilitiesCaption2 AttachmentCapabilitiesCaption = 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 ChatStateCapabilitiesOptional

Chat state update capabilities.

Avatar ChatStateCapabilitiesAvatarOptional

Chat avatar state capability.

Level int64

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

One of the following:
const ChatStateCapabilitiesAvatarLevelMinus2 ChatStateCapabilitiesAvatarLevel = -2
const ChatStateCapabilitiesAvatarLevelMinus1 ChatStateCapabilitiesAvatarLevel = -1
const ChatStateCapabilitiesAvatarLevel0 ChatStateCapabilitiesAvatarLevel = 0
const ChatStateCapabilitiesAvatarLevel1 ChatStateCapabilitiesAvatarLevel = 1
const ChatStateCapabilitiesAvatarLevel2 ChatStateCapabilitiesAvatarLevel = 2
Description ChatStateCapabilitiesDescriptionOptional

Chat description/topic state capability.

Level int64

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

One of the following:
const ChatStateCapabilitiesDescriptionLevelMinus2 ChatStateCapabilitiesDescriptionLevel = -2
const ChatStateCapabilitiesDescriptionLevelMinus1 ChatStateCapabilitiesDescriptionLevel = -1
const ChatStateCapabilitiesDescriptionLevel0 ChatStateCapabilitiesDescriptionLevel = 0
const ChatStateCapabilitiesDescriptionLevel1 ChatStateCapabilitiesDescriptionLevel = 1
const ChatStateCapabilitiesDescriptionLevel2 ChatStateCapabilitiesDescriptionLevel = 2
DisappearingTimer ChatStateCapabilitiesDisappearingTimerOptional

Disappearing-message timer state capability.

Level int64

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

One of the following:
const ChatStateCapabilitiesDisappearingTimerLevelMinus2 ChatStateCapabilitiesDisappearingTimerLevel = -2
const ChatStateCapabilitiesDisappearingTimerLevelMinus1 ChatStateCapabilitiesDisappearingTimerLevel = -1
const ChatStateCapabilitiesDisappearingTimerLevel0 ChatStateCapabilitiesDisappearingTimerLevel = 0
const ChatStateCapabilitiesDisappearingTimerLevel1 ChatStateCapabilitiesDisappearingTimerLevel = 1
const ChatStateCapabilitiesDisappearingTimerLevel2 ChatStateCapabilitiesDisappearingTimerLevel = 2
Title ChatStateCapabilitiesTitleOptional

Chat title state capability.

Level int64

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

One of the following:
const ChatStateCapabilitiesTitleLevelMinus2 ChatStateCapabilitiesTitleLevel = -2
const ChatStateCapabilitiesTitleLevelMinus1 ChatStateCapabilitiesTitleLevel = -1
const ChatStateCapabilitiesTitleLevel0 ChatStateCapabilitiesTitleLevel = 0
const ChatStateCapabilitiesTitleLevel1 ChatStateCapabilitiesTitleLevel = 1
const ChatStateCapabilitiesTitleLevel2 ChatStateCapabilitiesTitleLevel = 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.

type ChatDraft struct{…}

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, DraftAttachment]Optional

Draft attachments keyed by attachment ID.

ID string

Draft attachment identifier.

Type DraftAttachmentType

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

One of the following:
const DraftAttachmentTypeFile DraftAttachmentType = "file"
const DraftAttachmentTypeGif DraftAttachmentType = "gif"
const DraftAttachmentTypeRecordedAudio DraftAttachmentType = "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 DraftAttachmentSizeOptional

Pixel dimensions of the attachment.

Height float64Optional
Width float64Optional
StickerID stringOptional

Sticker identifier if the draft attachment is a sticker.

type ChatStateCapabilities struct{…}

Chat state update capabilities.

Avatar ChatStateCapabilitiesAvatarOptional

Chat avatar state capability.

Level int64

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

One of the following:
const ChatStateCapabilitiesAvatarLevelMinus2 ChatStateCapabilitiesAvatarLevel = -2
const ChatStateCapabilitiesAvatarLevelMinus1 ChatStateCapabilitiesAvatarLevel = -1
const ChatStateCapabilitiesAvatarLevel0 ChatStateCapabilitiesAvatarLevel = 0
const ChatStateCapabilitiesAvatarLevel1 ChatStateCapabilitiesAvatarLevel = 1
const ChatStateCapabilitiesAvatarLevel2 ChatStateCapabilitiesAvatarLevel = 2
Description ChatStateCapabilitiesDescriptionOptional

Chat description/topic state capability.

Level int64

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

One of the following:
const ChatStateCapabilitiesDescriptionLevelMinus2 ChatStateCapabilitiesDescriptionLevel = -2
const ChatStateCapabilitiesDescriptionLevelMinus1 ChatStateCapabilitiesDescriptionLevel = -1
const ChatStateCapabilitiesDescriptionLevel0 ChatStateCapabilitiesDescriptionLevel = 0
const ChatStateCapabilitiesDescriptionLevel1 ChatStateCapabilitiesDescriptionLevel = 1
const ChatStateCapabilitiesDescriptionLevel2 ChatStateCapabilitiesDescriptionLevel = 2
DisappearingTimer ChatStateCapabilitiesDisappearingTimerOptional

Disappearing-message timer state capability.

Level int64

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

One of the following:
const ChatStateCapabilitiesDisappearingTimerLevelMinus2 ChatStateCapabilitiesDisappearingTimerLevel = -2
const ChatStateCapabilitiesDisappearingTimerLevelMinus1 ChatStateCapabilitiesDisappearingTimerLevel = -1
const ChatStateCapabilitiesDisappearingTimerLevel0 ChatStateCapabilitiesDisappearingTimerLevel = 0
const ChatStateCapabilitiesDisappearingTimerLevel1 ChatStateCapabilitiesDisappearingTimerLevel = 1
const ChatStateCapabilitiesDisappearingTimerLevel2 ChatStateCapabilitiesDisappearingTimerLevel = 2
Title ChatStateCapabilitiesTitleOptional

Chat title state capability.

Level int64

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

One of the following:
const ChatStateCapabilitiesTitleLevelMinus2 ChatStateCapabilitiesTitleLevel = -2
const ChatStateCapabilitiesTitleLevelMinus1 ChatStateCapabilitiesTitleLevel = -1
const ChatStateCapabilitiesTitleLevel0 ChatStateCapabilitiesTitleLevel = 0
const ChatStateCapabilitiesTitleLevel1 ChatStateCapabilitiesTitleLevel = 1
const ChatStateCapabilitiesTitleLevel2 ChatStateCapabilitiesTitleLevel = 2
type DraftAttachment struct{…}
ID string

Draft attachment identifier.

Type DraftAttachmentType

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

One of the following:
const DraftAttachmentTypeFile DraftAttachmentType = "file"
const DraftAttachmentTypeGif DraftAttachmentType = "gif"
const DraftAttachmentTypeRecordedAudio DraftAttachmentType = "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 DraftAttachmentSizeOptional

Pixel dimensions of the attachment.

Height float64Optional
Width float64Optional
StickerID stringOptional

Sticker identifier if the draft attachment is a sticker.

type Error struct{…}
Code string

Machine-readable error code

Message string

Error message

Details ErrorDetailsUnionOptional

Additional error details for debugging

One of the following:
ErrorDetailsValidationDetails
Issues []ErrorDetailsValidationDetailsIssue

List of validation issues

Code string

Validation issue code

Message string

Human-readable description of the validation issue

Path []ErrorDetailsValidationDetailsIssuePathUnion

Path pointing to the invalid field within the payload

One of the following:
string
float64
map[string, any]
type Message struct{…}
ID string

Message ID.

AccountID string

Beeper account ID the message belongs to.

ChatID string

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

SenderID string

Fully qualified sender user ID. Network-backed IDs usually include the network prefix and homeserver.

SortKey string

A unique, sortable key used to sort messages.

Timestamp Time

Message timestamp.

formatdate-time
Attachments []AttachmentOptional

Attachments included with this message, if any.

Type AttachmentType

Attachment type.

One of the following:
const AttachmentTypeUnknown AttachmentType = "unknown"
const AttachmentTypeImg AttachmentType = "img"
const AttachmentTypeVideo AttachmentType = "video"
const AttachmentTypeAudio AttachmentType = "audio"
ID stringOptional

Attachment identifier, typically an mxc:// URL. Use the download file endpoint to get a local file path.

Duration float64Optional

Duration in seconds (audio/video).

FileName stringOptional

Original filename if available.

FileSize float64Optional

File size in bytes if known.

IsGif boolOptional

True if the attachment is a GIF.

IsSticker boolOptional

True if the attachment is a sticker.

IsVoiceNote boolOptional

True if the attachment is a voice note.

MimeType stringOptional

MIME type if known (e.g., ‘image/png’).

PosterImg stringOptional

Preview image URL for video attachments (poster frame). May be temporary or available only on this device; download promptly if durable access is needed.

Size AttachmentSizeOptional

Pixel dimensions of the attachment: width/height in px.

Height float64Optional
Width float64Optional
SrcURL stringOptional

Public URL or local file path to fetch the file. May be temporary or available only on this device; download promptly if durable access is needed.

Transcription AttachmentTranscriptionOptional

Attachment transcription if available.

Engine string

Transcription engine.

Transcription string

Transcribed text.

Language stringOptional

Detected or selected language.

EditedTimestamp TimeOptional

Timestamp when the message was edited, if known.

formatdate-time
IsDeleted boolOptional

True if the message has been deleted.

IsHidden boolOptional

True if the message is hidden from normal display.

IsSender boolOptional

True if the authenticated user sent the message.

IsUnread boolOptional

True if the message is unread for the authenticated user. May be omitted.

LinkedMessageID stringOptional

ID of the message this is a reply to, if any.

Mentions []stringOptional

Mentioned user IDs, @room, or null for legacy messages that require text scanning.

Reactions []ReactionOptional

Reactions to the message, if any.

ID string

Reaction ID. When a participant can react more than once, the ID is the participant ID concatenated with the reaction key; otherwise it equals the participant ID.

ParticipantID string

User ID of the participant who reacted.

ReactionKey string

The reaction key: an emoji (😄), a network-specific key, or a shortcode like “smiling-face”.

Emoji boolOptional

True if the reactionKey is an emoji.

ImgURL stringOptional

URL to the reaction’s image. May be temporary or available only on this device; download promptly if durable access is needed.

Seen MessageSeenUnionOptional

Read receipt state for this message, when available.

One of the following:
bool
Time
type MessageSeenByParticipant map[string, MessageSeenByParticipantItemUnion]

Group read receipt state keyed by participant ID.

One of the following:
bool
Time
SenderName stringOptional

Resolved sender display name.

SendStatus SendStatusOptional

Message send status for this message, when reported by the bridge.

Status SendStatusStatus

Current status of the message send attempt.

One of the following:
const SendStatusStatusSuccess SendStatusStatus = "SUCCESS"
const SendStatusStatusPending SendStatusStatus = "PENDING"
const SendStatusStatusFailRetriable SendStatusStatus = "FAIL_RETRIABLE"
const SendStatusStatusFailPermanent SendStatusStatus = "FAIL_PERMANENT"
Timestamp Time

Timestamp for the send status event.

formatdate-time
DeliveredToUsers []stringOptional

User IDs the message was delivered to, when reported by the network.

InternalError stringOptional

Diagnostic error detail from the messaging network adapter. Do not show directly to users.

Message stringOptional

Human-readable send status or failure message.

Reason stringOptional

Machine-readable failure reason. Present when the send status is a failure.

Text stringOptional

Rich-text message body if present.

Type MessageTypeOptional

Message content type. Useful for distinguishing reactions, media messages, and state events from regular text messages.

One of the following:
const MessageTypeText MessageType = "TEXT"
const MessageTypeNotice MessageType = "NOTICE"
const MessageTypeImage MessageType = "IMAGE"
const MessageTypeVideo MessageType = "VIDEO"
const MessageTypeVoice MessageType = "VOICE"
const MessageTypeAudio MessageType = "AUDIO"
const MessageTypeFile MessageType = "FILE"
const MessageTypeSticker MessageType = "STICKER"
const MessageTypeLocation MessageType = "LOCATION"
const MessageTypeReaction MessageType = "REACTION"
type Reaction struct{…}
ID string

Reaction ID. When a participant can react more than once, the ID is the participant ID concatenated with the reaction key; otherwise it equals the participant ID.

ParticipantID string

User ID of the participant who reacted.

ReactionKey string

The reaction key: an emoji (😄), a network-specific key, or a shortcode like “smiling-face”.

Emoji boolOptional

True if the reactionKey is an emoji.

ImgURL stringOptional

URL to the reaction’s image. May be temporary or available only on this device; download promptly if durable access is needed.

type SendStatus struct{…}

Message send status for this message, when reported by the bridge.

Status SendStatusStatus

Current status of the message send attempt.

One of the following:
const SendStatusStatusSuccess SendStatusStatus = "SUCCESS"
const SendStatusStatusPending SendStatusStatus = "PENDING"
const SendStatusStatusFailRetriable SendStatusStatus = "FAIL_RETRIABLE"
const SendStatusStatusFailPermanent SendStatusStatus = "FAIL_PERMANENT"
Timestamp Time

Timestamp for the send status event.

formatdate-time
DeliveredToUsers []stringOptional

User IDs the message was delivered to, when reported by the network.

InternalError stringOptional

Diagnostic error detail from the messaging network adapter. Do not show directly to users.

Message stringOptional

Human-readable send status or failure message.

Reason stringOptional

Machine-readable failure reason. Present when the send status is a failure.

type User struct{…}

User the account belongs to.

ID string

Stable Beeper user ID. Use as the primary key when referencing a person.

CannotMessage boolOptional

True if Beeper cannot initiate messages to this user (e.g., blocked, network restriction, or no DM path). The user may still message you.

Email stringOptional

Email address if known. Not guaranteed verified.

FullName stringOptional

Display name as shown in clients (e.g., ‘Alice Example’). May include emojis.

ImgURL stringOptional

Avatar image URL if available. This may be a remote URL, media URL, data URL, or local file URL depending on the source. May be temporary or available only on this device; download promptly if durable access is needed.

IsSelf boolOptional

True if this user represents the authenticated account’s own identity.

PhoneNumber stringOptional

User’s phone number in E.164 format (e.g., ‘+14155552671’). Omit if unknown.

Username stringOptional

Human-readable handle if available (e.g., ‘@alice’). May be network-specific and not globally unique.