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

Smart process item fields

GET /v1/items/:entityTypeId/fields

Returns a description of all fields for the given smart process type, including user fields (ufCrmN_*) and parent references (parentIdN).

The field set depends on entityTypeId — each smart process type has its own user fields.

Use the entityTypeId field from GET /v1/smart-processes in the /v1/items/:entityTypeId path. The type record's internal id is a different identifier. For example, if a type is returned as { "id": 3, "entityTypeId": 174 }, the path starts with /v1/items/174. Use the returned value rather than assuming all type IDs start at 1030.

Parameters

Parameter Type Required Description
ParameterentityTypeId (path) Typenumber Requiredyes DescriptionSmart process type ID. List: GET /v1/smart-processes

Examples

The examples use entityTypeId = 156; replace it with the ID of your smart process.

curl — personal key

Terminal
curl -X GET https://vibecode.bitrix24.com/v1/items/156/fields \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl -X GET https://vibecode.bitrix24.com/v1/items/156/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/items/156/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/items/156/fields', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

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

Response fields

The label and description values are returned in English, while those the platform takes straight from the Bitrix24 account come in the account language. Request headers do not switch the language.

Field Type Description
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata Typeobject DescriptionThe item field schema and the operations available for items of this smart process. Its keys are in the rows below
Fielddata.fields Typeobject DescriptionThe item field schema: field name → an object with type, readonly, label and description. Some fields also carry extra attributes such as nullable, multiple and importable. The standard fields are listed below, and the ufCrmN_* user fields and parentIdN parent references of this smart process are added to them
Fielddata.products Typeobject DescriptionOperations on the item's product rows, the setWarning notice that set replaces all rows, and the product row field schema. See Item product fields
Fielddata.aggregatable Typearray DescriptionStandard fields allowed in the aggregation groupBy: stageId, assignedById, categoryId, createdBy, updatedBy. Numeric functions accept fields of type number
Fielddata.batch Typearray DescriptionItem write operations available in batch calls: create, update, delete
Fielddata.import Typeobject DescriptionMethod, path and maximum batch size for importing records

Standard item fields

Field Type RO Description
Fieldid Typenumber ROyes DescriptionItem ID
Fieldtitle Typestring RO DescriptionName
FieldxmlId Typestring RO DescriptionExternal code
FieldstageId Typestring RO DescriptionStage. Format: DT{typeId}_{catId}:{stage}
FieldcategoryId Typenumber RO DescriptionPipeline ID. List: GET /v1/categories/:entityTypeId
FieldassignedById Typenumber RO DescriptionResponsible person. List: GET /v1/users
FieldcompanyId Typenumber RO DescriptionCompany ID. Search: GET /v1/companies. Requires the smart process to have the "Client" block enabled, otherwise 400 CLIENT_BLOCK_DISABLED
FieldcontactId Typenumber RO DescriptionContact ID. Search: GET /v1/contacts. Requires the smart process to have the "Client" block enabled, otherwise 400 CLIENT_BLOCK_DISABLED
FieldcontactIds Typearray RO DescriptionLinked contacts. Send the full list — it replaces the existing links instead of adding to them. Requires the smart process to have the "Client" block enabled, otherwise 400 CLIENT_BLOCK_DISABLED
Fieldopportunity Typenumber RO DescriptionAmount. Stored only on types with product rows enabled (isLinkWithProductsEnabled: true); a request with an explicit isManualOpportunity: true on a type without them is refused with 422 AMOUNT_NOT_APPLIED instead of a false success
FieldcurrencyId Typestring RO DescriptionCurrency. List: GET /v1/currencies
Fieldopened Typeboolean RO DescriptionAvailable to everyone
Fieldbegindate Typedatetime RO DescriptionStart date. Stored without time — the passed time is dropped
Fieldclosedate Typedatetime RO DescriptionCompletion date. Stored without time — the passed time is dropped
FieldsourceId Typestring RO DescriptionSource
FieldsourceDescription Typestring RO DescriptionFree-form description of the source
Fieldobservers Typearray RO DescriptionObservers
FieldmycompanyId Typenumber RO DescriptionOwn company ID
FieldcreatedBy Typenumber ROyes DescriptionCreator
FieldupdatedBy Typenumber ROyes DescriptionLast editor
FieldmovedBy Typenumber ROyes DescriptionWho moved the item to its current stage
FieldcreatedTime Typedatetime ROyes DescriptionCreation date
FieldupdatedTime Typedatetime ROyes DescriptionModification date
FieldmovedTime Typedatetime ROyes DescriptionStage change date
FieldisManualOpportunity Typeboolean RO DescriptionAmount set manually (Y/N → true/false). Stored only on types with product rows enabled (isLinkWithProductsEnabled: true); a request with an explicit isManualOpportunity: true on a type without them is refused with 422 AMOUNT_NOT_APPLIED instead of a false success
FieldisRecurring Typeboolean ROyes DescriptionRecurring item flag
FieldlastActivityTime Typedatetime ROyes DescriptionLast activity time
FieldentityTypeId Typenumber ROyes DescriptionSmart process type ID. Taken from the path segment, not accepted in the request body
FieldwebformId Typenumber ROyes DescriptionID of the CRM form the item was created from. 0 — the item was not created through a form
FieldutmSource Typestring | null ROyes Descriptionutm_source tag of the traffic source
FieldutmMedium Typestring | null ROyes Descriptionutm_medium tag — the traffic channel, for example cpc or email
FieldutmCampaign Typestring | null ROyes Descriptionutm_campaign tag — the advertising campaign name
FieldutmContent Typestring | null ROyes Descriptionutm_content tag — the advertisement content or variant
FieldutmTerm Typestring | null ROyes Descriptionutm_term tag — the advertisement keyword

