For AI agents: markdown of this page — /docs-content-en/userfields/crm/get.md documentation index — /llms.txt
Get field
GET /v1/userfields/:entity/:id
Returns the full description of a single user field of a CRM entity by its numeric identifier.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
Parameter:entity (path) |
Typestring | Requiredyes | DescriptionEntity: deals, leads, contacts, companies, quotes, requisites |
Parameter:id (path) |
Typenumber | Requiredyes | DescriptionNumeric identifier of the field (from the response of GET /v1/userfields/:entity or POST /v1/userfields/:entity) |
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/userfields/deals/7115" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/userfields/deals/7115" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const res = await fetch(
'https://vibecode.bitrix24.com/v1/userfields/deals/7115',
{
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
}
)
const { success, data } = await res.json()
console.log(data.fieldName, data.userTypeId)
JavaScript — OAuth application
const res = await fetch(
'https://vibecode.bitrix24.com/v1/userfields/deals/7115',
{
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
}
)
const { success, data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata |
Typeobject | DescriptionField object |
Fielddata.id |
Typenumber | DescriptionNumeric identifier of the field |
Fielddata.entityId |
Typestring | DescriptionInternal entity identifier: CRM_DEAL, CRM_LEAD, CRM_CONTACT, CRM_COMPANY, CRM_QUOTE, CRM_REQUISITE |
Fielddata.fieldName |
Typestring | DescriptionSystem field name in the UF_CRM_* format |
Fielddata.userTypeId |
Typestring | DescriptionField type. The list of allowed values — GET /v1/userfields/:entity/types |
Fielddata.xmlId |
Typestring|null | DescriptionExternal identifier for integrations. Set manually on creation |
Fielddata.sort |
Typestring | DescriptionSort order in the Bitrix24 interface |
Fielddata.multiple |
Typestring | DescriptionMultiple field: "Y" or "N" |
Fielddata.mandatory |
Typestring | DescriptionRequired field: "Y" or "N" |
Fielddata.showFilter |
Typestring | DescriptionShow in the filter. "N" — off; a filter enabled through this API comes back as "E" (Bitrix24 storage form). A field created outside this method — in the account interface or by another integration — may carry a different value, so compare against "N" rather than enumerating the options. An "N" or an "E" you read can be sent back as is. Any OTHER value you read is not a write form — to keep the filter on, send true |
Fielddata.showInList |
Typestring | DescriptionShow in the record list: "Y" or "N" |
Fielddata.editInList |
Typestring | DescriptionAllow editing directly from the list: "Y" or "N" |
Fielddata.isSearchable |
Typestring | DescriptionWhether it participates in full-text search: "Y" or "N" |
Fielddata.settings |
Typeobject | DescriptionField settings specific to userTypeId. For string — SIZE, ROWS, REGEXP, MIN_LENGTH, MAX_LENGTH, DEFAULT_VALUE. For other types the composition differs |
Fielddata.list |
Typearray | DescriptionOptions for an enumeration field. Absent for other types. Each item contains the strings ID, SORT, VALUE, DEF and the optional string XML_ID. It is present only when set manually or via import. Options created through the API have no such key. When a record is created or updated, a user field takes the option ID, not the VALUE label. A label sent instead of the ID is lost without an error. Details — Value format by type |
Fielddata.editFormLabel |
Typeobject | DescriptionField label in the edit form — an object keyed by Bitrix24 account languages |
Fielddata.listColumnLabel |
Typeobject | DescriptionColumn header in the record list — an object keyed by Bitrix24 account languages |
Fielddata.listFilterLabel |
Typeobject | DescriptionField label in the filter — an object keyed by Bitrix24 account languages |
Fielddata.errorMessage |
Typeobject | DescriptionValidation error message — an object keyed by Bitrix24 account languages |
Fielddata.helpMessage |
Typeobject | DescriptionHint below the field in the form — an object keyed by Bitrix24 account languages |
Response example
The language objects (editFormLabel, listColumnLabel, listFilterLabel, errorMessage, helpMessage) arrive for all Bitrix24 account languages. Three keys are kept in the example for brevity.
{
"success": true,
"data": {
"id": 7115,
"entityId": "CRM_DEAL",
"fieldName": "UF_CRM_VIBE_DOC_1779951810",
"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": ""
},
"editFormLabel": {
"en": "Documentation field",
"de": "Documentation field",
"fr": "Documentation field"
},
"listColumnLabel": {
"en": "Documentation field",
"de": "Documentation field",
"fr": "Documentation field"
},
"listFilterLabel": {
"en": "Documentation field",
"de": "Documentation field",
"fr": "Documentation field"
},
"errorMessage": {
"en": "Documentation field",
"de": "Documentation field",
"fr": "Documentation field"
},
"helpMessage": {
"en": "Documentation field",
"de": "Documentation field",
"fr": "Documentation field"
}
}
}
Error response example
404 — the field does not exist:
{
"success": false,
"error": {
"code": "ENTITY_NOT_FOUND",
"message": "The entity with ID '9999999' is not found."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeUNKNOWN_ENTITY |
Description:entity is not in the list of supported entities |
| HTTP404 | CodeENTITY_NOT_FOUND |
DescriptionBitrix24 returned a NOT_FOUND error — there is no field with this id |
| HTTP404 | CodeNOT_FOUND |
DescriptionBitrix24 returned success, but result is empty — the field is absent on the portal |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header is missing |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionThe API key has no configured tokens |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe API key does not have the crm scope |
Full list of common API errors — Errors.
Known specifics
Language objects. The fields editFormLabel, listColumnLabel, listFilterLabel, errorMessage, helpMessage arrive as objects with values per Bitrix24 account language (ru, en, ua, de, fr, and others). The value is set when the field is created or updated via the label parameter. If only a string is passed ("label": "My title"), Bitrix24 automatically propagates it to all available languages.
The settings field. The structure of the settings object depends on the value of userTypeId. Key sets for common types:
string—SIZE,ROWS,REGEXP,MIN_LENGTH,MAX_LENGTH,DEFAULT_VALUEenumeration—DISPLAY,LIST_HEIGHT,CAPTION_NO_VALUE,SHOW_NO_VALUEdatetime—DEFAULT_VALUE,USE_SECOND,USE_TIMEZONEcrm—LEAD,CONTACT,COMPANY,DEALset to"Y"or"N". A field whose smart process link was set outside this API carries theDYNAMIC_<entityTypeId>key and may lack the other keys
Other types have their own set of keys.
The type of the nested settings.DEFAULT_VALUE key also depends on userTypeId: an empty string "" for string and money, the number 0 for boolean, an object { "TYPE": ..., "VALUE": ... } for date and datetime, an empty array [] for employee. The composition and types of nested settings keys are not fixed — rely on the specific userTypeId rather than on a single set.
When a field type has no configurable parameters, Bitrix24 may return the settings field itself as an empty array [] instead of {} (a PHP empty associative-array serialization quirk). Treat an empty array as "no settings" — do not rely on settings always being an object.