---
title: "Send a message"
method: POST
path: "/messages"
tags: ["Messages"]
---

# Send a message

`POST /messages`

Send a message on the specified channel (`from` object) to a new or existing contact (`to` object).

## Request body

- PASendMessageDTO
  - `to` PAMessageReqReceiverDTO[] — The recipient list for the message
    - `identifier` string — The recipient identifier on the target channel
  - `from` PAMessageReqSenderDTO
    - `channel_id` string — The ID of the channel used to send the message
    - `name` string, nullable — The display name to use as the sender
  - `content` union — The content payload of the message
    - object
      - `body` string — The text body of the message
      - `type` 'text'
    - object
      - `file_id` string — The ID of the file to send
      - `type` 'media'
    - object
      - `files` PASendMessageReqEmailContentFileDTO[] — The files attached to the email
        - `id` string — The ID of the file to attach to the email
      - `html` string — The HTML body of the email
      - `subject` string — The subject of the email
      - `text` string — The plain text body of the email
      - `type` 'email'
    - object
      - `template_id` string — The ID of the template to send
      - `type` 'generic_template'
      - `variables` PAMessageReqTemplateVariableDTO[] — The variables to inject into the template
        - `position` integer — The placeholder position of the template variable
        - `value` string — The value to inject into the template variable
    - object
      - `body` string — The body text of the WhatsApp quick reply message
      - `footer` string — The optional footer of the WhatsApp quick reply message
      - `header` union — The optional header of the WhatsApp quick reply message
        - MESSAGEWHATSAPPQUICKREPLYHEADERTEXT
          - `type` 'text'
          - `value` string — The text value of the WhatsApp header
        - MESSAGEWHATSAPPQUICKREPLYHEADERIMAGE
          - `type` 'image'
          - `value` string — The file ID used for the image header
        - MESSAGEWHATSAPPQUICKREPLYHEADERVIDEO
          - `type` 'video'
          - `value` string — The file ID used for the video header
        - MESSAGEWHATSAPPQUICKREPLYHEADERDOCUMENT
          - `type` 'document'
          - `value` string — The file ID used for the document header
      - `replies` PAMessageContentWhatsAppQuickReplyReply[] — The quick reply options available to the recipient
        - `value` string — The quick reply option text
      - `type` 'whats_app_quick_reply'
    - object
      - `file` PASendMessageReqWhatsAppTemplateContentFileDTO
        - `id` string — The ID of the file to use in the WhatsApp template header
      - `template_id` string — The ID of the WhatsApp template to send
      - `type` 'whats_app_template'
      - `variables` PAMessageReqTemplateVariableDTO[] — The variables to inject into the template
        - `position` integer — The placeholder position of the template variable
        - `value` string — The value to inject into the template variable
    - object
      - `body` string — The body text of the WhatsApp list message
      - `footer` string — The optional footer of the WhatsApp list message
      - `header` PAMessageContentWhatsAppListHeader
        - `value` string — The text value of the WhatsApp list header
      - `sections` PAMessageContentWhatsAppListSection[] — The sections shown in the WhatsApp list message
        - `rows` PAMessageContentWhatsAppListSectionRow[] — The rows contained in the WhatsApp list section
          - `description` string — The optional description of the WhatsApp list row
          - `title` string — The title of the WhatsApp list row
        - `title` string — The title of the WhatsApp list section
      - `title` string — The button title used to open the list
      - `type` 'whats_app_list'
  - `in_reply_to` string, nullable — The ID of the message this message replies to

## Response `200`

OK

