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 | Required | Description |
|---|---|---|---|
Parameterid (path) |
Typenumber | Requiredyes | DescriptionProperty identifier |
Request fields (body)
| Field | Type | Required | Description |
|---|---|---|---|
Fieldname |
Typestring | Requiredno | DescriptionProperty display name |
Fieldcode |
Typestring | Requiredno | DescriptionSymbolic code. Latin letters, digits, and underscore, first character not a digit |
Fieldactive |
Typeboolean | Requiredno | DescriptionWhether the property is active |
Fieldsort |
Typenumber | Requiredno | DescriptionSort index |
FielddefaultValue |
Typestring | Requiredno | DescriptionDefault value |
FielduserTypeSettings |
Typeobject | Requiredno | DescriptionUser type settings |
FieldlistType |
Typestring | Requiredno | DescriptionList appearance: L dropdown, C checkboxes |
Fieldmultiple |
Typeboolean | Requiredno | DescriptionThe property accepts multiple values |
FieldmultipleCnt |
Typenumber | Requiredno | DescriptionNumber of inputs for multiple values |
FieldrowCount |
Typenumber | Requiredno | DescriptionNumber of input rows |
FieldcolCount |
Typenumber | Requiredno | DescriptionNumber of input columns |
FieldwithDescription |
Typeboolean | Requiredno | DescriptionValue description field |
Fieldsearchable |
Typeboolean | Requiredno | DescriptionIncluded in search |
Fieldfiltrable |
Typeboolean | Requiredno | DescriptionIncluded in the filter |
FieldisRequired |
Typeboolean | Requiredno | DescriptionThe property must be filled in |
FieldlinkIblockId |
Typenumber | Requiredno | DescriptionLinked catalog ID for binding types |
FieldfileType |
Typestring | Requiredno | DescriptionAllowed file extensions for type F |
FieldxmlId |
Typestring | Requiredno | DescriptionExternal identifier |
Fieldhint |
Typestring | Requiredno | DescriptionField 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
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
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
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
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 |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata |
Typeobject | DescriptionThe re-read property definition. The field set is the same as GET /v1/catalog-product-properties/:id |
Response example
The main fields are shown.
{
"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:
{
"success": false,
"error": {
"code": "BITRIX_ERROR",
"message": "property does not exist."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP422 | CodeBITRIX_ERROR |
DescriptionNo property with the specified id exists (property does not exist.) |
| HTTP400 | CodeREADONLY_FIELD |
DescriptionA read-only field was passed in the body, for example id |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe key lacks the catalog scope |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header was not passed |
Full list of common API errors — Errors.