Add the imbot.command.register Command
Scope:
imbotWho can execute the method: a user of the application that registered the chat bot
The method imbot.command.register registers a command for the chat bot.
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
BOT_ID* |
The identifier of the chat bot. You can obtain the bot ID using the imbot.bot.list method |
|
COMMAND* |
The text of the command that the user types in the chat. Latin letters and numbers can be used without spaces and special characters |
|
EVENT_COMMAND_ADD* |
The URL of the event handler ONIMCOMMANDADD, which is called when the command is used |
|
LANG* |
An array of localizations for the command. The structure is described below |
|
COMMON |
Command availability:
Default - |
|
HIDDEN |
Command visibility:
Default - |
|
EXTRANET_SUPPORT |
Command availability for extranet users:
Default - |
|
CLIENT_ID |
This parameter is required only for webhooks. Pass the same CLIENT_ID that was specified when registering the chat bot |
LANG Parameter
|
Name |
Description |
|
LANGUAGE_ID* |
Language identifier, e.g., |
|
TITLE* |
The name of the command in the selected language |
|
PARAMS |
A hint for the command parameters in the selected language |
When registering multiple commands, specify the same URL in EVENT_COMMAND_ADD, and parse the specific command in the handler code by COMMAND/COMMAND_ID.
Code Examples
How to Use Examples in Documentation
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"BOT_ID":1291,"COMMAND":"echo","EVENT_COMMAND_ADD":"https://example.com/bot/command.php","LANG":[{"LANGUAGE_ID":"de","TITLE":"Echo","PARAMS":"text"},{"LANGUAGE_ID":"en","TITLE":"Echo","PARAMS":"text"}],"COMMON":"Y","HIDDEN":"N","EXTRANET_SUPPORT":"N","CLIENT_ID":"**put_your_client_id_here**"}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/imbot.command.register
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"BOT_ID":1291,"COMMAND":"echo","EVENT_COMMAND_ADD":"https://example.com/bot/command.php","LANG":[{"LANGUAGE_ID":"de","TITLE":"Echo","PARAMS":"text"},{"LANGUAGE_ID":"en","TITLE":"Echo","PARAMS":"text"}],"COMMON":"Y","HIDDEN":"N","EXTRANET_SUPPORT":"N","auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/imbot.command.register
try
{
const response = await $b24.callMethod(
'imbot.command.register',
{
BOT_ID: 1291,
COMMAND: 'echo',
EVENT_COMMAND_ADD: 'https://example.com/bot/command.php',
LANG: [
{ LANGUAGE_ID: 'de', TITLE: 'Echo', PARAMS: 'text' },
{ LANGUAGE_ID: 'en', TITLE: 'Echo', PARAMS: 'text' }
],
COMMON: 'Y',
HIDDEN: 'N',
EXTRANET_SUPPORT: 'N'
}
);
const result = response.getData().result;
console.log('Created element with ID:', result);
processResult(result);
}
catch( error )
{
console.error('Error:', error);
}
try {
$response = $b24Service
->core
->call(
'imbot.command.register',
[
'BOT_ID' => 1291,
'COMMAND' => 'echo',
'EVENT_COMMAND_ADD' => 'https://example.com/bot/command.php',
'LANG' => [
['LANGUAGE_ID' => 'de', 'TITLE' => 'Echo', 'PARAMS' => 'text'],
['LANGUAGE_ID' => 'en', 'TITLE' => 'Echo', 'PARAMS' => 'text']
],
'COMMON' => 'Y',
'HIDDEN' => 'N',
'EXTRANET_SUPPORT' => 'N'
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding product row: ' . $e->getMessage();
}
BX24.callMethod(
'imbot.command.register',
{
BOT_ID: 1291,
COMMAND: 'echo',
EVENT_COMMAND_ADD: 'https://example.com/bot/command.php',
LANG: [
{ LANGUAGE_ID: 'de', TITLE: 'Echo', PARAMS: 'text' },
{ LANGUAGE_ID: 'en', TITLE: 'Echo', PARAMS: 'text' }
],
COMMON: 'Y',
HIDDEN: 'N',
EXTRANET_SUPPORT: 'N'
},
function(result)
{
if (result.error())
console.error(result.error());
else
console.dir(result.data());
}
);
require_once('crest.php');
$result = CRest::call(
'imbot.command.register',
[
'BOT_ID' => 1291,
'COMMAND' => 'echo',
'EVENT_COMMAND_ADD' => 'https://example.com/bot/command.php',
'LANG' => [
['LANGUAGE_ID' => 'de', 'TITLE' => 'Echo', 'PARAMS' => 'text'],
['LANGUAGE_ID' => 'en', 'TITLE' => 'Echo', 'PARAMS' => 'text']
],
'COMMON' => 'Y',
'HIDDEN' => 'N',
'EXTRANET_SUPPORT' => 'N'
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
Response Handling
HTTP Status: 200
{
"result": 99,
"time": {
"start": 1772088116,
"finish": 1772088116.785232,
"duration": 0.7852320671081543,
"processing": 0,
"date_start": "2026-02-26T09:41:56+01:00",
"date_finish": "2026-02-26T09:41:56+01:00",
"operating_reset_at": 1772088716,
"operating": 0.49926185607910156
}
}
Returned Data
|
Name |
Description |
|
result |
The identifier of the registered command |
|
time |
Information about the request execution time |
Error Handling
HTTP Status: 400
{
"error": "COMMAND_ERROR",
"error_description": "Command isn't specified"
}
|
Name |
Description |
|
error |
String error code. It may consist of digits, Latin letters, and underscores |
|
error_description |
Textual description of the error. The description is not intended to be shown to the end user in its raw form |
Possible Error Codes
|
Code |
Description |
Value |
|
|
Handler for "Command add" event isn't specified |
The |
|
|
Wrong handler URL |
An invalid URL for the command add event handler was provided |
|
|
Command isn't specified |
The command text is not specified |
|
|
Bot not found |
The chat bot was not found |
|
|
Bot was installed by another REST application |
The chat bot was registered by another application |
|
|
Lang set can't be empty |
The |
|
|
Command can't be created |
Failed to register the command |
Statuses and System Error Codes
HTTP Status: 20x, 40x, 50x
The errors described below may occur when calling any method.
|
Status |
Code |
Description |
|
|
|
An internal server error has occurred, please contact the server administrator or Bitrix24 technical support |
|
|
|
An internal server error has occurred, please contact the server administrator or Bitrix24 technical support |
|
|
|
The request intensity limit has been exceeded |
|
|
|
The current method is not allowed to be called using batch |
|
|
|
The maximum length of parameters passed to the batch method has been exceeded |
|
|
|
Invalid access token or webhook code |
|
|
|
The methods must be called using the HTTPS protocol |
|
|
|
The REST API is blocked due to overload. This is a manual individual block, to remove it you need to contact Bitrix24 technical support |
|
|
|
The REST API is available only on commercial plans |
|
|
|
The user whose access token or webhook was used to call the method lacks permissions |
|
|
|
The manifest is not available |
|
|
|
The request requires higher privileges than those provided by the webhook token |
|
|
|
The provided access token has expired |
|
|
|
The user does not have access to the application. This means that the application is installed, but the account administrator has allowed access to this application only for specific users |
|
|
|
The public part of the site is closed. To open the public part of the site on an on-premise installation, disable the option "Temporary closure of the public part of the site". Path to the setting: Desktop > Settings > Product Settings > Module Settings > Main Module > Temporary closure of the public part of the site |
Continue Learning
- Update the imbot.command.update
- Remove the imbot.command.unregister Command
- Send a Response to the imbot.command.answer Command
- Event Triggered by the Chat Bot Command ONIMCOMMANDADD