Send multiple messages

Update time: 2023/10/23 16:43:07

Send multiple messages at once in a chat room. Message types include text, image, audio, video, location, files, alert, and custom messages.

For the flow control in chat rooms, see Flow control in chat rooms.


Users can send messages in chat rooms, such as text messages, picture messages, voice messages, and location messages.

This API can send or resend multiple messages at once by setting resendFlag. For details, see the description of this parameter in Request Parameters below.

Request URI

Content-Type: application/x-www-form-urlencoded;charset=utf-8

Request parameters

  • For information about how to set the header in a POST request, see API Call methods.

  • The settings of the body in a POST request:

ParameterType RequiredDescription
roomid Long YesChat room ID
msgList String Yes The list of messages to be sent, JSONArray, up to 10 messages can be sent at once. The fields of each message:
  • msgId: Message ID, String, required
  • msgType: Message type, Integer, required
    0: Text message, 1: Image message, 2: Audio message, 3: Video message, 4: Location message, 6: File message, 10: Alert, 100: Custom messageFor applications that are not integrated to the GuardEase moderation service, the custom message will not be forwarded for review
  • attach: message body, String. The format is the same as the `body` field in message format example, with a maximum length of 4096 characters.
  • ext: extension field, String, custom content, JSON, up to 4096 characters
  • subType: custom message subtype, Integer, a value greater than 0
  • >
  • resendFlag: the flag for resending a message, Integer
    0: non-resent message, 1: resent message. If the message is resent. The logic for removing duplicate requests will be applied according to `msgId`
[{"attach":"oadsjfadhsfis89d","ext":"fidsuf9a8dhsigsfdj","msgId":"adfdas8fua8d9g","msgType":0,"subType": 1,"resendFlag" :0}]
fromAccid String Yesuser account sending the message, accid
ignoreMute Boolean No Whether to ignore the temporary mute of members, true: ignore; false: do not ignore, the default is false.< /td>
skipHistory IntegerNoWhether to store message history in the cloud
0: Yes (default); 1: No
route IntegerNoWhether the message is synced using webhooks
0: No; 1: Yes (default)< /td>
abandonRatioIntegerNoThe probability for dropping a message, value range [0-9999];
0: does not drop the message (default), 9999: 99.99% probability of dropping the message
This parameter can be used to flow control messages for specific businessIf this parameter is specified, the following highPriority parameters becomes invalid
highPriority Boolean No true: high-priority message. High-priority messages are delivered first; false: low-priority message (default)
High-priority messages can be set to be resent. For details, see the `needHighPriorityMsgResend` parameterUse this parameter to ensure high-priority messages are delivered first. If you set all messages to high priority, the setting has no effect. A single chat room can handle up to 10 high-priority messages per second, and any excessive messages will be processed as normal messages by default.
needHighPriorityMsgResend Boolean No true: the message will be resent (default), false: the message will not be resent. If you set the value to true, a user will still receive this message during the validity period when the user leaves and rejoins the chat room. The current validity period last 30s by default. If the highPriority value is not specified, `needHighPriorityMsgResend` does not take effect
useYidun Integer No Whether a message (including custom messages) uses GuardEase moderation service. Set the value to 0. Any other values indicate that the value is unspecified.
0: indicates that the message is not audited by the GuardEase moderation service when the moderation service is activated.
If you do not specify this field, the message will be forwarded to GuardEase moderation service for review by default when the service is activated.
yidunAntiCheating String No The parameter for anti-cheating detection transferred in pass-through mode to GuardEase, JSON, with a maximum length of 1024 characters, (For details, please see GuardEase anti-spam exclusive field)
yidunAntiSpamExt String No The parameter for anti-spam enhanced transferred in pass-through mode to GuardEase, JSON, with a maximum length of 1024 characters, (for details, see GuardEase moderation service custom extension field)
bid String No Custom business ID of GuardEase moderation service. Custom moderation allows you to review the content of a single message in addition to the default moderation service. To configure custom moderation rules, contact our technical support using WhatsApp or online support for help.
antispam Boolean No For applications that have activated GuardEase moderation service, whether the message are reviewed by GuardEase (antispamCustom), default value:false
Only valid for custom messages (message type: 100)
notifyTargetTags String No Target tag expression, used to set the delivery targets in the chat room messages, the maximum length is 128 characters. For more information about how to use tags and examples, see Tag expression
antispamCustom StringNo Custom moderation rules. Valid when the `antispam` parameter is set to `true`, JSON, length limit is the same as the body field. The maximum length is 5000 characters, the required antispamCustom format is as follows:
{"type":1,"data":"custom content"}
Field description:
1. type: 1: text; 2: image; 3: video
2. data: Text or image URL
env String NoThe environment name specified in the CommsEase console sync webhooks as shown in the figure below. A maximum of 32 characters are allowed.
chatMsgPriority Integer No The priority of messages sent through the CDN channel, optional values: 0 (default), 1, 2, 3
forbiddenIfHighPriorityMsgFreq IntegerNo If high-priority messages are degraded as normal messages, return 403 error code
0: downgrade to normal message (default), 1: return 403 error code

