Get Custom Lead Field by ID crm.lead.userfield.get
If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the MCP server so that the assistant can utilize the official REST documentation.
Scope:
crmWho can execute the method: user with read access to leads
The method crm.lead.userfield.get returns a custom lead field by its identifier.
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
id* |
Identifier of the custom field associated with the lead. The identifier can be obtained using the methods crm.lead.userfield.add or crm.lead.userfield.list |
Code Examples
How to Use Examples in Documentation
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":399}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.lead.userfield.get
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":399,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.lead.userfield.get
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (a representative subset of the user field properties)
type CrmLeadUserField = {
ID: string
ENTITY_ID: string
FIELD_NAME: string
USER_TYPE_ID: string
XML_ID: string | null
SORT: string
MULTIPLE: string
MANDATORY: string
SHOW_IN_LIST: string
EDIT_FORM_LABEL: Record<string, string>
LIST_COLUMN_LABEL: Record<string, string>
}
try {
const response = await $b24.actions.v2.call.make<CrmLeadUserField>({
method: 'crm.lead.userfield.get',
params: {
id: 399,
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('User field:', result.FIELD_NAME, result.USER_TYPE_ID)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function getLeadUserField() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'crm.lead.userfield.get',
params: {
id: 399,
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('User field:', result.FIELD_NAME, result.USER_TYPE_ID)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', getLeadUserField)
</script>
try {
$response = $b24Service
->core
->call(
'crm.lead.userfield.get',
[
'id' => 399,
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
echo 'Error: ' . $result->error();
} else {
echo 'Data: ' . print_r($result->data(), true);
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error getting company user field: ' . $e->getMessage();
}
BX24.callMethod(
'crm.lead.userfield.get',
{
id: 399,
},
(result) => {
result.error()
? console.error(result.error())
: console.info(result.data())
;
},
);
require_once('crest.php');
$result = CRest::call(
'crm.lead.userfield.get',
[
'id' => 399
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
Example
from b24pysdk.client import BaseClient
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
client: BaseClient
try:
bitrix_response = client.crm.lead.userfield.get(
bitrix_id=410,
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Bitrix API error",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Bitrix SDK error: {error.message}")
except Exception as error:
print(f"Unexpected error: {error}")
Response Handling
HTTP Status: 200
{
"result": {
"ID": "6997",
"ENTITY_ID": "CRM_LEAD",
"FIELD_NAME": "UF_CRM_HELLO_WORLD",
"USER_TYPE_ID": "string",
"XML_ID": null,
"SORT": "2000",
"MULTIPLE": "Y",
"MANDATORY": "N",
"SHOW_FILTER": "N",
"SHOW_IN_LIST": "Y",
"EDIT_IN_LIST": "N",
"IS_SEARCHABLE": "N",
"SETTINGS": {
"SIZE": 20,
"ROWS": 10,
"REGEXP": "",
"MIN_LENGTH": 0,
"MAX_LENGTH": 0,
"DEFAULT_VALUE": "Hello, World! Default value (changed)"
},
"EDIT_FORM_LABEL": {
"ar": "",
"br": "",
"de": "Hallo, Welt! Bearbeiten (geändert)",
"en": "Hello, World! Edit (changed)",
"fr": "",
"hi": "",
"id": "",
"in": "",
"it": "",
"ja": "",
"kz": "",
"la": "",
"ms": "",
"pl": "",
"ru": "",
"sc": "",
"tc": "",
"th": "",
"tr": "",
"ua": "",
"vn": ""
},
"LIST_COLUMN_LABEL": {
"ar": "",
"br": "",
"de": "Hallo, Welt! Spalte (geändert)",
"en": "Hello, World! Column (changed)",
"fr": "",
"hi": "",
"id": "",
"in": "",
"it": "",
"ja": "",
"kz": "",
"la": "",
"ms": "",
"pl": "",
"ru": "",
"sc": "",
"tc": "",
"th": "",
"tr": "",
"ua": "",
"vn": ""
},
"LIST_FILTER_LABEL": {
"ar": "Hello, World! Column (changed)",
"br": "Hello, World! Column (changed)",
"de": "Hello, World! Column (changed)",
"en": "Hello, World! Column (changed)",
"fr": "Hello, World! Column (changed)",
"hi": "Hello, World! Column (changed)",
"id": "Hello, World! Column (changed)",
"in": "Hello, World! Column (changed)",
"it": "Hello, World! Column (changed)",
"ja": "Hello, World! Column (changed)",
"kz": "Hello, World! Column (changed)",
"la": "Hello, World! Column (changed)",
"ms": "Hello, World! Column (changed)",
"pl": "Hello, World! Column (changed)",
"ru": "Hello, World! Column (changed)",
"sc": "Hello, World! Column (changed)",
"tc": "Hello, World! Column (changed)",
"th": "Hello, World! Column (changed)",
"tr": "Hello, World! Column (changed)",
"ua": "Hello, World! Column (changed)",
"vn": "Hello, World! Column (changed)"
},
"ERROR_MESSAGE": {
"ar": "",
"br": "",
"de": "Hallo, Welt! Fehler (geändert)",
"en": "Hello, World! Error (changed)",
"fr": "",
"hi": "",
"id": "",
"in": "",
"it": "",
"ja": "",
"kz": "",
"la": "",
"ms": "",
"pl": "",
"ru": "",
"sc": "",
"tc": "",
"th": "",
"tr": "",
"ua": "",
"vn": ""
},
"HELP_MESSAGE": {
"ar": "",
"br": "",
"de": "Hallo, Welt! Hilfe (geändert)",
"en": "Hello, World! Help (changed)",
"fr": "",
"hi": "",
"id": "",
"in": "",
"it": "",
"ja": "",
"kz": "",
"la": "",
"ms": "",
"pl": "",
"ru": "",
"sc": "",
"tc": "",
"th": "",
"tr": "",
"ua": "",
"vn": ""
}
},
"time": {
"start": 1753790529.430936,
"finish": 1753790529.487882,
"duration": 0.05694580078125,
"processing": 0.0039789676666259766,
"date_start": "2025-07-29T15:02:09+02:00",
"date_finish": "2025-07-29T15:02:09+02:00",
"operating_reset_at": 1753791129,
"operating": 0
}
}
Returned Data
|
Name |
Description |
|
result |
The root element of the response, containing information about the custom field. The final list of fields depends on the field type; detailed descriptions of the fields can be found in the method crm.lead.userfield.add |
|
time |
Information about the request execution time |
Error Handling
HTTP Status: 400
{
"error": "",
"error_description": "ID is not defined or invalid."
}
|
Name |
Description |
|
error |
String error code. It may consist of digits, Latin letters, and underscores |
|
error_description |
Textual description of the error. The description is not intended to be shown to the end user in its raw form |
Possible Error Codes
|
Code |
Description |
Value |
|
|
Access denied |
Occurs when:
|
|
|
ID is not defined or invalid |
The provided |
|
|
The entity with ID 'id' is not found |
The custom field with the provided |