Skip to content
Download Beeper

Send a message

client.messages.send(stringchatID, MessageSendParams { attachment, replyToMessageID, text } body?, RequestOptionsoptions?): MessageSendResponse { chatID, pendingMessageID }
POST/v1/chats/{chatID}/messages

Send a text message to a specific chat. Supports replying to existing messages. Returns a pending message ID.

ParametersExpand Collapse
chatID: string

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

body: MessageSendParams { attachment, replyToMessageID, text }
attachment?: Attachment

Single attachment to send with the message

uploadID: string

Upload ID from uploadAsset endpoint. Required to reference uploaded files.

duration?: number

Duration in seconds (optional override of cached value)

fileName?: string

Filename (optional override of cached value)

mimeType?: string

MIME type (optional override of cached value)

size?: Size { height, width }

Dimensions (optional override of cached value)

height: number
width: number
type?: "image" | "video" | "audio" | 4 more

Attachment type hint (image, video, audio, file, gif, voice-note, sticker). If omitted, auto-detected from mimeType

One of the following:
"image"
"video"
"audio"
"file"
"gif"
"voice-note"
"sticker"
replyToMessageID?: string

Provide a message ID to send this as a reply to an existing message

text?: string

Draft text. Plain text and Markdown are converted to Beeper rich text with the same rules used by send and edit.

ReturnsExpand Collapse
MessageSendResponse { chatID, pendingMessageID }
chatID: string

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

pendingMessageID: string

Pending ID assigned to the message before the network confirms the send. Pass it to GET /v1/chats/{chatID}/messages/{messageID} to resolve, or wait for the matching message.upserted over the WebSocket.

Send a message

import BeeperDesktop from '@beeper/desktop-api';

const client = new BeeperDesktop({
  accessToken: process.env['BEEPER_ACCESS_TOKEN'], // This is the default and can be omitted
});

const response = await client.messages.send('!NCdzlIaMjZUmvmvyHU:beeper.com');

console.log(response.pendingMessageID);
{
  "chatID": "!whatsapp_15550101002:ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc.local-whatsapp.localhost",
  "pendingMessageID": "m1694783291234567"
}
Returns Examples
{
  "chatID": "!whatsapp_15550101002:ba_EvYDBBsZbRQAy3UOSWqG0LuTVkc.local-whatsapp.localhost",
  "pendingMessageID": "m1694783291234567"
}