## Send `client.messages.send(stringchatID, MessageSendParamsbody?, RequestOptionsoptions?): MessageSendResponse` **post** `/v1/chats/{chatID}/messages` Send a text message to a specific chat. Supports replying to existing messages. Returns a pending message ID. ### Parameters - `chatID: string` Unique identifier of the chat. - `body: MessageSendParams` - `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` Dimensions (optional override of cached value) - `height: number` - `width: number` - `type?: "gif" | "voiceNote" | "sticker"` Special attachment type (gif, voiceNote, sticker). If omitted, auto-detected from mimeType - `"gif"` - `"voiceNote"` - `"sticker"` - `replyToMessageID?: string` Provide a message ID to send this as a reply to an existing message - `text?: string` Text content of the message you want to send. You may use markdown. ### Returns - `MessageSendResponse` - `chatID: string` Unique identifier of the chat. - `pendingMessageID: string` Pending message ID ### Example ```typescript import BeeperDesktop from '@beeper/desktop-api'; const client = new BeeperDesktop(); const response = await client.messages.send('!NCdzlIaMjZUmvmvyHU:beeper.com'); console.log(response.pendingMessageID); ```