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

Property fields

GET /v1/catalog-product-properties/fields

Returns the product property field reference with types and the "read-only" flag, and the operations available in a batch request.

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/catalog-product-properties/fields" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/catalog-product-properties/fields" \
  -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/catalog-product-properties/fields', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data } = await res.json()
console.log('Fields:', Object.keys(data.fields).length)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/catalog-product-properties/fields', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

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

Response fields

data.fields is an object whose key matches the field name, and whose value contains type (the field type) and readonly (true — the field cannot be passed on create or update). data.batch lists the operations available in a batch request.

Field Type RO Description
id number yes Property identifier. This is the NNN in the propertyNNN key of a catalog product
iblockId number no¹ Catalog ID. List: GET /v1/catalogs. Required on create
name string no Property display name. Required on create
propertyType string no² Base type: N number, S string, L list, F file, E element binding, G section binding. Required on create
code string no Symbolic code: Latin letters, digits, underscore, first character not a digit
active boolean no Whether the property is active
sort number no Sort index
defaultValue string no Default value
userType string no² User type, for example directory, DateTime, Money, HTML
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 multiple values
rowCount number no Number of input rows
colCount number no Number of input columns
withDescription boolean no Field with a value description
searchable boolean no Participates in search
filtrable boolean no Available for 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
timestampX datetime yes Last modification date

¹ iblockId is writable on create only (createOnly) — in the reference it comes back with readonly: false and createOnly: true.

² propertyType and userType are writable on create only (createOnly) — in the reference they come back with readonly: false and createOnly: true, and on PATCH they are rejected with READONLY_FIELD.

Field Type Description
success boolean Always true on success
data.fields.<name>.type string Field type: number, string, boolean, object, datetime
data.fields.<name>.readonly boolean true — the field is filled by the system and is not accepted on create and update
data.fields.<name>.createOnly boolean true — the field is accepted on create only — on PATCH it is rejected with READONLY_FIELD (present on iblockId, propertyType, userType)
data.batch string[] Property operations available in a batch request: create, update, delete

Response example

JSON
{
  "success": true,
  "data": {
    "fields": {
      "id": { "type": "number", "readonly": true },
      "iblockId": { "type": "number", "readonly": false, "createOnly": true },
      "name": { "type": "string", "readonly": false },
      "propertyType": { "type": "string", "readonly": false, "createOnly": true },
      "code": { "type": "string", "readonly": false },
      "active": { "type": "boolean", "readonly": false },
      "sort": { "type": "number", "readonly": false },
      "defaultValue": { "type": "string", "readonly": false },
      "userType": { "type": "string", "readonly": false, "createOnly": true },
      "userTypeSettings": { "type": "object", "readonly": false },
      "listType": { "type": "string", "readonly": false },
      "multiple": { "type": "boolean", "readonly": false },
      "multipleCnt": { "type": "number", "readonly": false },
      "rowCount": { "type": "number", "readonly": false },
      "colCount": { "type": "number", "readonly": false },
      "withDescription": { "type": "boolean", "readonly": false },
      "searchable": { "type": "boolean", "readonly": false },
      "filtrable": { "type": "boolean", "readonly": false },
      "isRequired": { "type": "boolean", "readonly": false },
      "linkIblockId": { "type": "number", "readonly": false },
      "fileType": { "type": "string", "readonly": false },
      "xmlId": { "type": "string", "readonly": false },
      "hint": { "type": "string", "readonly": false },
      "timestampX": { "type": "datetime", "readonly": true }
    },
    "batch": ["create", "update", "delete"]
  }
}

Error response example

403 — no scope:

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

Errors

HTTP Code Description
403 SCOPE_DENIED The API key does not have the catalog scope
401 MISSING_API_KEY The X-Api-Key header was not passed

Full list of common API errors — Errors.

Known specifics

The property type is immutable. propertyType and userType are chosen on create. A PATCH that includes either is rejected with 400 READONLY_FIELD — the base type of an existing property does not change.

A property is bound to a catalog (iblockId). The catalog is chosen on create. Changing it via update is not supported. A PATCH that changes iblockId is rejected with 400 READONLY_FIELD.

Relation to product fields. List-type properties (L) come back on a catalog product in fields of the form propertyNNN, where NNN is the property id. This reference turns the id into a name and type so you can build an id → name map and label propertyNNN values.

User type settings. The userTypeSettings field is an object whose contents depend on the userType value. It is passed in full on create and update.

See also