- MESSAGEOUTBOUND
  - `url` string — The URL of the message resource
  - `id` string — The ID of the outbound message
  - `status` 'processed' | 'sent' | 'received' | 'sending_failed' | 'read'
  - `conversation_id` string — The ID of the conversation the message belongs to
  - `in_reply_to` string, nullable — The ID of the message this message replies to
  - `content` union — The content of the outbound message
    - object
      - `body` string — The text body of the message
      - `type` 'text'
    - object
      - `caption` string — The caption associated with the media message
      - `file_id` string — The ID of the attached file
      - `file_url` string — The public URL of the attached file when available
      - `type` 'media'
    - object
      - `files` PASendMessageResEmailContentFileDTO[] — The files attached to the email
        - `id` string — The ID of the attached file
      - `html` string — The HTML body of the email
      - `subject` string — The subject of the email
      - `text` string — The plain text body of the email
      - `type` 'email'
    - object
      - `template_id` string — The ID of the template that was used
      - `type` 'generic_template'
      - `variables` PAMessageResTemplateVariableDTO[] — The resolved template variables
        - `position` integer — The placeholder position of the template variable
        - `value` string — The resolved value of the template variable
    - object
      - `body` string — The body text of the WhatsApp quick reply message
      - `footer` string — The optional footer of the WhatsApp quick reply message
      - `header` union — The optional header of the WhatsApp quick reply message
        - MESSAGEWHATSAPPQUICKREPLYHEADERTEXT
          - `type` 'text'
          - `value` string — The text value of the WhatsApp header
        - MESSAGEWHATSAPPQUICKREPLYHEADERIMAGE
          - `type` 'image'
          - `value` string — The file ID used for the image header
        - MESSAGEWHATSAPPQUICKREPLYHEADERVIDEO
          - `type` 'video'
          - `value` string — The file ID used for the video header
        - MESSAGEWHATSAPPQUICKREPLYHEADERDOCUMENT
          - `type` 'document'
          - `value` string — The file ID used for the document header
      - `replies` PAMessageContentWhatsAppQuickReplyReply[] — The quick reply options available to the recipient
        - `value` string — The quick reply option text
      - `type` 'whats_app_quick_reply'
    - object
      - `file` PAMessageContentResWhatsAppTemplateFileDTO
        - `id` string, nullable — The ID of the file used in the WhatsApp template header
      - `template_id` string — The ID of the WhatsApp template that was used
      - `type` 'whats_app_template'
      - `variables` PAMessageResTemplateVariableDTO[] — The resolved template variables
        - `position` integer — The placeholder position of the template variable
        - `value` string — The resolved value of the template variable
    - object
      - `body` string — The body text of the WhatsApp list message
      - `footer` string — The optional footer of the WhatsApp list message
      - `header` PAMessageContentWhatsAppListHeader
        - `value` string — The text value of the WhatsApp list header
      - `sections` PAMessageContentWhatsAppListSection[] — The sections shown in the WhatsApp list message
        - `rows` PAMessageContentWhatsAppListSectionRow[] — The rows contained in the WhatsApp list section
          - `description` string — The optional description of the WhatsApp list row
          - `title` string — The title of the WhatsApp list row
        - `title` string — The title of the WhatsApp list section
      - `title` string — The button title used to open the list
      - `type` 'whats_app_list'
    - object
      - `body` string — The text content of the Instagram story reply
      - `type` 'instagram_story_reply'
    - object
      - `body` string — The text content of the Instagram comment
      - `type` 'instagram_comment'
  - `to` PAMessageOutboundReceiverDTO[] — The recipients of the outbound message
    - `contact_id` string — The ID of the recipient contact
    - `identifier` string — The recipient identifier on the target channel
    - `url` string — The URL of the recipient contact resource
  - `from` PAMessageOutboundSenderDTO
    - `name` string, nullable — The display name of the sender
    - `channel_id` string — The ID of the sending channel
  - `created_at` string, date-time — The time when the message was created
  - `updated_at` string, date-time — The time when the message was last updated
  - `direction` 'outbound' — Whether the message is inbound or outbound

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.dev/superchat/apis/superchat-api.md) · [All operations](https://skmtc.dev/superchat/apis/superchat-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/superchat/superchat-api/revisions/3bc557a0072f/schema)
