Универсальные списки

Программный доступ к модулю «Списки» Битрикс24: сами списки, их поля, разделы и элементы.

Скоуп: lists | Базовый URL: https://vibecode.bitrix24.tech/v1 | Авторизация: X-Api-Key

Модуль подключается на портале отдельно. Универсальные списки — отдельный модуль Битрикс24. Если он не активирован на портале, вызовы возвращают 409 LISTS_MODULE_NOT_ENABLED. Это не ошибка интеграции — попросите администратора портала включить модуль «Списки» и повторите запрос.

Модель данных

Список — это инфоблок. Каждый вызов адресует данные тремя уровнями ключей.

Тип инфоблока — параметр iblockTypeId. Возможные значения:

  • lists — обычные списки. Значение по умолчанию.
  • lists_socnet — списки рабочих групп. Для них нужен socnetGroupId.
  • bitrix_processes — служебные бизнес-процессы.

Тип передаётся в query для GET и DELETE, в теле для POST и PATCH.

Список — сегмент пути :iblockId. Одни цифры — это числовой IBLOCK_ID, строка — символьный код IBLOCK_CODE. Оба варианта равнозначны.

Поле, раздел или элемент — соответствующий вложенный сегмент пути.

Ответы приходят в форме Битрикс24. Ключи — в верхнем регистре через подчёркивание: ID, NAME, IBLOCK_TYPE_ID. Числовые идентификаторы возвращаются строками, например "ID": "121". Пользовательские свойства элемента адресуются ключами вида PROPERTY_<id>. Эти ключи не приводятся к camelCase — часть из них динамическая.

Разделы документации

  • Списки — создание, чтение, изменение и удаление самих списков, а также тип инфоблока.
  • Поля списка — набор полей списка и справочник допустимых типов поля.
  • Разделы — группировка элементов по разделам с поддержкой вложенности.
  • Элементы — строки списка и ссылки на файлы из свойств элемента.

Быстрый старт

Terminal
# Все списки типа lists
curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://vibecode.bitrix24.tech/v1/lists?iblockTypeId=lists"

# Элементы списка 23
curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://vibecode.bitrix24.tech/v1/lists/23/elements"

Полный пример

Сценарий из пяти шагов: создать список, добавить поле, добавить элемент со значением этого поля, прочитать результат, удалить список.

Terminal
KEY="YOUR_API_KEY"
BASE="https://vibecode.bitrix24.tech/v1"

# 1. Создать список → { "success": true, "data": { "id": 135 } }
curl -s -X POST -H "X-Api-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"iblockCode":"demo_orders","fields":{"NAME":"Демо: заявки","SORT":100}}' \
  "$BASE/lists"

# 2. Добавить поле → { "success": true, "data": { "id": "PROPERTY_1179" } }
curl -s -X POST -H "X-Api-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"fields":{"NAME":"Статус","TYPE":"S","CODE":"STATUS"}}' \
  "$BASE/lists/135/fields"

# 3. Добавить элемент со значением свойства → { "success": true, "data": { "id": 7043 } }
curl -s -X POST -H "X-Api-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"elementCode":"row-1","fields":{"NAME":"Заявка №1","PROPERTY_1179":"новая"}}' \
  "$BASE/lists/135/elements"

# 4. Прочитать элементы → data[0] = { "ID": "7043", "NAME": "Заявка №1", "PROPERTY_1179": { "3811": "новая" } }
curl -s -H "X-Api-Key: $KEY" \
  "$BASE/lists/135/elements?select=ID,NAME,PROPERTY_1179"

# 5. Удалить список → HTTP 204 No Content (поля, разделы и элементы удаляются вместе с ним)
curl -s -X DELETE -H "X-Api-Key: $KEY" "$BASE/lists/135"

Поле создаётся с обязательным CODE. Значение свойства при создании передаётся строкой ("PROPERTY_1179": "новая"), а при чтении возвращается в форме { id_значения: значение }.