Bitrix24 returns the UTM fields in list/get, but for smart process items it does not accept them in the request body, in a filter or in sorting — hence the read-only mark, and a request with filter[utmSource] returns an error.

isManualOpportunity and isRecurring arrive from Bitrix24 as the string "Y"/"N" — the platform normalizes them to a JSON boolean on read (and accepts true/false on write for isManualOpportunity), just like opened.

User fields (ufCrmN_*) and parent references (parentIdN) depend on the specific smart process. For enumeration-type fields the response contains an items array with the available values.

Nullability. Many fields arrive as null when not filled in — in particular xmlId, sourceDescription, lastActivityTime and the UTM fields (utmSource/utmMedium/utmCampaign/utmContent/utmTerm, if enabled on the Bitrix24 account). For type-safe clients (TS), declare such fields as T | null.

/fields reflects the live Bitrix24 contract, not the shape of the platform docs. This is a passthrough of the Bitrix24 field schema as is: types arrive in Bitrix24 notation (number, string, boolean, datetime, double, enumeration, crm_contact, crm_status, user and others), the flag is readonly (not isReadOnly), some fields have a label, and there is no separate isRequired or title. Linked contacts are read and written through contactId and contactIds. The platform does not list the contacts service field of the Bitrix24 schema in this response: no value for it arrives in either list or get responses, and on write Bitrix24 accepts only an empty array — it rejects any non-empty value with an error from its own data layer. The field would be a promise with nothing behind it. System fields that Bitrix24 returns in list/get but that are not described above (taxValue, previousStageId, lastActivityBy, lastCommunication*) are passed through as-is. The fields in the table above are described by the platform itself, so they carry a human-readable label and description.

Response example

JSON
{
  "success": true,
  "data": {
    "fields": {
      "id": { "type": "number", "readonly": true },
      "title": { "type": "string", "readonly": false },
      "stageId": { "type": "string", "readonly": false },
      "begindate": { "type": "datetime", "readonly": false },
      "ufCrm156_custom": { "type": "string", "readonly": false },
      "parentId156": { "type": "number", "readonly": false }
    }
  }
}

Error response example

400 — the entityTypeId is reserved for a dedicated API:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_DYNAMIC_PARAM",
    "message": "entityTypeId 7 has a dedicated API: use /v1/quotes instead"
  }
}

Errors

HTTP Code Description
HTTP403 CodeSCOPE_DENIED DescriptionThe API key does not have the crm scope
HTTP401 CodeTOKEN_MISSING DescriptionThe API key has no configured tokens
HTTP400 CodeINVALID_DYNAMIC_PARAM DescriptionentityTypeId is not a positive integer or is reserved (1, 2, 3, 4, 7, 31)
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.

See also