Skip to content
Download Beeper

Chats

Manage chats

Retrieve chat details
client.chats.retrieve(stringchatID, ChatRetrieveParams { maxParticipantCount } query?, RequestOptionsoptions?): Chat { id, accountID, participants, 9 more }
GET/v1/chats/{chatID}
Create or start a chat
client.chats.create(ChatCreateParams { accountID, allowInvite, messageText, 5 more } body, RequestOptionsoptions?): ChatCreateResponse { chatID, status }
POST/v1/chats
List chats
client.chats.list(ChatListParams { accountIDs, cursor, direction } query?, RequestOptionsoptions?): CursorNoLimit<ChatListResponse { preview } >
GET/v1/chats
Search chats
client.chats.search(ChatSearchParams { accountIDs, cursor, direction, 9 more } query?, RequestOptionsoptions?): CursorSearch<Chat { id, accountID, participants, 9 more } >
GET/v1/chats/search
Archive or unarchive a chat
client.chats.archive(stringchatID, ChatArchiveParams { archived } body?, RequestOptionsoptions?): void
POST/v1/chats/{chatID}/archive
ModelsExpand Collapse
Chat { id, accountID, participants, 9 more }
id: string

Unique identifier of the chat across Beeper.

accountID: string

Account ID this chat belongs to.

participants: Participants { hasMore, items, total }

Chat participants information.

hasMore: boolean

True if there are more participants than included in items.

items: Array<User { id, cannotMessage, email, 5 more } >

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

id: string

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

cannotMessage?: boolean

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?: string

Email address if known. Not guaranteed verified.

fullName?: string

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

imgURL?: string

Avatar image URL if available. May be temporary or local-only to this device; download promptly if durable access is needed.

isSelf?: boolean

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

phoneNumber?: string

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

username?: string

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

total: number

Total number of participants in the chat.

title: string

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

type: "single" | "group"

Chat type: 'single' for direct messages, 'group' for group chats.

Accepts one of the following:
"single"
"group"
unreadCount: number

Number of unread messages.

isArchived?: boolean

True if chat is archived.

isMuted?: boolean

True if chat notifications are muted.

isPinned?: boolean

True if chat is pinned.

lastActivity?: string

Timestamp of last activity.

formatdate-time
lastReadMessageSortKey?: string

Last read message sortKey.

localChatID?: string | null

Local chat ID specific to this Beeper Desktop installation.

ChatsReminders

Manage reminders for chats

Create a chat reminder
client.chats.reminders.create(stringchatID, ReminderCreateParams { reminder } body, RequestOptionsoptions?): void
POST/v1/chats/{chatID}/reminders
Delete a chat reminder
client.chats.reminders.delete(stringchatID, RequestOptionsoptions?): void
DELETE/v1/chats/{chatID}/reminders

ChatsMessages

Manage chat messages

ChatsMessagesReactions

Manage message reactions

Add a reaction
client.chats.messages.reactions.add(stringmessageID, ReactionAddParams { chatID, reactionKey, transactionID } params, RequestOptionsoptions?): ReactionAddResponse { chatID, messageID, reactionKey, 2 more }
POST/v1/chats/{chatID}/messages/{messageID}/reactions
Remove a reaction
client.chats.messages.reactions.delete(stringmessageID, ReactionDeleteParams { chatID, reactionKey } params, RequestOptionsoptions?): ReactionDeleteResponse { chatID, messageID, reactionKey, success }
DELETE/v1/chats/{chatID}/messages/{messageID}/reactions