Список полей сущности
GET /v1/userfields/:entity
Возвращает список пользовательских полей CRM-сущности. Поддерживает фильтрацию по типу поля и по имени.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
:entity (path) |
string | да | Сущность: deals, leads, contacts, companies, quotes, requisites |
userTypeId (query) |
string | нет | Фильтр по типу поля. Список допустимых значений — `GET /v1/userfields/:entity/types`. Пример: ?userTypeId=string |
fieldName (query) |
string | нет | Фильтр по имени поля в формате UF_CRM_*. Пример: ?fieldName=UF_CRM_PROJECT_CODE |
Результат упорядочен по полю sort по возрастанию. Параметр сортировки не принимается.
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/userfields/deals?userTypeId=string" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/userfields/deals?userTypeId=string" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/userfields/deals?userTypeId=string',
{
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
}
)
const { success, data, meta } = await res.json()
console.log(`Полей типа string: ${meta.total}`)
JavaScript — OAuth-приложение
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/userfields/deals?userTypeId=string',
{
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
}
)
const { success, data, meta } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data |
array | Массив полей сущности. Набор полей элемента совпадает с карточкой поля, КРОМЕ языковых подписей editFormLabel, listColumnLabel, listFilterLabel, errorMessage, helpMessage — их отдаёт только карточка GET /:entity/:id (см. «Известные особенности») |
meta.total |
number | Общее количество полей, соответствующих фильтру |
Пример ответа
{
"success": true,
"data": [
{
"id": 6737,
"entityId": "CRM_DEAL",
"fieldName": "UF_CRM_66976FE34823A",
"userTypeId": "string",
"xmlId": null,
"sort": "100",
"multiple": "N",
"mandatory": "N",
"showFilter": "E",
"showInList": "Y",
"editInList": "Y",
"isSearchable": "N",
"settings": {
"SIZE": 20,
"ROWS": 1,
"REGEXP": "",
"MIN_LENGTH": 0,
"MAX_LENGTH": 0,
"DEFAULT_VALUE": ""
}
},
{
"id": 6739,
"entityId": "CRM_DEAL",
"fieldName": "UF_CRM_66976FE35F480",
"userTypeId": "string",
"xmlId": null,
"sort": "100",
"multiple": "N",
"mandatory": "N",
"showFilter": "N",
"showInList": "Y",
"editInList": "Y",
"isSearchable": "N",
"settings": {
"SIZE": 20,
"ROWS": 1,
"REGEXP": "",
"MIN_LENGTH": 0,
"MAX_LENGTH": 0,
"DEFAULT_VALUE": ""
}
}
],
"meta": {
"total": 7
}
}
Пример ответа при ошибке
400 — неизвестная сущность:
{
"success": false,
"error": {
"code": "UNKNOWN_ENTITY",
"message": "Unsupported entity \"foobar\". Supported: deals, leads, contacts, companies, quotes, requisites"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | UNKNOWN_ENTITY |
:entity не входит в список поддерживаемых сущностей |
| 401 | MISSING_API_KEY |
Отсутствует заголовок X-Api-Key |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа crm |
Полный список общих ошибок API — Ошибки.
Известные особенности
Языковые подписи приходят только в карточке. Список НЕ возвращает локализованные подписи поля — editFormLabel, listColumnLabel, listFilterLabel, errorMessage, helpMessage. Битрикс24 отдаёт их из crm.<entity>.userfield.list только при заданном фильтре LANG, который этот эндпоинт не передаёт. За локализованными подписями обращайтесь к карточке поля (GET /v1/userfields/:entity/:id) — она возвращает их объектами с ключами по языкам портала. Остальные поля элемента списка идентичны карточке.
Объект settings. Структура поля settings зависит от userTypeId. Для строки это SIZE, ROWS, REGEXP, MIN_LENGTH, MAX_LENGTH, DEFAULT_VALUE. Для других типов — другой набор ключей. Если у типа поля нет настраиваемых параметров, Битрикс24 может вернуть settings пустым массивом [] вместо {} (особенность сериализации пустого массива в PHP) — трактуйте такое значение как «настроек нет».
Пагинация отсутствует. Эндпоинт возвращает все поля сущности без разбивки на страницы. meta.total отражает итоговое число полей в ответе.
Смотрите также
- Каталог типов полей — список допустимых
userTypeId - Получить поле — полная схема одного поля по
id - Создать поле — добавить новое пользовательское поле
- Поля CRM-сущностей — маппинг полей и поддерживаемые сущности
- Пользовательские поля — обзор раздела