For AI agents: markdown of this page — /docs-content-en/entities/catalog-price-types/fields.md documentation index — /llms.txt
Price type fields
GET /v1/catalog-price-types/fields
Returns the price type field definitions, including their types. name, sort and xmlId are writable; the remaining fields are read-only.
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/catalog-price-types/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/catalog-price-types/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-price-types/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-price-types/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), readonly (true — the field cannot be passed on create or update), label (the display name), and description (a short description). The label/description values are returned in English. Request headers do not switch the language. Fields that may arrive without a value carry nullable: true. A field required on create carries required: true, and a field with a fixed set of values carries the list of allowed values in enum. The data.batch list is empty: batch mode is disabled because deleting a type permanently removes prices.
| Field | Type | RO | Description |
|---|---|---|---|
Fieldid |
Typenumber | ROyes | DescriptionPrice type identifier. This value is passed in catalogGroupId when working with catalog prices |
Fieldname |
Typestring | ROno | DescriptionPrice type name as configured in your Bitrix24 account |
Fieldbase |
Typestring | ROyes | DescriptionY for the base price type of the account, N for the rest |
FieldxmlId |
Typestring | ROno | DescriptionExternal code for import and export integrations. Can be null |
Fieldsort |
Typenumber | ROno | DescriptionSort order in the Bitrix24 interface |
FieldcreatedBy |
Typenumber | ROyes | DescriptionID of the user who created the price type. Can be null |
FieldmodifiedBy |
Typenumber | ROyes | DescriptionID of the user who last modified the price type. Can be null |
FielddateCreate |
Typedatetime | ROyes | DescriptionDate and time the price type was created. Can be null |
FieldtimestampX |
Typedatetime | ROyes | DescriptionDate and time the price type was last modified. Can be null |
Response example
{
"success": true,
"data": {
"fields": {
"id": { "type": "number", "readonly": true, "label": "ID", "description": "Price type identifier. This is the value /v1/catalog-prices expects in catalogGroupId." },
"name": { "type": "string", "readonly": false, "required": true, "label": "Name", "description": "Required on create. Price type name as configured on the Bitrix24 account." },
"base": { "type": "string", "readonly": true, "label": "Base price type", "description": "Read-only: Y for the base price type, N otherwise. Setting Y would change the account-wide base type. Its id is portal-specific.", "enum": [{ "value": "N", "label": "Other" }, { "value": "Y", "label": "Base" }] },
"xmlId": { "type": "string", "readonly": false, "nullable": true, "label": "External code", "description": "External identifier used by import/export integrations." },
"sort": { "type": "number", "readonly": false, "label": "Sort", "description": "Sort order of the price type in the Bitrix24 interface." },
"createdBy": { "type": "number", "readonly": true, "nullable": true, "label": "Created by", "description": "ID of the user who created the price type." },
"modifiedBy": { "type": "number", "readonly": true, "nullable": true, "label": "Modified by", "description": "ID of the user who last modified the price type." },
"dateCreate": { "type": "datetime", "readonly": true, "nullable": true, "label": "Created at", "description": "Date and time the price type was created." },
"timestampX": { "type": "datetime", "readonly": true, "nullable": true, "label": "Modified at", "description": "Date and time the price type was last modified." }
},
"batch": []
}
}
name, sort and xmlId are writable. base remains read-only: setting it to Y would switch the account-wide base type.
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 carry the catalog scope |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header is missing |
| HTTP429 | CodeRATE_LIMITED |
DescriptionRate limit exceeded: 300 requests per minute per portal. All API keys of the portal share one limit. The current limit is returned in the x-ratelimit-limit header. Retry after the delay in the Retry-After header |
For the full list of common API errors, see Errors.