socialnetwork.api.workgroup.list
Получить список рабочих групп
Описание
Метод socialnetwork.api.workgroup.list возвращает список рабочих групп, проектов, скрамов и коллаб с учетом прав текущего пользователя.
Параметры
filter
object
необязательный
Объект для фильтрации в формате {"field_1": "value_1", ... "field_N": "value_N"}.
Смотрите ниже список доступных полей для фильтрации.
Ключу может быть задан дополнительный префикс, уточняющий поведение фильтра. Возможные значения префикса:
- >= — больше либо равно
- > — больше
- <= — меньше либо равно
- < — меньше
- % — LIKE, поиск по подстроке. Символ % в значении фильтра передавать не нужно
- =% — LIKE, поиск по подстроке. Символ % нужно передавать в значении
- %= — LIKE (аналогично =%)
- !% — NOT LIKE, поиск по подстроке. Символ % в значении фильтра передавать не нужно
- !=% — NOT LIKE, поиск по подстроке. Символ % нужно передавать в значении
- !%= — NOT LIKE (аналогично !=%)
- = — равно, точное совпадение (используется по умолчанию)
- != — не равно
- ! — не равно
Если в params не передан IS_ADMIN = Y, метод автоматически добавляет проверку прав текущего пользователя CHECK_PERMISSIONS.
Метод также всегда добавляет фильтр по сайту:
- для экстранет-пользователя берется экстранет-сайт
- для остальных — сайт из
params[siteId]или текущий сайт портала
select
array
необязательный
Массив, содержащий список полей, которые необходимо выбрать.
Смотрите ниже список доступных полей для выборки.
Если параметр не передан или пуст, выбирается только ID
order
object
необязательный
Объект сортировки в формате {"field_1": "order_1", ..., "field_N": "order_N"}.
Возможные значения для field соответствуют полям из списка доступных полей для фильтрации.
Возможные значения для order:
ASC— сортировка по возрастаниюDESC— сортировка по убыванию
params
object
необязательный
Дополнительные параметры запроса
start
integer
необязательный
Параметр постраничной навигации.
Размер страницы результатов — 50 записей.
Чтобы получить вторую страницу, передайте 50; третью — 100 и так далее.
Формула: start = (N - 1) * 50, где N — номер страницы.
Если передать -1, в ответе не будет поля total
Доступные поля для фильтрации
ID
integer
необязательный
Идентификатор группы
NAME
string
необязательный
Название группы
OWNER_ID
integer
необязательный
Идентификатор владельца
ACTIVE
string
необязательный
Признак активности группы: Y или N
VISIBLE
string
необязательный
Видимость группы в общем списке: Y или N
OPENED
string
необязательный
Открыта ли группа для свободного вступления: Y или N
CLOSED
string
необязательный
Находится ли группа в архиве: Y или N
PROJECT
string
необязательный
Тип объекта: Y — проект, N — группа
SUBJECT_ID
integer
необязательный
Идентификатор тематики группы
SITE_ID
string
необязательный
Идентификатор сайта группы
DATE_CREATE
datetime
необязательный
Дата создания группы
DATE_UPDATE
datetime
необязательный
Дата изменения группы
DATE_ACTIVITY
datetime
необязательный
Дата последней активности
ID
integer
необязательный
Идентификатор группы
ACTIVE
string
необязательный
Признак активности группы
SUBJECT_ID
integer
необязательный
Идентификатор тематики группы
NAME
string
необязательный
Название группы
DESCRIPTION
string
необязательный
Описание группы
KEYWORDS
string
необязательный
Ключевые слова группы
CLOSED
string
необязательный
Признак архивной группы
VISIBLE
string
необязательный
Признак видимости группы
OPENED
string
необязательный
Признак открытой группы
PROJECT
string
необязательный
Признак проекта
LANDING
string
необязательный
Признак группы для публикации
DATE_CREATE
datetime
необязательный
Дата создания
DATE_UPDATE
datetime
необязательный
Дата изменения
DATE_ACTIVITY
datetime
необязательный
Дата последней активности
IMAGE_ID
integer
необязательный
Идентификатор пользовательского аватара
AVATAR_TYPE
string
необязательный
Тип системного аватара
OWNER_ID
integer
необязательный
Идентификатор владельца
NUMBER_OF_MEMBERS
integer
необязательный
Количество участников
NUMBER_OF_MODERATORS
integer
необязательный
Количество модераторов
INITIATE_PERMS
string
необязательный
Права на приглашение участников
PROJECT_DATE_START
datetime
необязательный
Дата начала проекта
PROJECT_DATE_FINISH
datetime
необязательный
Дата окончания проекта
SCRUM_OWNER_ID
integer
необязательный
Идентификатор владельца скрама
SCRUM_MASTER_ID
integer
необязательный
Идентификатор скрам-мастера
SCRUM_SPRINT_DURATION
integer
необязательный
Длительность спринта в секундах
SCRUM_TASK_RESPONSIBLE
string
необязательный
Исполнитель по умолчанию в скраме
TYPE
string
необязательный
Тип группы: group, project, scrum, collab
AVATAR
string
необязательный
URL аватара
Параметр params
IS_ADMIN
string
необязательный
Отключение проверки прав.
Возможные значения:
- Y — отключить проверку прав, если текущий пользователь администратор
Если передан Y не администратором, значение игнорируется
siteId
string
необязательный
Идентификатор сайта, который будет подставлен в автоматический фильтр SITE_ID для обычных пользователей.
Для экстранет-пользователей это значение игнорируется: метод всегда использует экстранет-сайт
mode
string
необязательный
Режим ответа.
Поддерживаемое значение:
- mobile — добавляет в каждый элемент списка поле additionalData
Поле additionalData имеет структуру:
- role — роль текущего пользователя в группе
- initiatedByType — кто инициировал связь пользователя с группой:
- U — сам пользователь (например, отправил запрос на вступление)
- G — группа (например, пользователю отправили приглашение)
- features — список доступных инструментов группы (возвращается, если переданы features/mandatoryFeatures)
features
array
необязательный
Список кодов инструментов группы, которые нужно учитывать при формировании additionalData в режиме mobile
mandatoryFeatures
array
необязательный
Список кодов инструментов, которые всегда нужно включать в additionalData в режиме mobile
shouldSelectDialogId
string
необязательный
Добавлять ли в элемент списка поле с идентификатором чата dialogId.
Возможные значения:
- Y — добавить dialogId
- N — не добавлять dialogId
По умолчанию — N
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"filter":{"ACTIVE":"Y","CLOSED":"N","%NAME":"группа"},"select":["ID","NAME","TYPE","AVATAR"],"order":{"ID":"DESC"},"params":{"mode":"mobile","shouldSelectDialogId":"Y"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/socialnetwork.api.workgroup.list
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"filter":{"ACTIVE":"Y","CLOSED":"N","%NAME":"группа"},"select":["ID","NAME","TYPE","AVATAR"],"order":{"ID":"DESC"},"params":{"mode":"mobile","shouldSelectDialogId":"Y"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/socialnetwork.api.workgroup.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 } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type WorkgroupListResult = {
workgroups: Workgroup[]
}
type Workgroup = {
id: string
name: string
type: string
avatar: string
additionalData: {
role: string
initiatedByType: string
}
dialogId: string
}
try {
// socialnetwork.api.workgroup.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<WorkgroupListResult>({
method: 'socialnetwork.api.workgroup.list',
params: {
filter: { ACTIVE: 'Y', CLOSED: 'N', '%NAME': 'group' },
select: ['ID', 'NAME', 'TYPE', 'AVATAR'],
order: { ID: 'DESC' },
params: { mode: 'mobile', shouldSelectDialogId: 'Y' },
start: 0,
},
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('Workgroups:', result.workgroups.length, result.workgroups)
}
} 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 fetchWorkgroupList() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
// socialnetwork.api.workgroup.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: 'socialnetwork.api.workgroup.list',
params: {
filter: { ACTIVE: 'Y', CLOSED: 'N', '%NAME': 'group' },
select: ['ID', 'NAME', 'TYPE', 'AVATAR'],
order: { ID: 'DESC' },
params: { mode: 'mobile', shouldSelectDialogId: 'Y' },
start: 0,
},
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('Workgroups:', result.workgroups.length, result.workgroups)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', fetchWorkgroupList)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.socialnetwork.api.workgroup.list(
filter={
"ACTIVE": "Y",
"CLOSED": "N",
"%NAME": "группа",
},
select=[
"ID",
"NAME",
"TYPE",
"AVATAR",
],
order={
"ID": "DESC",
},
params={
"mode": "mobile",
"shouldSelectDialogId": "Y",
},
).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}")
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.socialnetwork.api.workgroup.list(
filter={
"ACTIVE": "Y",
"CLOSED": "N",
"%NAME": "группа",
},
select=[
"ID",
"NAME",
"TYPE",
"AVATAR",
],
order={
"ID": "DESC",
},
params={
"mode": "mobile",
"shouldSelectDialogId": "Y",
},
).as_list().response
result = bitrix_response.result
for item in result:
print(item)
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}")
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.socialnetwork.api.workgroup.list(
filter={
"ACTIVE": "Y",
"CLOSED": "N",
"%NAME": "группа",
},
select=[
"ID",
"NAME",
"TYPE",
"AVATAR",
],
order={
"ID": "DESC",
},
params={
"mode": "mobile",
"shouldSelectDialogId": "Y",
},
).as_list_fast(descending=True).response
result = bitrix_response.result
for item in result:
print(item)
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(
'socialnetwork.api.workgroup.list',
[
'filter' => ['ACTIVE' => 'Y', 'CLOSED' => 'N', '%NAME' => 'группа'],
'select' => ['ID', 'NAME', 'TYPE', 'AVATAR'],
'order' => ['ID' => 'DESC'],
'params' => [
'mode' => 'mobile',
'shouldSelectDialogId' => 'Y',
],
]
);
print_r($response->getResponseData()->getResult());
} catch (\Throwable $exception) {
echo $exception->getMessage();
}
BX24.callMethod(
'socialnetwork.api.workgroup.list',
{
filter: { ACTIVE: 'Y', CLOSED: 'N', '%NAME': 'группа' },
select: ['ID', 'NAME', 'TYPE', 'AVATAR'],
order: { ID: 'DESC' },
params: { mode: 'mobile', shouldSelectDialogId: 'Y' }
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'socialnetwork.api.workgroup.list',
[
'filter' => ['ACTIVE' => 'Y', 'CLOSED' => 'N', '%NAME' => 'группа'],
'select' => ['ID', 'NAME', 'TYPE', 'AVATAR'],
'order' => ['ID' => 'DESC'],
'params' => [
'mode' => 'mobile',
'shouldSelectDialogId' => 'Y',
],
]
);
print_r($result);
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "socialnetwork.api.workgroup.list", b24.Params{
"filter": b24.Params{
"ACTIVE": "Y",
"CLOSED": "N",
"%NAME": "группа",
},
"select": []string{"ID", "NAME", "TYPE", "AVATAR"},
"order": b24.Params{
"ID": "DESC",
},
"params": b24.Params{
"mode": "mobile",
"shouldSelectDialogId": "Y",
},
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("socialnetwork.api.workgroup.list: %w", err)
}
// Метод заворачивает ответ в объект с ключом "workgroups".
raw, ok := b24.Unwrap(res.Result, "workgroups")
if !ok {
return fmt.Errorf("в ответе нет ключа workgroups")
}
var items []struct {
ID b24.ID `json:"id"`
Name string `json:"name"`
Type string `json:"type"`
ImageID b24.ID `json:"imageId"`
Avatar string `json:"avatar"`
DialogID string `json:"dialogId"`
}
if err := json.Unmarshal(raw, &items); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
for _, it := range items {
fmt.Println(it.ID)
}
Ответ
HTTP-статус: 200
{
"result": {
"workgroups": [
{
"id": "5",
"name": "Открытая группа для всех",
"type": "group",
"imageId": "5",
"avatarType": null,
"avatar": "https://test.bitrix24.ru/b13743910/resize_cache/5/7acf4caaf5d8/socialnetwork/8d6/8d2c04ece929572/3.png",
"additionalData": {
"role": "",
"initiatedByType": ""
},
"dialogId": ""
},
{
"id": "1",
"name": "Закрытая видимая группа",
"type": "group",
"imageId": "1",
"avatarType": null,
"avatar": "",
"additionalData": {
"role": "",
"initiatedByType": ""
},
"dialogId": "chat177"
}
]
},
"total": 2,
"time": {
"start": 1774357689,
"finish": 1774357689.398272,
"duration": 0.3982720375061035,
"processing": 0,
"date_start": "2026-03-24T16:08:09+03:00",
"date_finish": "2026-03-24T16:08:09+03:00",
"operating_reset_at": 1774358289,
"operating": 0.12220001220703125
}
}
Возвращаемые данные
result
object
Корневой объект ответа
workgroups
object[]
Список рабочих групп.
Состав объекта зависит от переданных полей в select и параметров params.
Если группы по фильтру не найдены, workgroups вернется пустым массивом
next
integer
Смещение для следующей страницы. Поле возвращается, если есть еще записи
total
integer
Общее число записей. Поле не возвращается, если запрос выполнен со start = -1
time
time
Информация о времени выполнения запроса

