Универсальные списки
Программный доступ к модулю «Списки» Битрикс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 — часть из них динамическая.
Разделы документации
- Списки — создание, чтение, изменение и удаление самих списков, а также тип инфоблока.
- Поля списка — набор полей списка и справочник допустимых типов поля.
- Разделы — группировка элементов по разделам с поддержкой вложенности.
- Элементы — строки списка и ссылки на файлы из свойств элемента.
Быстрый старт
# Все списки типа 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"
Полный пример
Сценарий из пяти шагов: создать список, добавить поле, добавить элемент со значением этого поля, прочитать результат, удалить список.
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 — см. Лимиты и оптимизация |