---
title: "Send Message"
method: POST
path: "/v1/bots/{botId}/messages"
tags: ["Messages"]
---

# Send Message

`POST /v1/bots/{botId}/messages`

Send a message to a user. Supports multiple message types including text, images, audio, video, files, stickers, location, contacts, and interactive elements.

## Path parameters

- `botId` string, required

## Request body

- union
  - TextMessage
    - `type` 'text', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `text` string, required — Text content of the message
  - TextWithOptionsMessage
    - `type` 'text', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `text` string, required — Content of the message
    - `buttons` Buttons, required
      - `title` string — Title displayed above the message
      - `buttonText` ButtonText
        - `type` 'text', required
        - `text` string, required
      - `options` ButtonOption[], required — List of options (min 1, max 10)
        - `title` string, required
        - `description` string
        - `payload` string
  - QuickReplyMessage
    - `type` 'quick_reply', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `text` string, required
    - `title` string
    - `quick_replies` QuickReply[], required
      - `title` string, required
  - ImageMessage
    - `type` 'image', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `mediaUrl` string, uri, required
    - `text` string
  - AudioMessage
    - `type` 'audio', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `mediaUrl` string, uri, required
  - VideoMessage
    - `type` 'video', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `mediaUrl` string, uri, required
    - `text` string
  - FileMessage
    - `type` 'file', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `mediaUrl` string, uri, required
    - `text` string
    - `filename` string
  - StickerMessage
    - `type` 'sticker', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `mediaUrl` string, uri, required
  - LocationMessage
    - `type` 'location', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `coordinates` Coordinates, required
      - `lat` number, double, required
      - `long` number, double, required
  - ContactsMessage
    - `type` 'contacts', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `contacts` Contact[], required
      - `name` ContactName
        - `formatted_name` string
        - `first_name` string
        - `last_name` string
        - `middle_name` string
      - `phones` ContactPhone[]
        - `phone` string
        - `type` string
        - `wa_id` string
      - `emails` ContactEmail[]
        - `email` string, email
        - `type` string
      - `addresses` ContactAddress[]
        - `street` string
        - `city` string
        - `state` string
        - `zip` string
        - `country` string
        - `country_code` string
        - `type` string
  - LocationRequestMessage
    - `type` 'location_request', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `text` string, required
  - CTAUrlMessage
    - `type` 'cta_url', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `title` string, required
    - `text` string, required
    - `caption` string, required
    - `parameters` CTAUrlParameters, required
      - `url` string, uri, required
      - `display_text` string, required
  - VoiceCallMessage
    - `type` 'voice_call', required — Type of message to send
    - `userId` string, required — Unique identifier of the user receiving the message. Accepts either a phone number in E.164 format without the leading '+' (e.g. '593999999999') or a BSUID (Business-Scoped User ID, e.g. 'US.13491208655302741918') for users who have enabled phone number privacy in WhatsApp.
    - `botId` string — Unique identifier of the bot sending the message
    - `header` string
    - `text` string, required
    - `parameters` VoiceCallParameters, required
      - `display_text` string, required

## Response `200`

Message sent successfully

- MessageResponse
  - `success` boolean
  - `messageId` string

## Other responses

- `400` — Bad request - Invalid format or missing required fields
- `401` — Unauthorized - Invalid authentication credentials
- `404` — Not found - Resource not found

---

[API](https://skmtc.net/jelou/apis/jelou-api.md) · [All operations](https://skmtc.net/jelou/apis/jelou-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/jelou/jelou-api/revisions/845ce127d94a/schema)
