{% note tip "" %}
If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the MCP server so that the assistant can utilize the official REST documentation.
{% endnote %}
Scope:
imbotWho can execute the method: owner of the registered bot
The method imbot.v2.Chat.Message.Reaction.add adds a bot reaction to a message.
{% include Note on required parameters %}
#|
|| Name
Type | Description ||
|| botId*
integer | Bot ID ||
|| botToken
string | Unique authorization token for the bot. Required for webhook authorization, not needed for OAuth.
Pass the same botToken that was specified during the chat bot registration ||
|| messageId*
integer | Message ID ||
|| reaction*
string | Reaction code. A list of available codes is described below ||
|#
#|
|| Code | Description ||
|| like | Like ||
|| dislike | Dislike ||
|| faceWithTearsOfJoy | Laughing to tears ||
|| redHeart | Heart ||
|| neutralFace | Indifferent ||
|| fire | Fire! ||
|| cry | Sad ||
|| slightlySmilingFace | Smiling ||
|| winkingFace | Winking ||
|| laugh | Laughing ||
|| kiss | Admiring ||
|| wonder | Shocked ||
|| slightlyFrowningFace | Frowning ||
|| loudlyCryingFace | Crying ||
|| faceWithStuckOutTongue | Tongue out ||
|| faceWithStuckOutTongueAndWinkingEye | Teasing ||
|| smilingFaceWithSunglasses | Cool ||
|| confusedFace | Not sure ||
|| flushedFace | Embarrassed ||
|| thinkingFace | Doubting ||
|| angry | Angry ||
|| smilingFaceWithHorns | Smirking ||
|| faceWithThermometer | Sick ||
|| facepalm | No comment ||
|| poo | Yuck ||
|| flexedBiceps | Strong ||
|| clappingHands | Awesome ||
|| raisedHand | High five ||
|| smilingFaceWithHeartEyes | Beautiful ||
|| smilingFaceWithHearts | Love it ||
|| pleadingFace | Begging ||
|| relievedFace | Zen ||
|| foldedHands | Thank you ||
|| okHand | OK ||
|| signHorns | Rock! ||
|| loveYouGesture | All good ||
|| clownFace | Clown ||
|| partyingFace | Congratulations ||
|| questionMark | Question ||
|| exclamationMark | Attention ||
|| lightBulb | Idea ||
|| bomb | Bomb ||
|| sleepingSymbol | Sleeping ||
|| crossMark | Cancel ||
|| whiteHeavyCheckMark | Done ||
|| eyes | Eyes ||
|| handshake | Deal ||
|| hundredPoints | Support ||
|#
The list of reactions may expand or contract without prior notice.
{% include Note on examples %}
{% list tabs %}
-
cURL (Webhook)
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"botId":456,"botToken":"my_bot_token","messageId":789,"reaction":"like"}' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/imbot.v2.Chat.Message.Reaction.add
-
cURL (OAuth)
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"botId":456,"messageId":789,"reaction":"like","auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/imbot.v2.Chat.Message.Reaction.add
-
JS
try { const response = await $b24.callMethod('imbot.v2.Chat.Message.Reaction.add', { botId: 456, messageId: 789, reaction: 'like', }); const { result } = response.getData(); console.log('result:', result); } catch (error) { console.error('Error:', error); }
-
Python
from b24pysdk.errors import BitrixAPIError, BitrixSDKException try: bitrix_response = client.imbot.v2.chat.message.reaction.add( bot_id=456, message_id=789, reaction="like", ).response result = bitrix_response.result print(result) except BitrixAPIError as error: print( "Bitrix API error", f"error: {error.error}", f"error_description: {error.error_description}", sep="\n", ) except BitrixSDKException as error: print(f"Bitrix SDK error: {error.message}") except Exception as error: print(f"Unexpected error: {error}")
-
PHP
try { $response = $b24Service ->core ->call( 'imbot.v2.Chat.Message.Reaction.add', [ 'botId' => 456, 'messageId' => 789, 'reaction' => 'like', ] ); $result = $response ->getResponseData() ->getResult(); echo 'result: ' . print_r($result, true); } catch (Throwable $exception) { error_log($exception->getMessage()); echo 'Error: ' . $exception->getMessage(); }
-
BX24.js
BX24.callMethod( 'imbot.v2.Chat.Message.Reaction.add', { botId: 456, messageId: 789, reaction: 'like', }, function(result) { if (result.error()) { console.error(result.error().ex); } else { console.log(result.data()); } } );
-
PHP CRest
require_once('crest.php'); $result = CRest::call( 'imbot.v2.Chat.Message.Reaction.add', [ 'botId' => 456, 'messageId' => 789, 'reaction' => 'like', ] ); if (!empty($result['error'])) { echo 'Error: ' . $result['error_description']; } else { echo 'Reaction added'; }
-
Go
// client and ctx are already created — see the Go SDK section res, err := client.Core().Call(ctx, "imbot.v2.Chat.Message.Reaction.add", b24.Params{ "botId": 456, "botToken": "my_bot_token", "messageId": 789, "reaction": "like", }) if err != nil { return fmt.Errorf("imbot.v2.Chat.Message.Reaction.add: %w", err) } var item struct { Result bool `json:"result"` } if err := json.Unmarshal(res.Result, &item); err != nil { return fmt.Errorf("parse response: %w", err) } fmt.Println(item.Result)
{% endlist %}
HTTP Status: 200
{
"result": {
"result": true
},
"time": {
"start": 1728626400.123,
"finish": 1728626400.234,
"duration": 0.111,
"processing": 0.045,
"date_start": "2024-10-11T10:00:00+02:00",
"date_finish": "2024-10-11T10:00:00+02:00"
}
}#|
|| Name
Type | Description ||
|| result
object | Result of the operation ||
|| result.result
boolean | true if the reaction was successfully added ||
|| time
time | Information about the request execution time ||
|#
HTTP Status: 400, 403
{
"error": "REACTION_NOT_FOUND",
"error_description": "Reaction not found"
}{% include notitle Error Handling %}
#|
|| Code | Description | Value ||
|| BOT_TOKEN_NOT_SPECIFIED | Bot token is not specified | botToken is not provided. Required for webhook authorization ||
|| BOT_ID_REQUIRED | Bot ID is required | botId is not provided ||
|| BOT_NOT_FOUND | Bot not found | Bot not found ||
|| BOT_OWNERSHIP_ERROR | Bot is registered by another application | Bot is registered by another application ||
|| ACCESS_DENIED | Access denied | Bot is not a participant in the chat with this message ||
|| REACTION_NOT_FOUND | Reaction not found | A non-existent reaction code was specified ||
|| REACTION_ALREADY_SET | Reaction already set | This reaction is already set by the bot on this message ||
|#
{% include System Errors %}