Response fields

fail StringMessage delivery failure description, JSONArray, returned in the format of "Client message ID: reason for failure"
code IntegerResponse status code
success StringDetails of the successful delivery description, JSONArray, returned in the format of "Client Message ID: Successful delivery details", For details of each successfully sent message, please refer to the above Response fields


Example request (cURL)

curl -X POST -H "CheckSum: 51eb13ea5ee3***65c7866c366" -H "AppKey: fe416640c8e***847ad2547" -H "Nonce: 1" -H "CurTime: 1451207708" -H "Content-Type: application/x-www-form-urlencoded" -d 'roomid=765788&msgList=[{"attach":"oadsjfadhsfis89d","ext":"fidsuf9a8dhsigsfdj","msgId":"adfdas8fua8d9g","msgType":0,"resendFlag":0}]&fromAccid=fromAccid' ''

Example success response

"Content-Type": "application/json; charset=utf-8"
  "fail": [
      "57gadfgsdhlaisfjlaskdmfa": "parameter resendFlag should be used for RESEND!"
  "code": 200,
  "success": [
      "gsfdgs45hd15h1s56safda": {
        "ext": "fadsfag80ad7fg98s9giapo[ga",
        "fromNick": "yx2",
        "msgid_client": "gsfdgs45hd15h1s56safda",
        "fromAccount": "yx2",
        "fromClientType": "REST",
        "attach": "afsdfaf807sadf98asdfl;ajskdflasd",
        "time": "1668566975724",
        "type": "2",
        "highPriorityFlag": "1",
        "roomId": "72"
      "akdsuhfaiuofyai7syfhakjds": {
        "ext": "fadsfag80ad7fg98s9giapo[ga",
        "fromNick": "yx2",
        "msgid_client": "akdsuhfaiuofyai7syfhakjds",
        "fromAccount": "yx2",
        "fromClientType": "REST",
        "attach": "",
        "time": "1668566975825",
        "type": "1",
        "highPriorityFlag": "1",
        "roomId": "72"

Example error response

"Content-Type": "application/json; charset=utf-8"
    "desc":"msgContents size exceeded" //Message body exceeded the size limit.

Status codes

The following status codes are related to responses of this API. For the complete error codes, see Status codes.

Code Description Recommendation
200 Success -
414 Parameter error Check the format and restrictions of arguments based on the error message
403 Illegal operation Exceptions, such as invalid chat room name, hit moderation rules or without the chat room permission.
416 API call rate limit. Too many requests within a short period of time Lower the number of requests
419 Limit of chat rooms exceeded. -
500 Internal Server Error -
13009 The scheduled closing of chat rooms is disabled Enable the scheduled closing function in the CommsEase console.
Was this page helpful?
  • Overview
  • Request URI
  • Request parameters
  • Response fields
  • Example
  • Example request (cURL)
  • Example success response
  • Example error response
  • Status codes