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

Update a property

PATCH /v1/catalog-product-properties/:id

Updates an existing property definition. Fields are passed flat at the root of the JSON. Pass only the fields you want to change — the rest keep their current values. The response returns the re-read property definition.

Parameters

Parameter Type Req. Description
id (path) number yes Property identifier

Request fields (body)

Field Type Req. Description
name string no Property display name
code string no Symbolic code. Latin letters, digits, and underscore, first character not a digit
active boolean no Whether the property is active
sort number no Sort index
defaultValue string no Default value
userTypeSettings object no User type settings
listType string no List appearance: L dropdown, C checkboxes
multiple boolean no Multiple value
multipleCnt number no Number of inputs for a multiple value
rowCount number no Number of input rows
colCount number no Number of input columns
withDescription boolean no Value description field
searchable boolean no Included in search
filtrable boolean no Included in the filter
isRequired boolean no Required to fill in
linkIblockId number no Linked catalog ID for binding types
fileType string no Allowed file extensions for type F
xmlId string no External identifier
hint string no Field hint

id is passed in the path, not the body — it is read-only. The iblockId, propertyType, and userType fields are set on create only: a PATCH that includes any of them is rejected with 400 READONLY_FIELD. The timestampX field is filled by the system.

Examples

curl — personal key

Terminal
curl -X PATCH "https://vibecode.bitrix24.com/v1/catalog-product-properties/659" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Product category"
  }'

curl — OAuth application

Terminal
curl -X PATCH "https://vibecode.bitrix24.com/v1/catalog-product-properties/659" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Product category"
  }'

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/catalog-product-properties/659', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Product category',
  }),
})

const { success, data } = await res.json()
console.log('New name:', data.name)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/catalog-product-properties/659', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Product category',
  }),
})

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

Response fields

Field Type Description
success boolean Always true on success
data object The re-read property definition. The field set is the same as GET /v1/catalog-product-properties/:id

Response example

The main fields are shown.

JSON
{
  "success": true,
  "data": {
    "id": 659,
    "iblockId": 19,
    "name": "Product category",
    "propertyType": "S",
    "code": "s12",
    "active": true,
    "sort": null,
    "defaultValue": null,
    "userType": "directory",
    "userTypeSettings": {
      "group": "N",
      "multiple": "N",
      "size": 1,
      "tableName": "b_hlbd_categories",
      "width": 0
    },
    "listType": "L",
    "multiple": false,
    "multipleCnt": null,
    "rowCount": 1,
    "colCount": 30,
    "withDescription": null,
    "searchable": false,
    "filtrable": false,
    "isRequired": false,
    "linkIblockId": null,
    "fileType": null,
    "xmlId": null,
    "hint": null,
    "timestampX": "2026-03-19T18:23:02.000Z"
  }
}

Error response example

422 — no property with the specified id exists:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "property does not exist."
  }
}

Errors

HTTP Code Description
422 BITRIX_ERROR No property with the specified id exists (property does not exist.)
400 READONLY_FIELD A read-only field was passed in the body, for example id
403 SCOPE_DENIED The key lacks the catalog scope
401 MISSING_API_KEY The X-Api-Key header was not passed

Full list of common API errors — Errors.

See also