Для AI-агентов: markdown этой страницы — /docs-content/entities/contacts/fields.md индекс документации — /llms.txt
Поля контакта
GET /v1/contacts/fields
Возвращает полный список доступных полей, включая пользовательские (ufCrm*).
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/contacts/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/contacts/fields" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/contacts/fields', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data } = await res.json()
console.log('Полей:', Object.keys(data.fields).length)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/contacts/fields', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
Поля ответа
Подписи полей label и description приходят на русском языке, а те, что платформа берёт напрямую с портала, — на языке портала. Заголовками запроса язык не переключается.
| Поле | Тип | RO | Описание |
|---|---|---|---|
id |
number | да | ID контакта |
name |
string | Имя, не более 50 кодовых точек Unicode. Более длинное значение отклоняется до записи; имя не обрезается. | |
lastName |
string | Фамилия | |
secondName |
string | Отчество | |
phone |
multifield | Телефон. На вход (POST/PATCH) принимает string | string[] | object[]. На выходе phone — строка с первичным значением, значения по типам — в полях phoneWork/phoneMobile, полный перечень с типами — в массиве fm[] (формат { id, typeId, valueType, value }). ⚠ PATCH только добавляет новые записи — старые phone не удаляются. См. Обновить контакт. ⚠ UPPER-форма [{ "VALUE": "...", "VALUE_TYPE": "WORK" }] не принимается — вернёт 400 INVALID_MULTIFIELD_SHAPE. Используйте camelCase: [{ "value": "...", "typeId": "WORK" }]. Объект с полем id не принимается ни на одной двери записи — 400 MULTIFIELD_ID_NOT_SUPPORTED, ничего не записывается. То же касается записи с id в сыром массиве fm[]. |
|
email |
multifield | Email. На вход принимает string | string[] | object[]. На выходе email — строка с первичным значением, значения по типам — в полях emailWork/emailHome/emailMailing, полный перечень — в массиве fm[]. ⚠ PATCH только добавляет новые записи — старые email не удаляются. ⚠ UPPER-форма [{ "VALUE": "...", "VALUE_TYPE": "WORK" }] не принимается — вернёт 400 INVALID_MULTIFIELD_SHAPE. Используйте camelCase: [{ "value": "...", "typeId": "WORK" }]. Объект с полем id не принимается ни на одной двери записи — 400 MULTIFIELD_ID_NOT_SUPPORTED, ничего не записывается. То же касается записи с id в сыром массиве fm[]. |
|
phoneWork |
string | да | Рабочий телефон, развёрнутый из мультиполя phone. Только для чтения: номер записывается через phone; присланное значение не сохраняется ни на одной двери, поэтому запись отклоняется: создание и изменение — 400 READONLY_FIELD, импорт — 400 IMPORT_ITEM_VALIDATION, пакет сущности — 400 BATCH_ITEM_VALIDATION, общий пакет — READONLY_FIELD под вызовом. null, если такого номера нет. Фильтр (точный и $contains) и сортировка работают |
phoneMobile |
string | да | Мобильный телефон, развёрнутый из мультиполя phone. Только для чтения, как phoneWork. null, если такого номера нет |
phoneMailing |
string | да | Телефон для рассылок, развёрнутый из мультиполя phone. Только для чтения, как phoneWork. null, если такого номера нет |
imol |
string | да | Контакт человека в открытой линии (мессенджере), развёрнутый из коллекции мультиполей. Только для чтения. null, если такого контакта нет |
address |
string | да | Адрес контакта одной строкой (старая колонка). Битрикс24 отдаёт её, но не сохраняет через item-API, которым пишет этот метод: присланное значение не сохраняется ни на одной двери записи, запрос отклоняется (коды — как у phoneWork); заполняет её только старый метод crm.contact.add прежних интеграций, а адрес правится в реквизитах контакта. null, если не заполнен. Фильтр (точный и $contains) и сортировка работают |
shortName |
string | да | Краткое имя — фамилия с инициалами («Иванов И. И.»), вычисляет Битрикс24. Приходит только в списке или поиске, где поле названо в select явно (без *); одиночный GET /v1/contacts/{id}, список без select и список пачки сущности (её select — проекция) отдают null. Только для чтения (коды отказа — как у phoneWork). Фильтр (точный и $contains) и сортировка работают |
hasPhone |
boolean | да | Указан ли телефон |
hasEmail |
boolean | да | Указан ли email |
hasImol |
boolean | да | Есть ли контакт в открытой линии |
companyId |
number | ID компании. Поиск: GET /v1/companies |
|
post |
string | Должность | |
comments |
string | Комментарий | |
typeId |
string | Тип контакта. Список: GET /v1/statuses?filter[entityId]=CONTACT_TYPE |
|
sourceId |
string | Источник. Список: GET /v1/statuses?filter[entityId]=SOURCE |
|
sourceDescription |
string | Описание источника | |
assignedById |
number | Ответственный. Список: GET /v1/users |
|
createdBy |
number | да | Создатель. Поиск: GET /v1/users |
updatedBy |
number | да | Кто изменил. Поиск: GET /v1/users |
createdTime |
datetime | да | Дата создания |
updatedTime |
datetime | да | Дата изменения |
opened |
boolean | Доступен для всех | |
export |
boolean | Разрешён экспорт | |
leadId |
number | ID лида-источника | |
honorific |
string | Обращение. Список: GET /v1/statuses?filter[entityId]=HONORIFIC |
Пользовательские поля (ufCrm*) также возвращаются в ответах и принимаются при создании/обновлении. У поля типа enumeration в ответе этого эндпоинта по пути data.fields.<имя поля>.items приходит массив вариантов вида { "ID": "3989", "VALUE": "warm" }. Для записи в пользовательское поле берётся ID, а VALUE — подпись варианта для показа. Подпись, отправленная вместо идентификатора, теряется без ошибки. Подробнее — Формат значения по типам.
Доступные include
Эндпоинт GET /v1/contacts/fields возвращает список доступных include: company.
Пример использования: Получить contacts.
Подробнее об include: Связанные данные.
Пример ответа
{
"success": true,
"data": {
"fields": {
"id": { "type": "number", "readonly": true },
"name": { "type": "string", "readonly": false },
"assignedById": { "type": "number", "readonly": false }
},
"batch": ["create", "update", "delete"]
}
}
Показаны 3 из множества полей. Полный список в таблице выше.
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа crm |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
| 429 | RATE_LIMITED |
Превышен лимит запросов: 300 в минуту на портал, все API-ключи портала делят один лимит. Точное значение — в заголовке x-ratelimit-limit (потолок делится на реплики). Повторите после срока из заголовка Retry-After |
Полный список общих ошибок API — Ошибки.