Chat / Platform API
Current version: v3
    Chat Platform API v3
    Chat Platform API
    Chat
    Platform API
    Home
    /
    Chat
    /
    Platform API
    /
    Message

    Reply to a message

    This action replies to a specific message in a channel. You can only reply to text and file messages, not admin messages.

    Sending reply messages works much like sending regular messages to a channel except replies require an additional parent_message_id property.


    HTTP request

    POST https://api-{application_id}.sendbird.com/v3/{channel_type}/{channel_url}/messages
    

    Parameters

    The following table lists the parameters that this action supports.

    Required
    Parameter nameTypeDescription

    channel_type

    string

    Specifies the type of the channel. Acceptable values are open_channels and group_channels.

    channel_url

    string

    Specifies the URL of the target channel.


    Request body

    The following tables list the properties of an HTTP request that this action supports for a text message, file message, and admin message.

    List of properties for text message

    Properties
    RequiredTypeDescription

    message_type

    string

    Specifies the type of the message. The value of MESG represents a text message.

    user_id

    string

    Specifies the user ID of the sender.

    message

    string

    Specifies the content of the message.

    parent_message_id

    long

    Specifies the unique ID of a message to add a reply to.

    OptionalTypeDescription

    custom_type

    string

    Specifies a custom message type used for message grouping. The length is limited to 128 characters.

    * Custom types are also used to segment metrics within Sendbird's Advanced analytics, which enables the sub-classification of data views.

    data

    string

    Specifies additional message information. This property serves as a container for a long text of any type of characters which can also be a JSON-formatted string like {"font-size": "24px"}. More details on what can be stored in this field are available here.

    send_push

    boolean

    Determines whether to send a push notification of the message to the channel members. This property only applies to group channels.

    If the value of the application attribute enable_push_for_replies is false, no push notifications are sent. If the value of the user attribute enable_push_for_replies is also false, the user doesn't receive any push notifications from replies. (Default: true)

    mention_type

    string

    Specifies the mentioning method that indicates which user gets a notification of the message. Acceptable values are users and channels. If set to users, only the users specified in the mentioned_user_ids property below get notified. If set to channels, all users in the channel get notified. (Default: users)

    mentioned_user_ids[]

    array of strings

    Specifies an array of one or more IDs of the users who get a notification of the message.

    mark_as_read

    boolean

    Determines whether to mark the message as read for the sender. If set to false, the sender's unread_count and read_receipt remain unchanged after the message is sent. (Default: true)

    sorted_metaarray

    array of objects

    Specifies an array of JSON objects consisting of key-values items that store additional message information to be used for classification and filtering. Items are saved and returned in the exact order they've been specified. More details on what can be stored in this field are available here.

    created_at

    long

    Specifies the time when the message was sent in Unix milliseconds format. This property can be used when migrating messages from another system to the Sendbird server. If specified, the server sets the time of message creation as the property value.

    dedup_id

    string

    Specifies a unique ID for the message created by another system. In general, this property is used to prevent the same message data from getting inserted when migrating messages from another system to the Sendbird server. If specified, the server performs a duplicate check using the property value.

    reply_to_channel

    boolean

    Determines whether to send the message as a reply to the channel. (Default: false)

    List of properties for file message

    Properties
    RequiredTypeDescription

    message_type

    string

    Specifies the type of the message. The value of FILE represents a file message.

    user_id

    string

    Specifies the user ID of the sender.

    parent_message_id

    long

    Specifies the unique ID of a message to add a reply to.

    root_message_id

    long

    (Deprecated) Reserved value. This must be the same as parent_message_id.

    file

    string

    Depending on the file upload method, this specifies the data of the file to upload to the Sendbird server either in raw binary format or by the file's location. When sending a request containing a file, you must change the value of the content-type header to multipart/form-data;boundary={your_unique_boundary_string} in the request.

    Code examples of HTTP multipart request and cURL are provided below the tables for your reference. If this file property is specified, the url property is not required.

    * This doesn't allow a converted base64-encoded string from a file as its value.

    url

    string

    Specifies the URL of the file hosted on the server of your own or other third-party companies. If this url property is specified, the file property is not required.

    OptionalTypeDescription

    file_name

    string

    If the file property is used for upload, the name response property is always set based on what the input file is called.

    If the url property is used, the file name can be set to any string you want using the file_name request property. If no file_name is supplied, the name response property defaults to an empty string.

    file_size

    int

    If the file property is used for upload, the size response property is always set based on the input file size.

    If the url property is used, the file size can be set to be any int you want using the file_size request property. If no file_size is supplied, the size response property defaults to 0.

    Fize size is stored in bytes.

    file_type

    string

    If the file property is used for upload, the type response property is always set based on the input file type e.g image/jpeg.

    If the url property is used, the file type can be set to any string you want using the file_type request property. If no file_type is supplied, the type response property defaults to an empty string.

    thumbnails

    array of strings or objects

    If the url property is used for upload, thumbnail images aren't automatically generated by Sendbird. However, you can pass an array of strings or objects of external thumbnail image URLs to store a reference to those images in the Sendbird server.

    thumbnail1
    thumbnail2
    thumbnail3

    string

    If the file property is used for upload and the auto-thumbnail generation feature is enabled, up to three thumbnails can be generated by passing the thumbnail1, thumbnail2, and thumbnail3 properties. The value of these properties is a string of the desired height and width in pixels (e.g. "100,100"). To see an example of how to make this request, refer to the request body and response samples.

    custom_type

    string

    Specifies a custom message type used for message grouping. The length is limited to 128 characters.

    * Custom types are also used to segment metrics within Sendbird's Advanced analytics, which enables the sub-classification of data views.

    data

    string

    Specifies additional message information. This property serves as a container for a long text of any type of characters which can also be a JSON-formatted string like {"fileDescription": "an mp3 of a pop song"}. More details on what can be stored in this field are available here.

    require_auth

    boolean

    Determines whether the files and thumbnail images in a message are only accessible by users who are in the same channel. This property is only effective when using the share encrypted files feature. This feature encrypts any type of uploaded files and the automatically-generated thumbnail images with AES256, stores them securely in the Sendbird server, and only allows the users with access to share the files. You can use this property to restrict access to the files.

    If set to true, the files are uploaded first, then encrypted, and finally stored along with the thumbnail images which are encrypted as well. When accessing them, the parameter auth, which is specified with an encryption key of the user such as ?auth=RW5b2RIHaMdGV4eA==, should be added to the end of the file URLs. An encryption key managed internally by the Sendbird system is generated every time a user logs in to the Sendbird server and is valid for three days starting from the last login. The system mainly uses the key to check if a user is properly accessing the data of the application. (Default: false)

    send_push

    boolean

    Determines whether to send a push notification of the message to the channel members. This property only applies to group channels.

    If the value of the application attribute enable_push_for_replies is false, no push notifications are sent. If the value of the user attribute enable_push_for_replies is also false, the user doesn't receive any push notifications from replies. (Default: true)

    mention_type

    string

    Specifies the mentioning method that indicates which user gets a notification of the message. Acceptable values are users and channels. If set to users, only the users specified in the mentioned_user_ids property below get notified. If set to channels, all users in the channel get notified. (Default: users)

    mentioned_user_ids[]

    array of strings

    Specifies an array of one or more IDs of the users who get a notification of the message.

    mark_as_read

    boolean

    Determines whether to mark the message as read for the sender. If set to false, the sender's unread_count and read_receipt remain unchanged after the message is sent. (Default: true)

    sorted_metaarray

    array of objects

    Specifies an array of JSON objects consisting of key-values items that store additional message information to be used for classification and filtering. Items are saved and returned in the exact order they've been specified. More details on what can be stored in this field are available here.

    created_at

    long

    Specifies the time when the message was sent in Unix milliseconds format. This property can be used when migrating messages from another system to the Sendbird server. If specified, the server sets the time of message creation as the property value.

    dedup_id

    string

    Specifies a unique ID for the message created by another system. In general, this property is used to prevent the same message data from getting inserted when migrating messages from another system to the Sendbird server. If specified, the server performs a duplicate check using the property value.

    reply_to_channel

    boolean

    Determines whether to send the message as a reply to the channel. (Default: false)


    Response

    If successful, this action returns a message resource in the response body.

    {
        "message_id": 1972,
        "type": "MESG",
        "is_silent": false,
        "parent_message_id": 1970,
        "custom_type": "Sports",
        "channel_url": "uefa_footballgroup_g_001",
        "user": {
            "user_id": "cindy123",
            "nickname": "Cindy_",
            "profile_url": "",
            "metadata": {}
        },
        "mention_type": "users",
        "mentioned_users": [],
        "is_removed": false,
        "message": "The game starts in an hour.",
        "translations": {},
        "data": "{\"font\":\"arial\"}",
        "created_at": 1590786264170,
        "updated_at": 0,
        "file": {},
        "message_survival_seconds": -1,
        "parent_message_info": {  // This replaces parent_message_text.
            "message": "https://football.com/example-image.jpg",
            "user": {
                "user_id": "user id",
                "nickname": "nickname",
                "profile_url": "url",
                "metadata": {},
                },
            "data": "{\"font\":\"arial\"}",
            "type": "FILE",  // The value can be MESG or FILE.
            "file": {  // This part is included only when the message type is FILE.
                "name": "filename.jpg",
                "type": "image/jpg",
                "url": "https://url",
                "require_auth": "false"
            },
            "ts": 1544421761159
        },
        "is_reply_to_channel": true
    }
    

    In the case of an error, an error object is returned. A detailed list of error codes is available here.