Справочник эндпоинтов

Метод Путь Bitrix24 метод Описание
GET `/v1/lists` lists.get Список списков заданного типа
POST `/v1/lists` lists.add Создать список
GET `/v1/lists/:iblockId` lists.get Один список
PATCH `/v1/lists/:iblockId` lists.update Изменить список
DELETE `/v1/lists/:iblockId` lists.delete Удалить список
GET `/v1/lists/:iblockId/type` lists.get.iblock.type.id Тип инфоблока по id или коду
GET `/v1/lists/:iblockId/fields` lists.field.get Все поля списка
GET `/v1/lists/:iblockId/fields/:fieldId` lists.field.get Одно поле
POST `/v1/lists/:iblockId/fields` lists.field.add Создать поле
PATCH `/v1/lists/:iblockId/fields/:fieldId` lists.field.update Изменить поле
DELETE `/v1/lists/:iblockId/fields/:fieldId` lists.field.delete Удалить поле
GET `/v1/lists/:iblockId/field-types` lists.field.type.get Справочник типов поля
GET `/v1/lists/:iblockId/sections` lists.section.get Разделы списка
GET `/v1/lists/:iblockId/sections/:sectionId` lists.section.get Один раздел
POST `/v1/lists/:iblockId/sections` lists.section.add Создать раздел
PATCH `/v1/lists/:iblockId/sections/:sectionId` lists.section.update Изменить раздел
DELETE `/v1/lists/:iblockId/sections/:sectionId` lists.section.delete Удалить раздел
GET `/v1/lists/:iblockId/elements` lists.element.get Элементы списка
GET `/v1/lists/:iblockId/elements/:elementId` lists.element.get Один элемент
POST `/v1/lists/:iblockId/elements` lists.element.add Создать элемент
PATCH `/v1/lists/:iblockId/elements/:elementId` lists.element.update Изменить элемент
DELETE `/v1/lists/:iblockId/elements/:elementId` lists.element.delete Удалить элемент
GET `/v1/lists/:iblockId/elements/:elementId/files/:fieldId` lists.element.get.file.url Ссылки на файлы свойства

Коды ошибок

HTTP Код Когда
409 LISTS_MODULE_NOT_ENABLED Модуль «Списки» не подключён на портале
400 INVALID_IBLOCK_TYPE iblockTypeId не из набора lists, lists_socnet, bitrix_processes
400 MISSING_REQUIRED_FIELDS Не передан обязательный iblockCode, sectionCode, elementCode или fields
400 INVALID_PARAMS Нечисловой :sectionId или :elementId, либо fieldId с префиксом PROPERTY_ в маршруте файлов
400 INVALID_FILTER Параметр filter не является корректным JSON
400 INVALID_SORT_FIELD Параметр sort ссылается на неподдерживаемое поле или направление
422 BITRIX_ERROR Битрикс24 отклонил запрос. Например, поле создаётся без CODE или обновляется без TYPE
403 BITRIX_ACCESS_DENIED Нет прав на список, либо список с таким :iblockId не существует
404 LIST_NOT_FOUND / SECTION_NOT_FOUND / ELEMENT_NOT_FOUND / FIELD_NOT_FOUND Объект не найден
403 WRITE_BLOCKED_READONLY_KEY Ключ в режиме «только чтение»
403 SCOPE_DENIED У ключа нет скоупа lists
401 TOKEN_MISSING Не передан X-Api-Key или у ключа нет токенов

Полный список общих ошибок API — Ошибки.

Лимиты

Лимит Значение
Пагинация списков и элементов Параметр start смещает выборку у GET /v1/lists и GET /v1/lists/:iblockId/elements. Ответ отдаётся страницами, следующую страницу берите, увеличивая start. Авто-пагинации нет
Rate limit Общий для Vibe API — см. Лимиты и оптимизация

Смотрите также