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

Программный доступ к модулю «Списки» Битрикс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 — Ошибки.

Лимиты

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

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