> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Send group chat messages with a bot

> Call this API to send group chat messages with an app bot. Documents the API call method, request parameters, and response structure.

This topic describes how to send group chat messages with an app bot.

## API call description

This API supports internal app bots. For more information, see [Create an internal app bot](/open/dingstart/configure-the-robot-application#).

## Request

### Basic information

| Field                | Value                                                                                                          |
| -------------------- | -------------------------------------------------------------------------------------------------------------- |
| HTTP URL             | [https://api.dingtalk.io/v1.0/robot/groupMessages/send](https://api.dingtalk.io/v1.0/robot/groupMessages/send) |
| HTTP Method          | POST                                                                                                           |
| Supported app types  | appType-Internal app　appType-Third-party enterprise app                                                        |
| Required permissions | permission-qyapi\_robot\_sendmsg-Permission to send messages with bots in your organization                    |

### Request headers

| Name                        | Type   | Required | Description                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| --------------------------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| x-acs-dingtalk-access-token | String | Yes      | The access credential used to call this API. Obtain it as follows:   - For internal apps, call the [Get the access token of an internal app](/open/development/obtain-the-access-token-of-an-internal-app#) API. - For third-party enterprise apps, call the [Get the access token of an authorized organization for a third-party app](https://open.dingtalk.com/document/development/obtain-the-access-token-of-the-authorized-enterprise-1#) API. |

### Request body

| Name               | Type   | Required | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ------------------ | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| msgParam           | String | Yes      | The message template parameters. For more information, see [Message types for enterprise bots](https://open.dingtalk.com/document/orgapp/types-of-messages-sent-by-robots#). The length must not exceed 15,000 bytes.                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| msgKey             | String | Yes      | The message template key. For more information, see [Message types for enterprise bots](https://open.dingtalk.com/document/dingstart/types-of-messages-sent-by-robots#).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| openConversationId | String | Yes      | The chat ID:   - For an internal group    - To obtain the ID of a newly created internal group, internal apps can call the [Create an internal group](https://open.dingtalk.com/document/development/create-group-session#) API. To obtain the ID of an existing internal group, call [chooseChat](https://open.dingtalk.com/document/development/jsapi-choose-chat#). - For a scenario group    - Internal apps can call the [Create a scenario group](https://open.dingtalk.com/document/development/create-a-scene-group-v2#) API. To obtain the ID of an existing scenario group, use the [chooseChat](https://open.dingtalk.com/document/orgapp/jsapi-choose-chat#) JSAPI. |
| robotCode          | String | Yes      | The bot code. For more information, see [Bot ID](/open/development/development-robot-overview#).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| coolAppCode        | String | No       | The group chat cool app code. For more information, see [Group chat cool app](https://open.dingtalk.com/document/dingstart/configuration-group-chat-quick-entry#).    This parameter is **required** when the bot is installed through a group chat cool app.                                                                                                                                                                                                                                                                                                                                                                                                                   |

### Request example

HTTP

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /v1.0/robot/groupMessages/send HTTP/1.1
Host:api.dingtalk.io
x-acs-dingtalk-access-token:nvosnghskaknz8an3b82
Content-Type:application/json

{
  "msgParam" : "{\"content\":\"DingTalk, make progress happen\"}",
  "msgKey" : "sampleText",
  "openConversationId" : "cid6KeBBLoveMJOGXoYKF5x7EeiodoA==",
  "robotCode" : "dingue4kfzdxbynxxxxxx",
  "coolAppCode" : "COOLAPP-1-10182EEDD1AC0BA600D9000J"
}
```

Java

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    /**
     * Initialize the account Client using a Token
     * @return Client
     * @throws Exception
     */
    public static com.aliyun.dingtalkrobot_1_0.Client createClient() throws Exception {
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
        config.protocol = "https";
        config.regionId = "central";
        return new com.aliyun.dingtalkrobot_1_0.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.dingtalkrobot_1_0.Client client = Sample.createClient();
        com.aliyun.dingtalkrobot_1_0.models.OrgGroupSendHeaders orgGroupSendHeaders = new com.aliyun.dingtalkrobot_1_0.models.OrgGroupSendHeaders();
        orgGroupSendHeaders.xAcsDingtalkAccessToken = "<your access token>";
        com.aliyun.dingtalkrobot_1_0.models.OrgGroupSendRequest orgGroupSendRequest = new com.aliyun.dingtalkrobot_1_0.models.OrgGroupSendRequest()
                .setMsgParam("{\"content\":\"DingTalk, make progress happen\"}")
                .setMsgKey("sampleText")
                .setOpenConversationId("cid6KeBBLoveMJOGXoYKF5x7EeiodoA==")
                .setRobotCode("dingue4kfzdxbynxxxxxx")
                .setCoolAppCode("COOLAPP-1-10182EEDD1AC0BA600D9000J");
        try {
            client.orgGroupSendWithOptions(orgGroupSendRequest, orgGroupSendHeaders, new com.aliyun.teautil.models.RuntimeOptions());
        } catch (TeaException err) {
            if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
                // err contains the code and message attributes that help locate the issue
            }

        } catch (Exception _err) {
            TeaException err = new TeaException(_err.getMessage(), _err);
            if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
                // err contains the code and message attributes that help locate the issue
            }

        }        
    }
}
```

Python

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import sys

from typing import List

from alibabacloud_dingtalk.robot_1_0.client import Client as dingtalkrobot_1_0Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_dingtalk.robot_1_0 import models as dingtalkrobot__1__0_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient

class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> dingtalkrobot_1_0Client:
        """
        Initialize the account Client using a Token
        @return: Client
        @throws Exception
        """
        config = open_api_models.Config()
        config.protocol = 'https'
        config.region_id = 'central'
        return dingtalkrobot_1_0Client(config)

    @staticmethod
    def main(
        args: List[str],
    ) -> None:
        client = Sample.create_client()
        org_group_send_headers = dingtalkrobot__1__0_models.OrgGroupSendHeaders()
        org_group_send_headers.x_acs_dingtalk_access_token = '<your access token>'
        org_group_send_request = dingtalkrobot__1__0_models.OrgGroupSendRequest(
            msg_param='{"content":"DingTalk, make progress happen"}',
            msg_key='sampleText',
            open_conversation_id='cid6KeBBLoveMJOGXoYKF5x7EeiodoA==',
            robot_code='dingue4kfzdxbynxxxxxx',
            cool_app_code='COOLAPP-1-10182EEDD1AC0BA600D9000J'
        )
        try:
            client.org_group_send_with_options(org_group_send_request, org_group_send_headers, util_models.RuntimeOptions())
        except Exception as err:
            if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
                # err contains the code and message attributes that help locate the issue
                pass

    @staticmethod
    async def main_async(
        args: List[str],
    ) -> None:
        client = Sample.create_client()
        org_group_send_headers = dingtalkrobot__1__0_models.OrgGroupSendHeaders()
        org_group_send_headers.x_acs_dingtalk_access_token = '<your access token>'
        org_group_send_request = dingtalkrobot__1__0_models.OrgGroupSendRequest(
            msg_param='{"content":"DingTalk, make progress happen"}',
            msg_key='sampleText',
            open_conversation_id='cid6KeBBLoveMJOGXoYKF5x7EeiodoA==',
            robot_code='dingue4kfzdxbynxxxxxx',
            cool_app_code='COOLAPP-1-10182EEDD1AC0BA600D9000J'
        )
        try:
            await client.org_group_send_with_options_async(org_group_send_request, org_group_send_headers, util_models.RuntimeOptions())
        except Exception as err:
            if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
                # err contains the code and message attributes that help locate the issue
                pass

if __name__ == '__main__':
    Sample.main(sys.argv[1:])
```

PHP

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
<?php

// This file is auto-generated, don't edit it. Thanks.
namespace AlibabaCloud\SDK\Sample;

use AlibabaCloud\SDK\Dingtalk\Vrobot_1_0\Dingtalk;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;

use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Dingtalk\Vrobot_1_0\Models\OrgGroupSendHeaders;
use AlibabaCloud\SDK\Dingtalk\Vrobot_1_0\Models\OrgGroupSendRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;

class Sample {

    /**
     * Initialize the account Client using a Token
     * @return Dingtalk Client
     */
    public static function createClient(){
        $config = new Config([]);
        $config->protocol = "https";
        $config->regionId = "central";
        return new Dingtalk($config);
    }

    /**
     * @param string[] $args
     * @return void
     */
    public static function main($args){
        $client = self::createClient();
        $orgGroupSendHeaders = new OrgGroupSendHeaders([]);
        $orgGroupSendHeaders->xAcsDingtalkAccessToken = "<your access token>";
        $orgGroupSendRequest = new OrgGroupSendRequest([
            "msgParam" => "{\"content\":\"DingTalk, make progress happen\"}",
            "msgKey" => "sampleText",
            "openConversationId" => "cid6KeBBLoveMJOGXoYKF5x7EeiodoA==",
            "robotCode" => "dingue4kfzdxbynxxxxxx",
            "coolAppCode" => "COOLAPP-1-10182EEDD1AC0BA600D9000J"
        ]);
        try {
            $client->orgGroupSendWithOptions($orgGroupSendRequest, $orgGroupSendHeaders, new RuntimeOptions([]));
        }
        catch (Exception $err) {
            if (!($err instanceof TeaError)) {
                $err = new TeaError([], $err->getMessage(), $err->getCode(), $err);
            }
            if (!Utils::empty_($err->code) && !Utils::empty_($err->message)) {
                // err contains the code and message attributes that help locate the issue
            }
        }
    }
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
    require_once $path;
}
Sample::main(array_slice($argv, 1));
```

Go

```go theme={"theme":{"light":"github-light","dark":"github-dark"}}
// This file is auto-generated, don't edit it. Thanks.
package main

import (
  "os"
  util  "github.com/alibabacloud-go/tea-utils/v2/service"
  dingtalkrobot_1_0  "github.com/alibabacloud-go/dingtalk/robot_1_0"
  openapi  "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  "github.com/alibabacloud-go/tea/tea"
)

/**
 * Initialize the account Client using a Token
 * @return Client
 * @throws Exception
 */
func CreateClient () (_result *dingtalkrobot_1_0.Client, _err error) {
  config := &openapi.Config{}
  config.Protocol = tea.String("https")
  config.RegionId = tea.String("central")
  _result = &dingtalkrobot_1_0.Client{}
  _result, _err = dingtalkrobot_1_0.NewClient(config)
  return _result, _err
}

func _main (args []*string) (_err error) {
  client, _err := CreateClient()
  if _err != nil {
    return _err
  }

  orgGroupSendHeaders := &dingtalkrobot_1_0.OrgGroupSendHeaders{}
  orgGroupSendHeaders.XAcsDingtalkAccessToken = tea.String("<your access token>")
  orgGroupSendRequest := &dingtalkrobot_1_0.OrgGroupSendRequest{
    MsgParam: tea.String("{\"content\":\"DingTalk, make progress happen\"}"),
    MsgKey: tea.String("sampleText"),
    OpenConversationId: tea.String("cid6KeBBLoveMJOGXoYKF5x7EeiodoA=="),
    RobotCode: tea.String("dingue4kfzdxbynxxxxxx"),
    CoolAppCode: tea.String("COOLAPP-1-10182EEDD1AC0BA600D9000J"),
  }
  tryErr := func()(_e error) {
    defer func() {
      if r := tea.Recover(recover()); r != nil {
        _e = r
      }
    }()
    _, _err = client.OrgGroupSendWithOptions(orgGroupSendRequest, orgGroupSendHeaders, &util.RuntimeOptions{})
    if _err != nil {
      return _err
    }

    return nil
  }()

  if tryErr != nil {
    var err = &tea.SDKError{}
    if _t, ok := tryErr.(*tea.SDKError); ok {
      err = _t
    } else {
      err.Message = tea.String(tryErr.Error())
    }
    if !tea.BoolValue(util.Empty(err.Code)) && !tea.BoolValue(util.Empty(err.Message)) {
      // err contains the code and message attributes that help locate the issue
    }

  }
  return _err
}

func main() {
  err := _main(tea.StringSlice(os.Args[1:]))
  if err != nil {
    panic(err)
  }
}
```

Node.js

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
// This file is auto-generated, don't edit it
import Util, * as $Util from '@alicloud/tea-util';
import dingtalkrobot_1_0, * as $dingtalkrobot_1_0 from '@alicloud/dingtalk/robot_1_0';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import * as $tea from '@alicloud/tea-typescript';

export default class Client {

  /**
   * Initialize the account Client using a Token
   * @return Client
   * @throws Exception
   */
  static createClient(): dingtalkrobot_1_0 {
    let config = new $OpenApi.Config({ });
    config.protocol = "https";
    config.regionId = "central";
    return new dingtalkrobot_1_0(config);
  }

  static async main(args: string[]): Promise<void> {
    let client = Client.createClient();
    let orgGroupSendHeaders = new $dingtalkrobot_1_0.OrgGroupSendHeaders({ });
    orgGroupSendHeaders.xAcsDingtalkAccessToken = "<your access token>";
    let orgGroupSendRequest = new $dingtalkrobot_1_0.OrgGroupSendRequest({
      msgParam: "{\"content\":\"DingTalk, make progress happen\"}",
      msgKey: "sampleText",
      openConversationId: "cid6KeBBLoveMJOGXoYKF5x7EeiodoA==",
      robotCode: "dingue4kfzdxbynxxxxxx",
      coolAppCode: "COOLAPP-1-10182EEDD1AC0BA600D9000J",
    });
    try {
      await client.orgGroupSendWithOptions(orgGroupSendRequest, orgGroupSendHeaders, new $Util.RuntimeOptions({ }));
    } catch (err) {
      if (!Util.empty(err.code) && !Util.empty(err.message)) {
        // err contains the code and message attributes that help locate the issue
      }

    }    
  }

}

Client.main(process.argv.slice(2));
```

C#

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
// This file is auto-generated, don't edit it. Thanks.

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;

using Tea;
using Tea.Utils;

namespace AlibabaCloud.SDK.Sample
{
    public class Sample 
    {

        /**
         * Initialize the account Client using a Token
         * @return Client
         * @throws Exception
         */
        public static AlibabaCloud.SDK.Dingtalkrobot_1_0.Client CreateClient()
        {
            AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
            config.Protocol = "https";
            config.RegionId = "central";
            return new AlibabaCloud.SDK.Dingtalkrobot_1_0.Client(config);
        }

        public static void Main(string[] args)
        {
            AlibabaCloud.SDK.Dingtalkrobot_1_0.Client client = CreateClient();
            AlibabaCloud.SDK.Dingtalkrobot_1_0.Models.OrgGroupSendHeaders orgGroupSendHeaders = new AlibabaCloud.SDK.Dingtalkrobot_1_0.Models.OrgGroupSendHeaders();
            orgGroupSendHeaders.XAcsDingtalkAccessToken = "<your access token>";
            AlibabaCloud.SDK.Dingtalkrobot_1_0.Models.OrgGroupSendRequest orgGroupSendRequest = new AlibabaCloud.SDK.Dingtalkrobot_1_0.Models.OrgGroupSendRequest
            {
                MsgParam = "{\"content\":\"DingTalk, make progress happen\"}",
                MsgKey = "sampleText",
                OpenConversationId = "cid6KeBBLoveMJOGXoYKF5x7EeiodoA==",
                RobotCode = "dingue4kfzdxbynxxxxxx",
                CoolAppCode = "COOLAPP-1-10182EEDD1AC0BA600D9000J",
            };
            try
            {
                client.OrgGroupSendWithOptions(orgGroupSendRequest, orgGroupSendHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
            }
            catch (TeaException err)
            {
                if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
                {
                    // err contains the code and message attributes that help locate the issue
                }
            }
            catch (Exception _err)
            {
                TeaException err = new TeaException(new Dictionary<string, object>
                {
                    { "message", _err.Message }
                });
                if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
                {
                    // err contains the code and message attributes that help locate the issue
                }
            }
        }

    }
}
```

## Response

### Response body

| Name            | Type   | Description                                                                                                                                                                                                                                                                                                                                                                                                                   |
| --------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| processQueryKey | String | The encrypted message ID. Use this ID to query the read status of the message and recall the message by calling the [Query the read list of bot messages in person-to-person chats](/open/development/query-the-read-list-of-robot-messages-in-person-to-person-conversations#) and [Recall internal group messages sent by an enterprise bot](/open/development/enterprise-chatbot-withdraws-internal-group-messages#) APIs. |

### Response body example

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
HTTP/1.1 200 OK
Content-Type:application/json

{
  "processQueryKey" : "jkasdfb8va9hndjksnvzkj"
}
```

### Error codes

If an error occurs when you call this API, find the solution in the [Global error codes](/open/development/server-api-error-codes-1) topic based on the error message.

| HttpCode | Error code                               | Error message                                                                                               | Description                                                                                                 |
| -------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| 400      | invalidParameter.robotCode.empty         | The bot robotCode is empty.                                                                                 | The bot robotCode is invalid. Check whether the bot is in the group.                                        |
| 400      | invalidParameter.robotCode.auth          | The app appkey does not match the bot robotCode. Use the appkey of the bot's app.                           | The app appkey does not match the bot robotCode. Use the appkey of the bot's app.                           |
| 400      | invalidParameter.robotCode.auth          | The app suiteKey does not match the bot. Use the suiteKey of the ISV app bound to the bot to send messages. | The app suiteKey does not match the bot. Use the suiteKey of the ISV app bound to the bot to send messages. |
| 400      | invalidParameter.robotCode.coolApp       | The cool app code is invalid.                                                                               | The cool app code is invalid.                                                                               |
| 400      | invalidParameter.robotCode.coolApp       | The cool app code does not match the bot. Use the bot bound to this cool app to send messages.              | The cool app code does not match the bot. Use the bot bound to this cool app to send messages.              |
| 400      | invalidParameter.robotCode.coolApp       | The cool app bound to this bot is not used in the group.                                                    | The cool app bound to this bot is not used in the group.                                                    |
| 400      | invalidParameter.robotCode.auth          | Only the cool app identity can use this bot.                                                                | Only the cool app identity can use this bot.                                                                |
| 400      | invalidParameter.userIds.empty           | The user userId list is empty.                                                                              | The user userId list is empty.                                                                              |
| 400      | invalidParameter.userIds.overMax         | The user userId list exceeds the maximum limit.                                                             | The user userId list exceeds the maximum limit.                                                             |
| 400      | invalidParameter.msgKey.empty            | msgKey is missing.                                                                                          | msgKey is missing.                                                                                          |
| 400      | invalidParameter.msgKey.invalid          | msgKey is invalid.                                                                                          | msgKey is invalid.                                                                                          |
| 400      | invalidParameter.msgParam.invalid        | msgParam must be in JSON format.                                                                            | msgParam must be in JSON format.                                                                            |
| 400      | invalidParameter.param.invalid           | Invalid parameter.                                                                                          | Invalid parameter.                                                                                          |
| 400      | invalidParameter.msg.unsupport           | Unsupported message type.                                                                                   | Unsupported message type.                                                                                   |
| 400      | invalidParameter.msgParam.tooLong        | The message content is too long.                                                                            | The message content is too long.                                                                            |
| 400      | invalidParameter.robotCode.notExsit      | The bot does not exist.                                                                                     | The bot does not exist.                                                                                     |
| 400      | unknown.send.result                      | Unknown send result.                                                                                        | Unknown send result.                                                                                        |
| 400      | invalidParameter.msgBody.invalid         | The body must be JSON.                                                                                      | The body must be JSON.                                                                                      |
| 400      | invalidParameter.robotCode.missing       | robotCode is missing.                                                                                       | robotCode is missing.                                                                                       |
| 400      | invalidParameter.userId.empty            | staffId is missing.                                                                                         | staffId is missing.                                                                                         |
| 400      | invalidParameter.token.invalid           | Unauthorized token.                                                                                         | Unauthorized token.                                                                                         |
| 400      | invalidParameter.processQueryKey.missing | processQueryKey is missing.                                                                                 | processQueryKey is missing.                                                                                 |
| 400      | invalidParameter.robotCode.invalid       | Invalid robotCode.                                                                                          | Invalid robotCode.                                                                                          |
| 400      | invalid.processQueryKey                  | Invalid processQueryKey.                                                                                    | Invalid processQueryKey.                                                                                    |
| 400      | miss.openConversationId                  | openConversationId is missing.                                                                              | openConversationId is missing.                                                                              |
| 400      | invalid.openConversationId               | Invalid openConversationId.                                                                                 | Invalid openConversationId.                                                                                 |
| 400      | group.disbanded                          | The group has been disbanded.                                                                               | The group has been disbanded.                                                                               |
| 400      | token.notExisted                         | The TOKEN does not exist.                                                                                   | The TOKEN does not exist.                                                                                   |
| 400      | bot.stopped                              | The group bot has been deactivated.                                                                         | The group bot has been deactivated.                                                                         |
| 400      | template.not.existed                     | The bot template does not exist.                                                                            | The bot template does not exist.                                                                            |
| 400      | template.stopped                         | The bot template has been deactivated.                                                                      | The bot template has been deactivated.                                                                      |
| 400      | miss.param.text                          | The text attribute is required.                                                                             | The text attribute is required.                                                                             |
| 400      | miss.param.contentOfText                 | The text->content attribute is required.                                                                    | The text->content attribute is required.                                                                    |
| 400      | miss.param.link                          | The link attribute is required.                                                                             | The link attribute is required.                                                                             |
| 400      | miss.param.textOfLink                    | The link->text attribute is required.                                                                       | The link->text attribute is required.                                                                       |
| 400      | miss.param.titleOfLink                   | The link->title attribute is required.                                                                      | The link->title attribute is required.                                                                      |
| 400      | miss.param.messageUrlOfLink              | The link->messageUrl attribute is required.                                                                 | The link->messageUrl attribute is required.                                                                 |
| 400      | miss.param.markdown                      | The markdown attribute is required.                                                                         | The markdown attribute is required.                                                                         |
| 400      | miss.param.markdownTotitle               | The markdown->text attribute is required.                                                                   | The markdown->text attribute is required.                                                                   |
| 400      | miss.param.markdownTotext                | The markdown->text attribute is required.                                                                   | The markdown->text attribute is required.                                                                   |
| 400      | miss.param.actionCard                    | The actionCard attribute is required.                                                                       | The actionCard attribute is required.                                                                       |
| 400      | miss.param.actionCardTotitle             | The actionCard->title attribute is required.                                                                | The actionCard->title attribute is required.                                                                |
| 400      | miss.param.actionCardTotext              | The actionCard->text attribute is required.                                                                 | The actionCard->text attribute is required.                                                                 |
| 400      | miss.param.actionCardTosingleTitle       | The actionCard->singleTitle attribute is required.                                                          | The actionCard->singleTitle attribute is required.                                                          |
| 400      | miss.param.actionCardTosingleUrl         | The actionCard->singleURL attribute is required.                                                            | The actionCard->singleURL attribute is required.                                                            |
| 400      | miss.param.actionCardTobtns              | The actionCard->btns attribute is required.                                                                 | The actionCard->btns attribute is required.                                                                 |
| 400      | miss.param.actionCardTobtnsTotitle       | The actionCard->btns->title attribute is required.                                                          | The actionCard->btns->title attribute is required.                                                          |
| 400      | miss.param.actionCardTobtnsToactionUrl   | The actionCard->btns->actionURL attribute is required.                                                      | The actionCard->btns->actionURL attribute is required.                                                      |
| 400      | invalid.param.actionCardTobtnOrientation | Invalid actionCard->btnOrientation.                                                                         | Invalid actionCard->btnOrientation.                                                                         |
| 400      | invalid.param.actionCardTocanForward     | Invalid actionCard->canForward.                                                                             | Invalid actionCard->canForward.                                                                             |
| 400      | miss.param.feedCard                      | The feedCard attribute is required.                                                                         | The feedCard attribute is required.                                                                         |
| 400      | miss.param.feedCardTolinks               | The feedCard->links attribute is required.                                                                  | The feedCard->links attribute is required.                                                                  |
| 400      | miss.param.feedCardTolinksTotitle        | The feedCard->links->title attribute is required.                                                           | The feedCard->links->title attribute is required.                                                           |
| 400      | miss.param.feedCardTolinksTomessageUrl   | The feedCard->links->messageURL attribute is required.                                                      | The feedCard->links->messageURL attribute is required.                                                      |
| 400      | miss.param.feedCardTolinksTopicUrl       | The feedCard->links->picURL attribute is required.                                                          | The feedCard->links->picURL attribute is required.                                                          |
| 400      | miss.param.photo                         | The photo attribute is required.                                                                            | The photo attribute is required.                                                                            |
| 400      | miss.param.photoTophotoUrl               | The photo->photoURL attribute is required.                                                                  | The photo->photoURL attribute is required.                                                                  |
| 400      | miss.param.image                         | The image attribute is required.                                                                            | The image attribute is required.                                                                            |
| 400      | miss.param.imageTopicUrl                 | The image->picURL attribute is required.                                                                    | The image->picURL attribute is required.                                                                    |
| 400      | miss.param.beautifulCard                 | The beautifulCard attribute is required.                                                                    | The beautifulCard attribute is required.                                                                    |
| 400      | miss.param.beautifulCardToimage          | The beautifulCard->image attribute is required.                                                             | The beautifulCard->image attribute is required.                                                             |
| 400      | miss.param.beautifulCardTotitle          | The beautifulCard->title attribute is required.                                                             | The beautifulCard->title attribute is required.                                                             |
| 400      | miss.param.beautifulCardToactionUrl      | The beautifulCard->actionUrl attribute is required.                                                         | The beautifulCard->actionUrl attribute is required.                                                         |
| 400      | miss.param.beautifulCardTointroduction   | The beautifulCard->introduction attribute is required.                                                      | The beautifulCard->introduction attribute is required.                                                      |
| 400      | send.byToken.tooFast                     | Rate limit error when sending with TOKEN.                                                                   | Rate limit error when sending with TOKEN.                                                                   |
| 400      | send.too.fast                            | Rate limit error.                                                                                           | Rate limit error.                                                                                           |
| 400      | send.forbidden                           | Sending is forbidden.                                                                                       | Sending is forbidden.                                                                                       |
| 400      | ip.not.match                             | The IP does not match.                                                                                      | The IP does not match.                                                                                      |
| 400      | keywords.not.match                       | Keywords do not match.                                                                                      | Keywords do not match.                                                                                      |
| 400      | sign.not.match                           | The signature does not match.                                                                               | The signature does not match.                                                                               |
| 400      | contain.unsafe.url                       | Contains an unsafe external link.                                                                           | Contains an unsafe external link.                                                                           |
| 400      | contain.notAllowed.text                  | Contains inappropriate text.                                                                                | Contains inappropriate text.                                                                                |
| 400      | contain.notAllowed.picture               | Contains an inappropriate image.                                                                            | Contains an inappropriate image.                                                                            |
| 400      | contain.notAllowed.content               | Contains inappropriate content.                                                                             | Contains inappropriate content.                                                                             |
| 400      | illegal.receivers                        | The recipient list is invalid.                                                                              | The recipient list is invalid.                                                                              |
| 400      | receivers.exceed                         | The recipient list exceeds the limit.                                                                       | The recipient list exceeds the limit.                                                                       |
| 400      | illegal.excludes                         | The excluded recipient list is invalid.                                                                     | The excluded recipient list is invalid.                                                                     |
| 400      | too.many.group                           | Rate limit due to frequent sending.                                                                         | Rate limit due to frequent sending.                                                                         |
| 400      | too.many.people                          | Rate limit due to frequent sending.                                                                         | Rate limit due to frequent sending.                                                                         |
| 400      | only.groupAdmin.canAtAll                 | Only the group owner can @Everyone.                                                                         | Only the group owner can @Everyone.                                                                         |
| 400      | bot.forbidden.sendMessage                | The account is muted.                                                                                       | The account is muted.                                                                                       |
| 400      | session.notExisted                       | The session does not exist.                                                                                 | The session does not exist.                                                                                 |
| 400      | session.expired                          | The session has expired.                                                                                    | The session has expired.                                                                                    |
| 400      | staffId.notExisted                       | staffId does not exist.                                                                                     | staffId does not exist.                                                                                     |
| 400      | chatbotId.notAllow\.sendOTO              | Proactively sending direct messages is not allowed.                                                         | Proactively sending direct messages is not allowed.                                                         |
| 400      | robot.oto.notExist                       | No valid bot direct message chat exists.                                                                    | No valid bot direct message chat exists.                                                                    |
| 400      | sendMessage.model.notMatch               | No matching message model.                                                                                  | No matching message model.                                                                                  |
| 400      | miss.param.file                          | %s                                                                                                          | Invalid message content. The file attribute is required.                                                    |
| 400      | miss.param.video                         | %s                                                                                                          | Invalid message content. The video->videoMediaId attribute is required.                                     |
| 400      | miss.param.audio                         | %s                                                                                                          | Invalid message content. The audio attribute is required.                                                   |
| 400      | conversation.org.notMatch                | The organization information of the chat does not match.                                                    | Confirm whether the token has permission to operate on this chat.                                           |
| 400      | resource.not.found                       | %s                                                                                                          | The resource does not exist. The bot may not exist.                                                         |
| 400      | unauthorized                             | %s                                                                                                          | Unauthorized.                                                                                               |
| 400      | auth.error                               | %s                                                                                                          | Insufficient permissions. The operation is not allowed.                                                     |
| 400      | resource.unavailable                     | %s                                                                                                          | The resource is unavailable. The bot may be deactivated, or the cool app may not be installed in the chat.  |
| 500      | system.error                             | Unknown system error.                                                                                       | Unknown system error.                                                                                       |
| 500      | send.ding.exception                      | Error sending DING message.                                                                                 | Error sending DING message.                                                                                 |
