#Список узлов
GET /v1/humanresources/nodes
Возвращает список узлов организационной структуры портала одного типа — отделов или команд — с постраничной выдачей.
#Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
type (query) |
string | да | Тип узлов в выдаче: DEPARTMENT (отдел) или TEAM (команда). Без параметра возвращается 400 MISSING_REQUIRED_PARAMS |
limit (query) |
number | нет | Количество записей на странице |
offset (query) |
number | нет | Смещение от начала выборки для постраничной выдачи |
Если под выбранный тип попадает больше записей, чем limit, в meta.hasMore приходит true. Чтобы получить следующую страницу, повторите запрос с увеличенным offset (offset = offset + limit), пока hasMore не станет false.
#Примеры
#curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/humanresources/nodes?type=DEPARTMENT" \
-H "X-Api-Key: YOUR_API_KEY"
#curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/humanresources/nodes?type=DEPARTMENT" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
#JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/humanresources/nodes?type=DEPARTMENT', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data, meta } = await res.json()
console.log(`Найдено ${meta.total} отделов`)
#JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/humanresources/nodes?type=DEPARTMENT', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data, meta } = await res.json()
#Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data |
array | Массив узлов |
data[].id |
number | Идентификатор узла |
data[].name |
string | Название узла |
data[].type |
string | Тип узла: DEPARTMENT или TEAM |
data[].structureId |
number | Идентификатор структуры, к которой относится узел |
data[].parentId |
number | Идентификатор родительского узла. У корневого узла равен 0 |
data[].description |
string | null | Описание узла. null, если описание не задано |
data[].accessCode |
string | Код доступа узла (например, D185 для отдела, SN23 для команды) |
data[].userCount |
number | Число сотрудников в узле |
data[].colorName |
string | null | Название цвета узла. null, если цвет не задан |
data[].xmlId |
string | null | Внешний идентификатор узла. null, если не задан |
data[].createdAt |
string | null | Дата создания (ISO 8601). null для узлов, созданных без отметки времени |
data[].updatedAt |
string | null | Дата последнего изменения (ISO 8601). null, если изменений не было |
meta.total |
number | Общее количество узлов выбранного типа |
meta.hasMore |
boolean | Есть ли ещё записи за пределами limit |
#Пример ответа
{
"success": true,
"data": [
{
"id": 17,
"name": "Головной офис",
"type": "DEPARTMENT",
"structureId": 1,
"parentId": 0,
"description": null,
"accessCode": "D185",
"userCount": 0,
"colorName": null,
"xmlId": null,
"createdAt": null,
"updatedAt": null
},
{
"id": 23,
"name": "Отдел продаж",
"type": "DEPARTMENT",
"structureId": 1,
"parentId": 17,
"description": "Прямые продажи",
"accessCode": "SN23",
"userCount": 2,
"colorName": null,
"xmlId": null,
"createdAt": null,
"updatedAt": null
}
],
"meta": {
"total": 2,
"hasMore": false
}
}
#Пример ответа при ошибке
400 — не передан обязательный параметр type:
{
"success": false,
"error": {
"code": "MISSING_REQUIRED_PARAMS",
"message": "GET /v1/humanresources/nodes requires query parameters: type. Example: GET /v1/humanresources/nodes?type=..."
}
}
#Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | MISSING_REQUIRED_PARAMS |
Не передан обязательный параметр type |
| 422 | BITRIX_ERROR |
Передан фильтр по полю узла — перечисление поддерживается только по type |
| 403 | SCOPE_DENIED |
Ключу не хватает скоупа humanresources |
| 401 | TOKEN_MISSING |
У API-ключа не настроены токены Битрикс24 |
Полный список общих ошибок API — Ошибки.
#Известные особенности
Перечисление только по типу. Выборку нельзя сузить по произвольному полю узла. Запрос с filter[name] или filter[parentId] возвращает 422 BITRIX_ERROR с пояснением о нераспознанном выражении фильтра. Единственный способ ограничить выдачу — указать type и листать страницы через limit и offset. Для отбора по значениям полей с сортировкой используйте поиск узлов.