> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-restapi-chatapi-eng-38785.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Send a CometChat message on behalf of a user with REST API for one-on-one or group conversations.

# Send Message

## Constraints

| Item                                                                        | Constraint                                              | Notes                                                              |
| --------------------------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------------ |
| Maximum message size                                                        | 65 KB (\~65,536 characters including metadata)          | Total size limit for the entire message payload                    |
| File size per message                                                       | 100 MB                                                  | Applies to the uploaded file associated with the message           |
| Message data object                                                         | 10 KB max (UTF8mb4)                                     | Keys with special meaning: text, attachments, customData, metadata |
| Tags                                                                        | Up to 25 tags, 100 characters each (UTF8mb4)            | Tags can be in any language                                        |
| User mentions                                                               | Up to 10 distinct users                                 | Format: `<@uid:{uid of the user}>`                                 |
| Reactions                                                                   | Max 25 distinct reactions, 45 characters each (UTF8mb4) | Emoji supported (may use multiple code points)                     |
| Unread message count (groups)                                               | Up to 300 members                                       | Not updated for larger groups                                      |
| Message receipts (groups)                                                   | Up to 300 online users                                  | Delivery/read receipts disabled in large groups                    |
| For the complete error reference, see [Error Guide](/articles/error-guide). |                                                         |                                                                    |


## OpenAPI

````yaml post /messages
openapi: 3.0.0
info:
  title: Chat APIs
  description: Manage messages, users, groups for a particular app using our Chat API.
  version: '3.0'
servers:
  - url: https://{appId}.api-{region}.cometchat.io/v3
    variables:
      appId:
        default: appId
        description: (Required) App ID
      region:
        enum:
          - us
          - eu
          - in
        default: us
        description: Select Region
security: []
tags:
  - name: API Keys
    description: The API keys are used to authorise the APIs
  - name: Roles
    description: The roles are used to give user access rights
  - name: Users
    description: The REST collection for users.
  - name: Auth Tokens
    description: The auth tokens are used to login end users using client SDKs.
  - name: Blocked Users
    description: The REST collections for blocked users.
  - name: Friends
    description: List,add and remove friends by passing UID in path variables
  - name: Groups
    description: The REST collections for groups.
  - name: Banned Users
    description: Ban and Unban user by passing other UID in path variables.
  - name: Group Members
    description: The REST collections for group members.
  - name: Messages
    description: The REST collections for messages.
  - name: Conversations
    description: The REST collections for conversations.
  - name: Restrict Features
    description: Allows Restricting Features
  - name: Metrics
    description: Allows accessing Data Metrics
  - name: Triggers
    description: Allows adding triggers to a webhook.
  - name: Webhooks
    description: Allows accessing Webhooks.
  - name: Notifications
    description: Allows configuring Notifications core.
  - name: Moderation
    description: The REST collections for Moderations.
paths:
  /messages:
    post:
      tags:
        - Messages
      summary: Send Message
      description: Sends Message on behalf of a user.
      operationId: send-message
      parameters:
        - $ref: '#/components/parameters/onBehalfOf'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/messageCategorySchema'
                - $ref: '#/components/schemas/customCategorySchema'
            examples:
              Text Message:
                $ref: '#/components/examples/text-message'
              Media Message:
                $ref: '#/components/examples/media-message'
              Custom Message:
                $ref: '#/components/examples/custom-message'
      responses:
        '200':
          description: Create Message
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                type: object
              example:
                data:
                  id: '1'
                  conversationId: superhero3_user_superhero5
                  sender: superhero3
                  receiverType: user
                  receiver: superhero5
                  category: message
                  type: text
                  data:
                    text: test     hello
                    metadata:
                      key1: val1
                    entities:
                      sender:
                        entity:
                          uid: superhero3
                          name: Spiderman
                          avatar: >-
                            https://data-us.cometchat.io/assets/images/avatars/spiderman.png
                          status: offline
                          role: default
                          createdAt: 1638361550
                        entityType: user
                      receiver:
                        entity:
                          uid: superhero5
                          name: Cyclops
                          avatar: >-
                            https://data-us.cometchat.io/assets/images/avatars/cyclops.png
                          status: offline
                          role: default
                          createdAt: 1638361550
                          conversationId: superhero3_user_superhero5
                        entityType: user
                  sentAt: 1638423490
                  updatedAt: 1638423490
      security:
        - apiKey: []
