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

Create a product property

POST /v1/catalog-product-properties

Creates a product property in the catalog. Fields are passed flat at the root of the JSON. The response returns the full object of the created property.

Request fields (body)

Field Type Required Description
FieldiblockId Typenumber Requiredyes DescriptionCatalog ID. List: GET /v1/catalogs
Fieldname Typestring Requiredyes DescriptionDisplay name of the property
FieldpropertyType Typestring Requiredyes DescriptionBase type. N number, S string, L list, F file, E element binding, G section binding
Fieldcode Typestring Requiredno DescriptionSymbolic code. Latin letters, digits, underscore. The first character must not be a digit
Fieldactive Typeboolean Requiredno DescriptionWhether the property is active. Defaults to true
Fieldsort Typenumber Requiredno DescriptionSort index
FielddefaultValue Typestring Requiredno DescriptionDefault value
FielduserType Typestring Requiredno DescriptionUser type, for example directory, DateTime, Money, HTML
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
FieldwithDescription Typeboolean Requiredno DescriptionValue description field
Fieldsearchable Typeboolean Requiredno DescriptionParticipates in search
Fieldfiltrable Typeboolean Requiredno DescriptionParticipates 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 ID
Fieldhint Typestring Requiredno DescriptionField hint

Examples

curl — personal key

Terminal
curl -X POST "https://vibecode.bitrix24.com/v1/catalog-product-properties" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "iblockId": 19,
    "name": "Material",
    "propertyType": "S"
  }'

curl — OAuth application

Terminal
curl -X POST "https://vibecode.bitrix24.com/v1/catalog-product-properties" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "iblockId": 19,
    "name": "Material",
    "propertyType": "S"
  }'

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/catalog-product-properties', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    iblockId: 19,
    name: 'Material',
    propertyType: 'S',
  }),
})

const { success, data } = await res.json()
console.log('Property ID:', data.id)

JavaScript — OAuth application

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

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

Response fields

Field Type Description
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata Typeobject DescriptionFull object of the created property. The field set is the same as GET /v1/catalog-product-properties/:id

The id of the created property matches NNN in the propertyNNN key, under which this property's value is returned for a product in Catalog products:

propertyNNN  →  property659

NNN is the value of the id field. It is used to build the id → name mapping that labels propertyNNN values.

Response example

The main fields are shown.

JSON
{
  "success": true,
  "data": {
    "id": 659,
    "iblockId": 19,
    "name": "Material",
    "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,
    "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 — a required field was not passed:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Required fields: name"
  }
}

Errors

HTTP Code Description
HTTP422 CodeBITRIX_ERROR DescriptionA required field was not passed — the message lists the missing ones (Required fields: name, Required fields: propertyType)
HTTP422 CodeBITRIX_ERROR DescriptionThe catalog with the specified iblockId was not found (Iblock Not Found)
HTTP400 CodeREADONLY_FIELD DescriptionA read-only field was passed in the body, for example id or timestampX
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.

See also