Поля элемента смарт-процесса

GET /v1/items/:entityTypeId/fields

Возвращает описание всех полей для указанного типа смарт-процесса, включая пользовательские (ufCrmN_*) и родительские ссылки (parentIdN).

Набор полей зависит от entityTypeId — каждый тип смарт-процесса имеет собственные пользовательские поля.

Примеры

В примерах entityTypeId = 156 — замените на ID вашего смарт-процесса.

curl — личный ключ

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

curl — OAuth-приложение

Terminal
curl -X GET https://vibecode.bitrix24.tech/v1/items/156/fields \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/items/156/fields', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { success, data } = await res.json()
console.log('Полей:', Object.keys(data).length)

JavaScript — OAuth-приложение

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

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

Поля ответа

Поле Тип Только чтение Описание
id number да ID элемента
title string Название
xmlId string Внешний код
stageId string Стадия. Формат: DT{typeId}_{catId}:{stage}
categoryId number ID воронки. Список: GET /v1/categories/:entityTypeId
assignedById number Ответственный. Список: GET /v1/users
companyId number ID компании. Поиск: GET /v1/companies
contactId number ID контакта. Поиск: GET /v1/contacts
contactIds array да Привязанные контакты
opportunity number Сумма
currencyId string Валюта. Список: GET /v1/currencies
opened boolean Доступен для всех
begindate datetime Дата начала. Хранится без времени — переданное время отбрасывается
closedate datetime Дата завершения. Хранится без времени — переданное время отбрасывается
sourceId string Источник
observers array Наблюдатели
mycompanyId number ID своей компании
createdBy number да Создатель
updatedBy number да Последний редактор
movedBy number да Переместил стадию
createdTime datetime да Дата создания
updatedTime datetime да Дата изменения
movedTime datetime да Дата смены стадии
isManualOpportunity boolean Сумма задана вручную (Y/Ntrue/false)
isRecurring boolean да Признак регулярного элемента
lastActivityTime datetime да Время последней активности

isManualOpportunity и isRecurring приходят от Битрикс24 строкой "Y"/"N" — платформа нормализует их в JSON-boolean на чтении (и принимает true/false на запись для isManualOpportunity), как и opened.

Пользовательские поля (ufCrmN_*) и родительские ссылки (parentIdN) зависят от конкретного смарт-процесса. Для полей типа enumeration ответ содержит массив items с доступными значениями.

Нульность. Многие поля приходят null, когда не заполнены — в частности xmlId, sourceDescription, lastActivityTime и UTM-поля (utmSource/utmMedium/utmCampaign/utmContent/utmTerm, если включены на портале). Типобезопасным клиентам (TS) объявляйте такие поля как T | null.

/fields отражает живой контракт Битрикс24, а не форму платформенных доков. Это сквозной проброс схемы полей Битрикс24 как есть: типы приходят в нотации Битрикс24 (number, string, boolean, datetime, double, enumeration, crm_contact, crm_status, user и другие), флаг — readonly (а не isReadOnly), у части полей есть label, отдельного isRequired или title нет. Схема также объявляет поля-привязки вроде contacts (тип crm_contact) — это входной формат для create/update. В данных list/get таких ключей нет, привязки читаются через contactId / contactIds. Системные поля, которые Битрикс24 отдаёт в list/get, но не описаны выше (taxValue, webformId, previousStageId, lastActivityBy, lastCommunication*, utm*), проходят сквозным проксированием.

Пример ответа

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 },
      "contacts": { "type": "crm_contact", "readonly": false, "label": "Контакты" },
      "ufCrm156_custom": { "type": "string", "readonly": false },
      "parentId156": { "type": "number", "readonly": false }
    }
  }
}

Поля приходят внутри data.fields. Объект ответа также содержит data.products (схема товарных строк), data.aggregatable (поля, доступные в агрегации) и data.batch.

Пример ответа при ошибке

404 — не найден:

JSON
{
  "success": false,
  "error": {
    "code": "ENTITY_NOT_FOUND",
    "message": "Элемент не найден"
  }
}

Ошибки

HTTP Код Описание
403 SCOPE_DENIED API-ключ не имеет скоупа crm
401 TOKEN_MISSING API-ключ не имеет настроенных токенов
400 INVALID_DYNAMIC_PARAM entityTypeId не является положительным целым или является зарезервированным (1, 2, 3, 4, 7, 31)

Полный список общих ошибок API — Ошибки.

Смотрите также