components:
  parameters:
    onBehalfOf:
      name: onBehalfOf
      in: header
      description: UID of the user on whose behalf the action is performed.
      schema:
        type: string
  schemas:
    messageCategorySchema:
      title: Message
      properties:
        receiver:
          description: The receiver of the message.
          type: string
        muid:
          description: The muid will be a unique Identifier of the message.
          type: string
        receiverType:
          description: The receiverType of the message. either user or group
          type: string
          enum:
            - user
            - group
        quotedMessageId:
          description: >-
            ID of the message being quoted.

            If provided, the send message response will include a
            `quotedMessage` node

            in the response containing the referenced message object.
          type: string
        type:
          description: >-
            Type of the message. The available values are text, image, file,
            audio, video.
          type: string
          default: text
          enum:
            - text
            - image
            - file
            - audio
            - video
        data:
          description: JSON containing message attributes.
          properties:
            text:
              type: string
            metadata:
              type: object
            attachments:
              description: >-
                For the messages with image, video, audio or file type (i.e.
                category=="message" && type !="text"), the property contains an
                array of attachment objects.
              type: array
              items:
                properties:
                  url:
                    description: Contains the URL of the attachment.
                    type: string
                  name:
                    description: Name of the attachment.
                    type: string
                  mimeType:
                    description: Mime Type of attachment.
                    type: string
                  extension:
                    description: The extension of the attachment.
                    type: string
                  size:
                    description: The size of the attachment(in bytes).
                    type: string
                type: object
          type: object
        multipleReceivers:
          description: >-
            JSON containing array of UIDs and GUID for whom the message must be
            sent. Format for multiple receivers - {"uids": ["uid1","uid2"],
            "guids":["guid1"]}
          properties:
            uids:
              type: array
              items:
                type: string
            guids:
              type: array
              items:
                type: string
          type: object
        tags:
          description: A list of tags to identify specific messages.
          type: array
          items:
            type: string
      type: object
    customCategorySchema:
      title: Custom
      properties:
        receiver:
          description: The receiver of the message.
          type: string
        muid:
          description: The muid will be a unique Identifier of the message.
          type: string
        receiverType:
          description: The receiverType of the message. either user or group
          type: string
          enum:
            - user
            - group
        quotedMessageId:
          description: >-
            ID of the message being quoted.

            If provided, the send message response will include a
            `quotedMessage` node

            in the response containing the referenced message object.
          type: string
        type:
          description: Type of the message.
          type: string
        data:
          description: JSON containing message attributes.
          properties:
            customData:
              description: when category==”custom”, this property can have any JSON object.
              type: object
          type: object
        multipleReceivers:
          description: >-
            JSON containing array of UIDs and GUID for whom the message must be
            sent. Format for multiple receivers - {"uids": ["uid1","uid2"],
            "guids":["guid1"]}
          properties:
            uids:
              type: array
              items:
                type: string
            guids:
              type: array
              items:
                type: string
          type: object
        tags:
          description: A list of tags to identify specific messages.
          type: array
          items:
            type: string
      type: object
  examples:
    text-message:
      summary: Text Message example
      value:
        receiver: cometchat-uid-2
        receiverType: user
        category: message
        type: text
        data:
          text: Hello
    media-message:
      summary: Media Message example
      value:
        receiverType: user
        data:
          text: Hello there!
          attachments:
            - name: ironman.png
              extension: png
              mimeType: image/png
              url: >-
                https:
                //files-<REGION>.cometchat.io/<APP_ID>/media/<HASH>.png?fat=<FILE_ACCESS_TOKEN>
        category: message
        type: image
        receiver: cometchat-uid-2
    custom-message:
      summary: Custom Message example
      value:
        receiverType: user
        data:
          customData:
            text: Hello there!
        category: custom
        type: text
        receiver: cometchat-uid-2
        tags:
          - tag1
  securitySchemes:
    apiKey:
      type: apiKey
      description: API Key with fullAccess scope(i.e. Rest API Key from the Dashboard).
      name: apikey
      in: header

````