> ## Documentation Index
> Fetch the complete documentation index at: https://www.cometchat.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Sends Message on behalf of a user.

# 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.
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:
              discriminator:
                propertyName: category
                mapping:
                  message:
                    $ref: '#/components/schemas/messageCategorySchema'
                  custom:
                    $ref: '#/components/schemas/customCategorySchema'
              oneOf:
                - $ref: '#/components/schemas/messageCategorySchema'
                  title: Message
                - $ref: '#/components/schemas/customCategorySchema'
                  title: Custom
            examples: {}
      responses:
        '200':
          description: Create Message
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                type: object
              example:
                data:
                  id: '1'
                  conversationId: cometchat-uid-3_user_cometchat-uid-5
                  sender: cometchat-uid-3
                  receiverType: user
                  receiver: cometchat-uid-5
                  category: message
                  type: text
                  data:
                    text: test     hello
                    metadata:
                      key1: val1
                    entities:
                      sender:
                        entity:
                          uid: cometchat-uid-3
                          name: Nancy Grace
                          avatar: >-
                            https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-3.webp
                          status: offline
                          role: default
                          createdAt: 1638361550
                        entityType: user
                      receiver:
                        entity:
                          uid: cometchat-uid-5
                          name: John Paul
                          avatar: >-
                            https://assets.cometchat.io/sampleapp/v2/users/cometchat-uid-5.webp
                          status: offline
                          role: default
                          createdAt: 1638361550
                          conversationId: cometchat-uid-3_user_cometchat-uid-5
                        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:
      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
        category:
          description: >-
            Category of the message. The available categories are message and
            custom.
          type: string
          default: message
          enum:
            - message
        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:
      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
        category:
          description: Category of the message. The available categories is custom.
          type: string
          default: custom
          enum:
            - custom
        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
  securitySchemes:
    apiKey:
      type: apiKey
      description: API Key with fullAccess scope(i.e. Rest API Key from the Dashboard).
      name: apikey
      in: header

````