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

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 воронки
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 приходят от Bitrix24 строкой "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 отражает живой контракт Bitrix24, а не форму платформенных доков. Это проброс схемы B24 crm.item.fields как есть: типы приходят в B24-нотации (integer вместо number, плюс double, crm_contact, crm_status, user), флаг — readonly (а не isReadOnly), у части полей label вместо title, отдельного isRequired нет. Схема также объявляет поля-привязки вроде contacts (тип crm_contact) — это входной формат для create/update на стороне B24; в данных list/get таких ключей нет, привязки читаются через contactId / contactIds (проверено на живом портале, VB-d79c55b8). Системные поля, которые B24 отдаёт в list/get но не описаны выше (taxValue, webformId, previousStageId, lastActivityBy, lastCommunication*, utm*), проходят сквозным проксированием.

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

JSON
{
  "success": true,
  "data": {
    "id": {
      "type": "integer",
      "isRequired": false,
      "isReadOnly": true,
      "title": "ID"
    },
    "title": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "title": "Название"
    },
    "ufCrm156_custom": {
      "type": "string",
      "isRequired": false,
      "isReadOnly": false,
      "title": "Пользовательское поле"
    },
    "parentId2": {
      "type": "integer",
      "isRequired": false,
      "isReadOnly": false,
      "title": "Сделка"
    }
  }
}

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

404 — не найден:

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

#Ошибки

HTTP Код Описание
403 SCOPE_DENIED API-ключ не имеет скоупа crm
401 TOKEN_MISSING API-ключ не имеет настроенных токенов
400 RESERVED_ENTITY_TYPE entityTypeId зарезервирован

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

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