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, plus the operations available in a batch request.
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/catalog-product-properties/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
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
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
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 |
|---|---|---|---|
Fieldid |
Typenumber | ROyes | DescriptionProperty identifier. This is the NNN in the propertyNNN key of a catalog product |
FieldiblockId |
Typenumber | ROno¹ | DescriptionCatalog ID. List: GET /v1/catalogs. Required on create |
Fieldname |
Typestring | ROno | DescriptionProperty display name. Required on create |
FieldpropertyType |
Typestring | ROno² | DescriptionBase type: N number, S string, L list, F file, E element binding, G section binding. Required on create |
Fieldcode |
Typestring | ROno | DescriptionSymbolic code: Latin letters, digits, underscore, first character not a digit |
Fieldactive |
Typeboolean | ROno | DescriptionWhether the property is active |
Fieldsort |
Typenumber | ROno | DescriptionSort index |
FielddefaultValue |
Typestring | ROno | DescriptionDefault value |
FielduserType |
Typestring | ROno² | DescriptionUser type, for example directory, DateTime, Money, HTML |
FielduserTypeSettings |
Typeobject | ROno | DescriptionUser type settings |
FieldlistType |
Typestring | ROno | DescriptionList appearance: L dropdown, C checkboxes |
Fieldmultiple |
Typeboolean | ROno | DescriptionThe property accepts multiple values |
FieldmultipleCnt |
Typenumber | ROno | DescriptionNumber of inputs for multiple values |
FieldrowCount |
Typenumber | ROno | DescriptionNumber of input rows |
FieldcolCount |
Typenumber | ROno | DescriptionNumber of input columns |
FieldwithDescription |
Typeboolean | ROno | DescriptionField with a value description |
Fieldsearchable |
Typeboolean | ROno | DescriptionParticipates in search |
Fieldfiltrable |
Typeboolean | ROno | DescriptionAvailable for filtering |
FieldisRequired |
Typeboolean | ROno | DescriptionThe property must be filled in |
FieldlinkIblockId |
Typenumber | ROno | DescriptionLinked catalog ID for binding types |
FieldfileType |
Typestring | ROno | DescriptionAllowed file extensions for type F |
FieldxmlId |
Typestring | ROno | DescriptionExternal identifier |
Fieldhint |
Typestring | ROno | DescriptionField hint |
FieldtimestampX |
Typedatetime | ROyes | DescriptionLast 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 |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata.fields.<name>.type |
Typestring | DescriptionField type: number, string, boolean, object, datetime |
Fielddata.fields.<name>.readonly |
Typeboolean | Descriptiontrue — the field is filled by the system and is not accepted on create or update |
Fielddata.fields.<name>.createOnly |
Typeboolean | Descriptiontrue — the field is accepted on create only. On PATCH it is rejected with READONLY_FIELD (present on iblockId, propertyType, userType) |
Fielddata.batch |
Typestring[] | DescriptionProperty operations available in a batch request: create, update, delete |
Response example
{
"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:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'catalog' scope"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe API key does not have the catalog scope |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header was not passed |
| HTTP429 | CodeRATE_LIMITED |
DescriptionRate limit exceeded: 300 requests per minute per portal, all API keys of the portal share one limit. The exact value arrives in the x-ratelimit-limit header (the cap is divided across replicas). Retry after the delay in the Retry-After header |
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 cannot be changed.
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.