[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-lists":3,"docs-tabs-lists":6},{"content":4,"lastmod":5},"# Универсальные списки\n\nПрограммный доступ к модулю «Списки» Битрикс24: сами списки, их поля, разделы и элементы.\n\n**Скоуп:** `lists` | **Базовый URL:** `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1` | **Авторизация:** `X-Api-Key`\n\n> **Модуль подключается на портале отдельно.** Универсальные списки — отдельный модуль Битрикс24. Если он не активирован на портале, вызовы возвращают `409 LISTS_MODULE_NOT_ENABLED`. Это не ошибка интеграции — попросите администратора портала включить модуль «Списки» и повторите запрос.\n\n## Модель данных\n\nСписок — это инфоблок. Каждый вызов адресует данные тремя уровнями ключей.\n\n**Тип инфоблока** — параметр `iblockTypeId`. Возможные значения:\n\n- `lists` — обычные списки. Значение по умолчанию.\n- `lists_socnet` — списки рабочих групп. Для них нужен `socnetGroupId`.\n- `bitrix_processes` — служебные бизнес-процессы.\n\nТип передаётся в query для GET и DELETE, в теле для POST и PATCH.\n\n**Список** — сегмент пути `:iblockId`. Одни цифры — это числовой `IBLOCK_ID`, строка — символьный код `IBLOCK_CODE`. Оба варианта равнозначны.\n\n**Поле, раздел или элемент** — соответствующий вложенный сегмент пути.\n\nОтветы приходят в форме Битрикс24. Ключи — в верхнем регистре через подчёркивание: `ID`, `NAME`, `IBLOCK_TYPE_ID`. Числовые идентификаторы возвращаются строками, например `\"ID\": \"121\"`. Пользовательские свойства элемента адресуются ключами вида `PROPERTY_\u003Cid>`. Эти ключи не приводятся к camelCase — часть из них динамическая.\n\n## Разделы документации\n\n- [Списки](\u002Fdocs\u002Flists\u002Flists) — создание, чтение, изменение и удаление самих списков, а также тип инфоблока.\n- [Поля списка](\u002Fdocs\u002Flists\u002Ffields) — набор полей списка и справочник допустимых типов поля.\n- [Разделы](\u002Fdocs\u002Flists\u002Fsections) — группировка элементов по разделам с поддержкой вложенности.\n- [Элементы](\u002Fdocs\u002Flists\u002Felements) — строки списка и ссылки на файлы из свойств элемента.\n\n## Быстрый старт\n\n```bash\n# Все списки типа lists\ncurl -H \"X-Api-Key: YOUR_API_KEY\" \\\n  \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Flists?iblockTypeId=lists\"\n\n# Элементы списка 23\ncurl -H \"X-Api-Key: YOUR_API_KEY\" \\\n  \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Flists\u002F23\u002Felements\"\n```\n\n## Полный пример\n\nСценарий из пяти шагов: создать список, добавить поле, добавить элемент со значением этого поля, прочитать результат, удалить список.\n\n```bash\nKEY=\"YOUR_API_KEY\"\nBASE=\"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\"\n\n# 1. Создать список → { \"success\": true, \"data\": { \"id\": 135 } }\ncurl -s -X POST -H \"X-Api-Key: $KEY\" -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"iblockCode\":\"demo_orders\",\"fields\":{\"NAME\":\"Демо: заявки\",\"SORT\":100}}' \\\n  \"$BASE\u002Flists\"\n\n# 2. Добавить поле → { \"success\": true, \"data\": { \"id\": \"PROPERTY_1179\" } }\ncurl -s -X POST -H \"X-Api-Key: $KEY\" -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"fields\":{\"NAME\":\"Статус\",\"TYPE\":\"S\",\"CODE\":\"STATUS\"}}' \\\n  \"$BASE\u002Flists\u002F135\u002Ffields\"\n\n# 3. Добавить элемент со значением свойства → { \"success\": true, \"data\": { \"id\": 7043 } }\ncurl -s -X POST -H \"X-Api-Key: $KEY\" -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"elementCode\":\"row-1\",\"fields\":{\"NAME\":\"Заявка №1\",\"PROPERTY_1179\":\"новая\"}}' \\\n  \"$BASE\u002Flists\u002F135\u002Felements\"\n\n# 4. Прочитать элементы → data[0] = { \"ID\": \"7043\", \"NAME\": \"Заявка №1\", \"PROPERTY_1179\": { \"3811\": \"новая\" } }\ncurl -s -H \"X-Api-Key: $KEY\" \\\n  \"$BASE\u002Flists\u002F135\u002Felements?select=ID,NAME,PROPERTY_1179\"\n\n# 5. Удалить список → HTTP 204 No Content (поля, разделы и элементы удаляются вместе с ним)\ncurl -s -X DELETE -H \"X-Api-Key: $KEY\" \"$BASE\u002Flists\u002F135\"\n```\n\nПоле создаётся с обязательным `CODE`. Значение свойства при создании передаётся строкой (`\"PROPERTY_1179\": \"новая\"`), а при чтении возвращается в форме `{ id_значения: значение }`.\n\n## Справочник эндпоинтов\n\n| Метод | Путь | Bitrix24 метод | Описание |\n|-------|------|----------------|----------|\n| GET | [`\u002Fv1\u002Flists`](\u002Fdocs\u002Flists\u002Flists\u002Flist) | lists.get | Список списков заданного типа |\n| POST | [`\u002Fv1\u002Flists`](\u002Fdocs\u002Flists\u002Flists\u002Fcreate) | lists.add | Создать список |\n| GET | [`\u002Fv1\u002Flists\u002F:iblockId`](\u002Fdocs\u002Flists\u002Flists\u002Fget) | lists.get | Один список |\n| PATCH | [`\u002Fv1\u002Flists\u002F:iblockId`](\u002Fdocs\u002Flists\u002Flists\u002Fupdate) | lists.update | Изменить список |\n| DELETE | [`\u002Fv1\u002Flists\u002F:iblockId`](\u002Fdocs\u002Flists\u002Flists\u002Fdelete) | lists.delete | Удалить список |\n| GET | [`\u002Fv1\u002Flists\u002F:iblockId\u002Ftype`](\u002Fdocs\u002Flists\u002Flists\u002Ftype) | lists.get.iblock.type.id | Тип инфоблока по id или коду |\n| GET | [`\u002Fv1\u002Flists\u002F:iblockId\u002Ffields`](\u002Fdocs\u002Flists\u002Ffields\u002Flist) | lists.field.get | Все поля списка |\n| GET | [`\u002Fv1\u002Flists\u002F:iblockId\u002Ffields\u002F:fieldId`](\u002Fdocs\u002Flists\u002Ffields\u002Fget) | lists.field.get | Одно поле |\n| POST | [`\u002Fv1\u002Flists\u002F:iblockId\u002Ffields`](\u002Fdocs\u002Flists\u002Ffields\u002Fcreate) | lists.field.add | Создать поле |\n| PATCH | [`\u002Fv1\u002Flists\u002F:iblockId\u002Ffields\u002F:fieldId`](\u002Fdocs\u002Flists\u002Ffields\u002Fupdate) | lists.field.update | Изменить поле |\n| DELETE | [`\u002Fv1\u002Flists\u002F:iblockId\u002Ffields\u002F:fieldId`](\u002Fdocs\u002Flists\u002Ffields\u002Fdelete) | lists.field.delete | Удалить поле |\n| GET | [`\u002Fv1\u002Flists\u002F:iblockId\u002Ffield-types`](\u002Fdocs\u002Flists\u002Ffields\u002Ffield-types) | lists.field.type.get | Справочник типов поля |\n| GET | [`\u002Fv1\u002Flists\u002F:iblockId\u002Fsections`](\u002Fdocs\u002Flists\u002Fsections\u002Flist) | lists.section.get | Разделы списка |\n| GET | [`\u002Fv1\u002Flists\u002F:iblockId\u002Fsections\u002F:sectionId`](\u002Fdocs\u002Flists\u002Fsections\u002Fget) | lists.section.get | Один раздел |\n| POST | [`\u002Fv1\u002Flists\u002F:iblockId\u002Fsections`](\u002Fdocs\u002Flists\u002Fsections\u002Fcreate) | lists.section.add | Создать раздел |\n| PATCH | [`\u002Fv1\u002Flists\u002F:iblockId\u002Fsections\u002F:sectionId`](\u002Fdocs\u002Flists\u002Fsections\u002Fupdate) | lists.section.update | Изменить раздел |\n| DELETE | [`\u002Fv1\u002Flists\u002F:iblockId\u002Fsections\u002F:sectionId`](\u002Fdocs\u002Flists\u002Fsections\u002Fdelete) | lists.section.delete | Удалить раздел |\n| GET | [`\u002Fv1\u002Flists\u002F:iblockId\u002Felements`](\u002Fdocs\u002Flists\u002Felements\u002Flist) | lists.element.get | Элементы списка |\n| GET | [`\u002Fv1\u002Flists\u002F:iblockId\u002Felements\u002F:elementId`](\u002Fdocs\u002Flists\u002Felements\u002Fget) | lists.element.get | Один элемент |\n| POST | [`\u002Fv1\u002Flists\u002F:iblockId\u002Felements`](\u002Fdocs\u002Flists\u002Felements\u002Fcreate) | lists.element.add | Создать элемент |\n| PATCH | [`\u002Fv1\u002Flists\u002F:iblockId\u002Felements\u002F:elementId`](\u002Fdocs\u002Flists\u002Felements\u002Fupdate) | lists.element.update | Изменить элемент |\n| DELETE | [`\u002Fv1\u002Flists\u002F:iblockId\u002Felements\u002F:elementId`](\u002Fdocs\u002Flists\u002Felements\u002Fdelete) | lists.element.delete | Удалить элемент |\n| GET | [`\u002Fv1\u002Flists\u002F:iblockId\u002Felements\u002F:elementId\u002Ffiles\u002F:fieldId`](\u002Fdocs\u002Flists\u002Felements\u002Ffiles) | lists.element.get.file.url | Ссылки на файлы свойства |\n\n## Коды ошибок\n\n| HTTP | Код | Когда |\n|------|-----|-------|\n| 409 | `LISTS_MODULE_NOT_ENABLED` | Модуль «Списки» не подключён на портале |\n| 400 | `INVALID_IBLOCK_TYPE` | `iblockTypeId` не из набора `lists`, `lists_socnet`, `bitrix_processes` |\n| 400 | `MISSING_REQUIRED_FIELDS` | Не передан обязательный `iblockCode`, `sectionCode`, `elementCode` или `fields` |\n| 400 | `INVALID_PARAMS` | Нечисловой `:sectionId` или `:elementId`, либо `fieldId` с префиксом `PROPERTY_` в маршруте файлов |\n| 400 | `INVALID_FILTER` | Параметр `filter` не является корректным JSON |\n| 400 | `INVALID_SORT_FIELD` | Параметр `sort` ссылается на неподдерживаемое поле или направление |\n| 422 | `BITRIX_ERROR` | Битрикс24 отклонил запрос. Например, поле создаётся без `CODE` или обновляется без `TYPE` |\n| 403 | `BITRIX_ACCESS_DENIED` | Нет прав на список, либо список с таким `:iblockId` не существует |\n| 404 | `LIST_NOT_FOUND` \u002F `SECTION_NOT_FOUND` \u002F `ELEMENT_NOT_FOUND` \u002F `FIELD_NOT_FOUND` | Объект не найден |\n| 403 | `WRITE_BLOCKED_READONLY_KEY` | Ключ в режиме «только чтение» |\n| 403 | `SCOPE_DENIED` | У ключа нет скоупа `lists` |\n| 401 | `TOKEN_MISSING` | Не передан `X-Api-Key` или у ключа нет токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Лимиты\n\n| Лимит | Значение |\n|-------|----------|\n| Пагинация списков и элементов | Параметр `start` смещает выборку у `GET \u002Fv1\u002Flists` и `GET \u002Fv1\u002Flists\u002F:iblockId\u002Felements`. Ответ отдаётся страницами, следующую страницу берите, увеличивая `start`. Авто-пагинации нет |\n| Rate limit | Общий для Vibe API — см. [Лимиты и оптимизация](\u002Fdocs\u002Foptimization) |\n\n## Смотрите также\n\n- [Списки](\u002Fdocs\u002Flists\u002Flists)\n- [Поля списка](\u002Fdocs\u002Flists\u002Ffields)\n- [Разделы](\u002Fdocs\u002Flists\u002Fsections)\n- [Элементы](\u002Fdocs\u002Flists\u002Felements)\n","2026-07-07",{}]