Create a Chat-Bot imbot.register
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.
Scope:
imbotWho can execute the method: an authorized user of the application that registers the chat-bot.
DEPRECATED
Development of this method has been halted. Please use imbot.v2.Bot.register.
The method imbot.register registers a chat-bot and binds event handlers of the application.
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
CODE* |
The string code of the bot, unique within Bitrix24 |
|
TYPE |
The type of the bot. Allowed values:
Default value: |
|
OPENLINE |
Operation mode with Open Channels. Allowed values:
For |
|
EVENT_HANDLER |
General URL for the event handler. If provided, its value is copied to If different handlers are needed, do not pass |
|
EVENT_MESSAGE_ADD* |
URL for the event handler ONIMBOTMESSAGEADD |
|
EVENT_MESSAGE_UPDATE |
URL for the event handler ONIMBOTMESSAGEUPDATE. This parameter is ignored only for bots with |
|
EVENT_MESSAGE_DELETE |
URL for the event handler ONIMBOTMESSAGEDELETE. This parameter is ignored only for bots with |
|
EVENT_WELCOME_MESSAGE* |
URL for the event handler ONIMBOTJOINCHAT |
|
EVENT_BOT_DELETE* |
URL for the event handler ONIMBOTDELETE |
|
CLIENT_ID |
This parameter is required only for webhooks. Provide a unique CLIENT_ID — this key will be linked to the chat-bot and will be needed for all subsequent calls to imbot* via webhook |
|
PROPERTIES* |
Properties of the chat-bot profile. The structure of the object is described in detail below |
Parameter PROPERTIES
|
Name |
Description |
|
NAME* |
The name of the chat-bot. You must provide either |
|
LAST_NAME* |
The last name of the chat-bot. You must provide either |
|
COLOR |
The color of the chat-bot for the mobile interface: |
|
EMAIL |
Email for contacting the chat-bot. The bot is created as a user, so the bot's email must not match the email of a real Bitrix24 user. This will help avoid account conflicts |
|
PERSONAL_BIRTHDAY |
Birthday in the format |
|
WORK_POSITION |
Position or description of the chat-bot |
|
PERSONAL_WWW |
Website link |
|
PERSONAL_GENDER |
Gender, allowed values: |
|
PERSONAL_PHOTO |
Avatar of the chat-bot in Base64 The image size must not exceed the limit of 5000x5000 |
If the application logic allows, send a response to the bot upon explicit mention. This can be checked via the TO_USER_ID field.
Only one set of event handler URLs can be used in a single application.
If registering a second bot, the parameters EVENT_MESSAGE_ADD, EVENT_WELCOME_MESSAGE, and EVENT_BOT_DELETE must match those of the first bot.
If there are multiple bots in the application, differentiate them within a single event handler. Pass an array of bots in the event.
The maximum number of bots for a single application: 5
Code Examples
How to Use Examples in Documentation
curl -X POST /
-H "Content-Type: application/json" /
-H "Accept: application/json" /
-d '{"CODE":"newbot","TYPE":"B","EVENT_HANDLER":"https://example.com/bot/events","OPENLINE":"N","PROPERTIES":{"NAME":"NewBot","WORK_POSITION":"Support bot"},"CLIENT_ID":"**put_your_client_id_here**"}' /
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/imbot.register
curl -X POST /
-H "Content-Type: application/json" /
-H "Accept: application/json" /
-d '{"CODE":"newbot","TYPE":"B","EVENT_HANDLER":"https://example.com/bot/events","OPENLINE":"N","PROPERTIES":{"NAME":"NewBot"},"auth":"**put_access_token_here**"}' /
https://**put_your_bitrix24_address**/rest/imbot.register
try {
const response = await $b24.callMethod('imbot.register', {
CODE: 'newbot',
TYPE: 'B',
EVENT_HANDLER: 'https://example.com/bot/events',
OPENLINE: 'N',
PROPERTIES: {
NAME: 'NewBot',
WORK_POSITION: 'Support bot',
},
});
const { result } = response.getData();
console.log('Created bot ID:', result);
} catch (error) {
console.error('Error registering bot:', error);
}
try {
$response = $b24Service
->core
->call(
'imbot.register',
[
'CODE' => 'newbot',
'TYPE' => 'B',
'EVENT_HANDLER' => 'https://example.com/bot/events',
'OPENLINE' => 'N',
'PROPERTIES' => [
'NAME' => 'NewBot',
'WORK_POSITION' => 'Support bot',
],
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
echo 'Error: ' . $result->error();
} else {
echo 'Created bot ID: ' . $result->data();
}
} catch (Throwable $exception) {
error_log($exception->getMessage());
echo 'Error registering bot: ' . $exception->getMessage();
}
BX24.callMethod(
'imbot.register',
{
CODE: 'newbot',
TYPE: 'B',
EVENT_HANDLER: 'https://example.com/bot/events',
OPENLINE: 'N',
PROPERTIES: {
NAME: 'NewBot',
WORK_POSITION: 'Support bot',
},
},
function(result) {
if (result.error()) {
console.error(result.error().ex);
} else {
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'imbot.register',
[
'CODE' => 'newbot',
'TYPE' => 'B',
'EVENT_HANDLER' => 'https://example.com/bot/events',
'OPENLINE' => 'N',
'PROPERTIES' => [
'NAME' => 'NewBot',
'WORK_POSITION' => 'Support bot',
],
]
);
if (!empty($result['error'])) {
echo 'Error: ' . $result['error_description'];
} else {
echo 'Created bot ID: ' . $result['result'];
}
Response Handling
HTTP Code: 200
{
"result": 39,
"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",
"operating_reset_at": 1762349466,
"operating": 0
}
}
Returned Data
|
Name |
Description |
|
result |
Identifier of the created chat-bot |
|
time |
Information about the request execution time |
Error Handling
HTTP Status: 400, 403
{
"error": "CODE_ERROR",
"error_description": "Bot code 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 |
|
|
Access for this method not allowed by session authorization |
The method was called with session authorization instead of OAuth or webhook |
|
|
Access denied! Client ID not specified |
Unable to determine the application: |
|
|
Handler for "Message add" event isn't specified |
The required event handler |
|
|
Wrong handler URL |
An invalid URL was provided for |
|
|
Wrong handler URL |
An invalid URL was provided for |
|
|
Wrong handler URL |
An invalid URL was provided for |
|
|
Handler for "Welcome message" event isn't specified |
The required event handler |
|
|
Wrong handler URL |
An invalid URL was provided for |
|
|
Handler for "Bot delete" event isn't specified |
The required event handler |
|
|
Wrong handler URL |
An invalid URL was provided for |
|
|
Bot code isn't specified |
The required bot code |
|
|
Bot name isn't specified |
One of the required fields in |
|
|
Has reached the maximum number of bots for application (max: N) |
The limit on the number of bots for the application has been reached |
|
|
Bot can't be created |
The bot cannot be created |
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 permitted for calls using batch |
|
|
|
The maximum length of parameters passed to the batch method has been exceeded |
|
|
|
Invalid access token or webhook code |
|
|
|
The HTTPS protocol is required for method calls |
|
|
|
The REST API is blocked due to overload. This is a manual individual block; please contact Bitrix24 technical support to lift it |
|
|
|
The REST API is only available on commercial plans |
|
|
|
The user associated with the access token or webhook used to call the method lacks the necessary 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 portal administrator has restricted access to this application to specific users only |
|
|
|
The public part of the site is closed. To open the public part of the site on an on-premise installation, disable the "Temporary closure of the public part of the site" option. Path to the setting: Desktop > Settings > Product Settings > Module Settings > Main Module > Temporary closure of the public part of the site |
Continue Learning
- Update Chat-Bot imbot.update
- Unregister Chat Bot imbot.unregister
- Get the List of Chat Bots imbot.bot.list
- About Events