im.search.chat.list
Найти чаты
Описание
Метод im.search.chat.list выполняет поиск чатов, к которым текущий пользователь имеет доступ. Поиск выполняется по заголовку, имени и фамилии участников чата.
Результаты сортируются в порядке убывания идентификаторов.
Параметры
FIND
string
необязательный
Поисковая фраза для поиска по индексируемым данным чата. Минимальное количество символов для поиска — 2
FIND_LINES
string
необязательный
Поисковая фраза для поиска чатов среди Открытых линий. Минимальное количество символов для поиска — 2
OFFSET
integer
необязательный
Смещение выборки чатов. По умолчанию 0
LIMIT
integer
необязательный
Количество элементов в выборке. По умолчанию 10. Максимальное значение 50
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"FIND":"Проект","OFFSET":0,"LIMIT":10}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/im.search.chat.list
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"FIND":"Проект","OFFSET":0,"LIMIT":10,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/im.search.chat.list
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame, ISODate } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of each ChatItem returned in result[]
type ChatItem = {
id: number
parent_chat_id: number
parent_message_id: number
name: string
description: string | null
owner: number
extranet: boolean
avatar: string | null
color: string
type: string
counter: number
user_counter: number
message_count: number
unread_id: number
restrictions: {
avatar: boolean
rename: boolean
extend: boolean
call: boolean
mute: boolean
leave: boolean
leave_owner: boolean
send: boolean
user_list: boolean
path: string
path_title: string
}
last_message_id: number
last_id: number
marked_id: number
disk_folder_id: number
entity_type: string
entity_id: string
entity_data_1: string
entity_data_2: string
entity_data_3: string
mute_list: unknown[]
date_create: ISODate | null
message_type: string
public: string | { code: string; link: string }
role: string
entity_link: {
type: string
url: string
id: string | number
}
text_field_enabled: boolean
background_id: number | null
permissions: {
manage_users_add: string
manage_users_delete: string
manage_ui: string
manage_settings: string
manage_messages: string
can_post: string
}
is_new: boolean
}
try {
// im.search.chat.list returns a single page (max 50 records). For the whole result set
// use a list helper: $b24.actions.v2.callList.make() returns every record as one
// array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator).
// NOTE: the list helpers do not accept `order` (it is excluded from their params, so
// passing it is a TS error) — keep this call.make + `start` variant when sort matters.
const response = await $b24.actions.v2.call.make<ChatItem[]>({
method: 'im.search.chat.list',
params: {
FIND: 'Project',
OFFSET: 0,
LIMIT: 10,
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Found chats:', result.length, result[0]?.name)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function searchChatList() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
// im.search.chat.list returns a single page (max 50 records). For the whole result set
// use a list helper: $b24.actions.v2.callList.make() returns every record as one
// array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator).
// NOTE: the list helpers do not accept `order` (it is excluded from their params, so
// passing it is a TS error) — keep this call.make + `start` variant when sort matters.
const response = await $b24.actions.v2.call.make({
method: 'im.search.chat.list',
params: {
FIND: 'Project',
OFFSET: 0,
LIMIT: 10,
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Found chats:', result.length, result[0]?.name)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', searchChatList)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.im.search.chat.list(
find="точно",
find_lines="отдел",
offset=0,
limit=10,
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service->core->call(
'im.search.chat.list',
[
'FIND' => 'Проект',
'OFFSET' => 0,
'LIMIT' => 10,
]
);
$result = $response->getResponseData()->getResult();
if ($result->error()) {
echo 'Error: ' . $result->error();
} else {
var_dump($result->data());
}
} catch (Throwable $exception) {
echo $exception->getMessage();
}
BX24.callMethod(
'im.search.chat.list',
{
FIND: 'Проект',
OFFSET: 0,
LIMIT: 10,
},
function(result) {
if (result.error()) {
console.error(result.error().ex);
} else {
console.log(result.data(), result.total(), result.next());
}
}
);
require_once('crest.php');
$result = CRest::call(
'im.search.chat.list',
[
'FIND' => 'Проект',
'OFFSET' => 0,
'LIMIT' => 10,
]
);
if (!empty($result['error'])) {
echo 'Error: ' . $result['error_description'];
} else {
var_dump($result['result']);
}
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "im.search.chat.list", b24.Params{
"FIND": "Проект",
"OFFSET": 0,
"LIMIT": 10,
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("im.search.chat.list: %w", err)
}
// Ответ приходит как json.RawMessage — разберите его
// в структуру под форму ответа, показанную ниже на этой странице.
fmt.Printf("%s\n", res.Result)
Ответ
HTTP-статус: 200
{
"result": [
{
"id": 1137,
"parent_chat_id": 0,
"parent_message_id": 0,
"name": "Проект: \"разработка шаблона\"",
"description": null,
"owner": 27,
"extranet": false,
"avatar": "",
"color": "#3e99ce",
"type": "sonetGroup",
"counter": 0,
"user_counter": 2,
"message_count": 4,
"unread_id": 0,
"restrictions": {
"avatar": false,
"rename": false,
"extend": false,
"call": true,
"mute": true,
"leave": false,
"leave_owner": false,
"send": true,
"user_list": true,
"path": "/workgroups/group/#ID#/",
"path_title": "Перейти в группу"
},
"last_message_id": 80461,
"last_id": 80461,
"marked_id": 0,
"disk_folder_id": 0,
"entity_type": "SONET_GROUP",
"entity_id": "121",
"entity_data_1": "",
"entity_data_2": "",
"entity_data_3": "",
"mute_list": [],
"date_create": "2024-07-26T15:28:02+03:00",
"message_type": "C",
"public": "",
"role": "owner",
"entity_link": {
"type": "SONET_GROUP",
"url": "/workgroups/group/121/",
"id": "121"
},
"text_field_enabled": true,
"background_id": null,
"permissions": {
"manage_users_add": "member",
"manage_users_delete": "manager",
"manage_ui": "member",
"manage_settings": "owner",
"manage_messages": "member",
"can_post": "member"
},
"is_new": false
}
],
"total": 2,
"time": {
"start": 1772645157,
"finish": 1772645157.558317,
"duration": 0.5583169460296631,
"processing": 0,
"date_start": "2026-03-04T20:25:57+03:00",
"date_finish": "2026-03-04T20:25:57+03:00",
"operating_reset_at": 1772645757,
"operating": 0
}
}
Возвращаемые данные
result
array
Список найденных чатов.
Структура объекта чата подробно описана ниже
total
integer
Общее количество найденных чатов
next
integer
Смещение следующей страницы. Поле возвращается, если есть следующая страница
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "FIND_SHORT",
"error_description": "Too short a search phrase."
}
| Код | Описание | Значение |
|---|---|---|
FIND_SHORT |
Too short a search phrase | Не передан ни один поисковый параметр или фраза меньше двух символов |

