# Product sections

Manage CRM product catalog sections: create, retrieve, update, delete, and search. A section groups products within a catalog and can be nested.

Bitrix24 API: `crm.productsection.*`
Scope: `crm`

**The `/v1/product-sections` methods are deprecated.** For new integrations use [Catalog sections](/docs/entities/catalog-sections).

## Operations

- [Create section](./product-sections/create.md) — `POST /v1/product-sections`
- [List sections](./product-sections/list.md) — `GET /v1/product-sections`
- [Get section](./product-sections/get.md) — `GET /v1/product-sections/:id`
- [Update section](./product-sections/update.md) — `PATCH /v1/product-sections/:id`
- [Delete section](./product-sections/delete.md) — `DELETE /v1/product-sections/:id`
- [Search sections](./product-sections/search.md) — `POST /v1/product-sections/search`
- [Section fields](./product-sections/fields.md) — `GET /v1/product-sections/fields`

## Key fields

| Field | Description |
|------|---------|
| `name` | Section name |
| `catalogId` | Catalog ID. List: `GET /v1/catalogs` |
| `sectionId` | Parent section ID for nesting. `null` for a root section |
| `code` | Section symbolic code |
| `xmlId` | External identifier |

Full field list — [`GET /v1/product-sections/fields`](./product-sections/fields.md).

## What you need to know before you start

1. **These are the same sections as in the catalog.** A section with the same `id` is available via [`GET /v1/catalog-sections`](/docs/entities/catalog-sections). `catalogId` here corresponds to `iblockId` there.
2. **The request body is flat.** Fields are passed at the root of the JSON, without a `fields` wrapper.
3. **Only `name` is required to create.** `catalogId` defaults to the Bitrix24 account CRM catalog, `code` is generated from the name.
4. **Nesting is set via `sectionId`.** This is the parent section ID. For top-level sections `sectionId` is `null`.
5. **Response fields are in camelCase.** The mapping to the original Bitrix24 names is in [Section fields](./product-sections/fields.md).

## Typical scenario

1. View catalog sections: [`GET /v1/product-sections?filter[catalogId]=25`](./product-sections/list.md).
2. Create a new section: [`POST /v1/product-sections`](./product-sections/create.md).
3. Attach products to the section: [`PATCH /v1/products/:id`](/docs/entities/products) with the `sectionId` field.

## Limits

| Limit | Value |
|-------|----------|
| Maximum records per request | 5000 (`limit ≤ 5000`) |
| Auto-pagination | enabled when `limit > 50` |
| `offset` on large selections | `limit ≤ 500` recommended when `offset ≥ 2500` |
| Batch requests | up to 50 operations in [`POST /v1/batch`](/docs/batch) |
| Rate limit | shared across the Vibe API — see [Limits and optimization](/docs/optimization) |

## See also

- [Entity API](/docs/entity-api)
- [Filtering syntax](/docs/filtering)
- [Batch](/docs/batch)
- [Entities reference](/docs/entities-index)
- [Products](/docs/entities/products)
- [Catalog sections](/docs/entities/catalog-sections)
