For AI agents: markdown of this page — /docs-content-en/entities/product-sections/list.md documentation index — /llms.txt

List sections

GET /v1/product-sections

Returns product catalog sections with filtering and auto-pagination support. These are the same sections available via GET /v1/catalog-sections — with the same id.

Parameters

Parameter Type Default Description
limit number 50 Number of records up to 5000. When limit > 50 Vibecode automatically requests several pages from Bitrix24
offset number 0 Offset from the start of the selection
select string Field selection: ?select=id,name,sectionId
filter object Exact-match and $in (IN set) only, by id, name, xmlId, code, catalogId, sectionId. Operators (>, >=, <, <=, !, %, $ne, $contains, $nin) and filtering by sort are not supported — you get 400 UNSUPPORTED_FILTER.
Filtering syntax. Example: ?filter[catalogId]=25

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/product-sections?filter[catalogId]=25&limit=10" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/product-sections?filter[catalogId]=25&limit=10" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/product-sections?filter[catalogId]=25&limit=10', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data, meta } = await res.json()
console.log(`Found ${meta.total} sections`)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/product-sections?filter[catalogId]=25&limit=10', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { success, data, meta } = await res.json()

Response fields

Field Type Description
success boolean Always true on success
data array Array of sections
data[].id number Section identifier
data[].name string Section name
data[].catalogId number ID of the catalog the section belongs to
data[].sectionId number Parent section ID. null for a top-level section
data[].code string Section symbolic code
data[].xmlId string External identifier
meta.total number Total number of records matching the filter
meta.hasMore boolean Whether more records exist beyond limit

The sort field is not included in the list and cannot be filtered by (it does work in order/sort). Full section field set — GET /v1/product-sections/fields.

Response example

JSON
{
  "success": true,
  "data": [
    {
      "id": 31,
      "catalogId": 25,
      "sectionId": null,
      "name": "Clothing",
      "code": "clothes",
      "xmlId": "666"
    },
    {
      "id": 45,
      "catalogId": 25,
      "sectionId": null,
      "name": "Winter collection",
      "code": "winter",
      "xmlId": null
    }
  ],
  "meta": {
    "total": 36,
    "hasMore": true
  }
}

Error response example

403 — no scope:

JSON
{
  "success": false,
  "error": {
    "code": "SCOPE_DENIED",
    "message": "This endpoint requires 'crm' scope"
  }
}

Errors

HTTP Code Description
400 UNSUPPORTED_FILTER An operator or a non-filterable field in the filter. Filter by exact match or $in on id, name, xmlId, code, catalogId, sectionId
400 INVALID_FILTER Error in filter syntax
403 SCOPE_DENIED Key is missing the crm scope
401 MISSING_API_KEY The X-Api-Key header was not provided

Full list of common API errors — Errors.

Known specifics

Exact match only. The filter applies exact match (and $in set) on id, name, xmlId, code, catalogId, sectionId. Operators (>, <, !, %), $ne/$contains/$nin and filtering by sort return 400 UNSUPPORTED_FILTER — so you see immediately that the filter did not apply, instead of getting the whole list unfiltered.

Sections of one parent. To get nested sections inside a specific section, filter by exact match on filter[sectionId] with the parent identifier.

Without a filter, sections of all catalogs in your Bitrix24 account are returned. To limit the selection to a single catalog, pass filter[catalogId]. Catalog list — GET /v1/catalogs.

See also