# Разделы каталога

Разделы товарного каталога: список, получение, создание, изменение и удаление. Разделы образуют дерево внутри каталога — у раздела может быть родительский раздел. Каждый раздел привязан к каталогу по полю `iblockId`.

Битрикс24 API: `catalog.section.*`
Скоуп: `catalog`

## Операции

- [Создать раздел](./catalog-sections/create.md) — `POST /v1/catalog-sections`
- [Список разделов](./catalog-sections/list.md) — `GET /v1/catalog-sections`
- [Получить раздел](./catalog-sections/get.md) — `GET /v1/catalog-sections/:id`
- [Обновить раздел](./catalog-sections/update.md) — `PATCH /v1/catalog-sections/:id`
- [Удалить раздел](./catalog-sections/delete.md) — `DELETE /v1/catalog-sections/:id`
- [Поиск разделов](./catalog-sections/search.md) — `POST /v1/catalog-sections/search`
- [Поля раздела](./catalog-sections/fields.md) — `GET /v1/catalog-sections/fields`

## Ключевые поля

| Поле | Описание |
|------|---------|
| `iblockId` | ID каталога, которому принадлежит раздел. Обязателен для списка, поиска и создания. Список: [`GET /v1/catalogs`](/docs/entities/catalogs) |
| `name` | Название раздела |
| `iblockSectionId` | ID родительского раздела. `null` — раздел верхнего уровня |
| `code` | Символьный код раздела |
| `sort` | Индекс сортировки |
| `active` | Активен ли раздел |
| `description` | Описание раздела |
| `descriptionType` | Формат описания: `text` или `html` |

Полный список полей — [`GET /v1/catalog-sections/fields`](./catalog-sections/fields.md).

## Что нужно знать перед работой

1. **Список и поиск требуют `filter[iblockId]`.** Без него [`GET /v1/catalog-sections`](./catalog-sections/list.md) и [`POST /v1/catalog-sections/search`](./catalog-sections/search.md) отвечают `400` с кодом `MISSING_REQUIRED_FILTER`. Запрос отклоняется до обращения к Битрикс24, сообщение содержит имя недостающего поля и пример вызова. Значение `iblockId` берётся из [`GET /v1/catalogs`](/docs/entities/catalogs).
2. **Минимум для создания — два поля:** `iblockId` и `name`. Без любого из них запрос вернёт `422`. Поле `iblockSectionId` опционально — задаёт родительский раздел, без него раздел создаётся на верхнем уровне.
3. **Разделы образуют дерево.** Поле `iblockSectionId` указывает на родительский раздел внутри того же каталога. У разделов верхнего уровня оно `null`.

## Типичный сценарий

1. Найти каталог и его `iblockId`: [`GET /v1/catalogs`](/docs/entities/catalogs).
2. Посмотреть разделы каталога: [`GET /v1/catalog-sections?filter[iblockId]=25`](./catalog-sections/list.md).
3. Создать новый раздел или изменить существующий: [`POST /v1/catalog-sections`](./catalog-sections/create.md) / [`PATCH /v1/catalog-sections/:id`](./catalog-sections/update.md).

## Лимиты

| Лимит | Значение |
|-------|----------|
| Максимум записей на запрос | 5000 (`limit ≤ 5000`) |
| Авто-пагинация | включается при `limit > 50` |
| Batch-запросы | до 50 операций в [`POST /v1/batch`](/docs/batch) |
| Rate limit | общий для API Вайбкод — см. [Лимиты и оптимизация](/docs/optimization) |

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

- [Товары каталога](/docs/entities/catalog-products)
- [Каталоги](/docs/entities/catalogs)
- [Цены каталога](/docs/entities/catalog-prices)
- [Синтаксис фильтрации](/docs/filtering)
- [Справочник API](/docs/api-reference)
