Get Parameters of CRM Item Detail Configuration crm.item.details.configuration.get
Choose a tool for developing with an AI agent:
- use Alaio Vibecode to build an app for Bitrix24 from a task description without knowing any programming language. The agent writes the code and deploys the app to a server, with no manual hosting setup
- use the MCP server to develop a REST API integration in your own project. The agent refers to the official REST documentation
Scope:
crmWho can execute the method: access rights during method execution depend on the provided data:
- Any user has the right to retrieve their own and shared settings
- A user can access another user's settings only if they are an administrator
The method crm.item.details.configuration.get returns the settings of the detail form for a specific CRM object. It can work with both personal settings of the specified user and shared settings defined for all users.
Note
- The settings for repeat lead detail forms may differ from those of simple lead detail forms. The parameter
extras.leadCustomerTypeis used to switch between lead detail form settings. - The settings for the CRM object detail form may vary depending on their Sales Funnel. The parameters used for switching are:
extras.categoryId— for SPAsextras.dealCategoryId— for deals
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
entityTypeId* |
Identifier of the system or custom type of CRM entities |
|
userId |
Identifier of the user whose configuration you want to retrieve. If this parameter is not provided, the Required only when requesting personal settings |
|
scope |
Scope of the settings. Acceptable values:
By default, the value is |
|
extras |
Additional parameters. Possible values and their structure are described below |
Parameter extras
The parameter in extras depends on the CRM object.
|
CRM Object |
Name |
Description |
|
SPA |
|
Identifier of the SPA funnel. Can be obtained using If not specified, the default funnel identifier for this SPA is used |
|
Deal |
|
Identifier of the deal funnel. Can be obtained using If not specified, the default funnel identifier for deals is used |
|
Lead |
|
Type of leads. Possible values:
|
Code Examples
How to Use Examples in Documentation
-
Retrieve the general configuration of item details for deals in the pipeline with
id = 9, for the user withid = 1cURL (Webhook)cURL (OAuth)JS (TS)JS (UMD)PythonPHPGocurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"entityTypeId":2,"userId":1,"scope":"C","extras":{"dealCategoryId":9}}' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.item.details.configuration.getcurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"entityTypeId":2,"userId":1,"scope":"C","extras":{"dealCategoryId":9},"auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/crm.item.details.configuration.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 (match the "response handling" section of the page) type SectionElement = { name: string optionFlags: string options?: Record<string, string> } type Section = { name: string title: string type: string elements: SectionElement[] } try { const response = await $b24.actions.v2.call.make<Section[] | null>({ method: 'crm.item.details.configuration.get', params: { entityTypeId: 2, userId: 1, scope: 'C', extras: { dealCategoryId: 9, }, }, 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('Sections count:', result?.length ?? 0, 'first section:', result?.[0]?.name) } } 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 getDetailsConfiguration() { try { // Initialize the SDK inside a Bitrix24 frame const $b24 = await B24Js.initializeB24Frame() const response = await $b24.actions.v2.call.make({ method: 'crm.item.details.configuration.get', params: { entityTypeId: 2, userId: 1, scope: 'C', extras: { dealCategoryId: 9, }, }, 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('Sections count:', result?.length ?? 0, 'first section:', result?.[0]?.name) } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) } } document.addEventListener('DOMContentLoaded', getDetailsConfiguration) </script>from b24pysdk.errors import BitrixAPIError, BitrixSDKException try: bitrix_response = client.crm.item.details.configuration.get( entity_type_id=2, user_id=1, scope="C", extras={ "dealCategoryId": 9, }, ).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}")require_once('crest.php'); $result = CRest::call( 'crm.item.details.configuration.get', [ 'entityTypeId' => 2, 'userId' => 1, 'scope' => "C", 'extras' => [ 'dealCategoryId' => 9, ] ] ); echo '<PRE>'; print_r($result); echo '</PRE>';// client and ctx are already created — see the Go SDK section res, err := client.Core().Call(ctx, "crm.item.details.configuration.get", b24.Params{ "entityTypeId": 2, "userId": 1, "scope": "C", "extras": b24.Params{ "dealCategoryId": 9, }, }, b24.WithIdempotent()) if err != nil { return fmt.Errorf("crm.item.details.configuration.get: %w", err) } var items []struct { Name string `json:"name"` Title string `json:"title"` Type string `json:"type"` } if err := json.Unmarshal(res.Result, &items); err != nil { return fmt.Errorf("parse response: %w", err) } for _, it := range items { fmt.Println(it.Name, it.Title) } -
Retrieve the personal configuration of item details for the SPA with
entityTypeId = 1032in the pipeline withid = 5cURL (Webhook)cURL (OAuth)JS (TS)JS (UMD)PythonPHPGocurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"entityTypeId":1032,"extras":{"categoryId":5}}' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.item.details.configuration.getcurl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"entityTypeId":1032,"extras":{"categoryId":5},"auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/crm.item.details.configuration.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 (match the "response handling" section of the page) type SectionElement = { name: string optionFlags: string options?: Record<string, string> } type Section = { name: string title: string type: string elements: SectionElement[] } try { const response = await $b24.actions.v2.call.make<Section[] | null>({ method: 'crm.item.details.configuration.get', params: { entityTypeId: 1032, extras: { categoryId: 5, }, }, 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('Sections count:', result?.length ?? 0, 'first section:', result?.[0]?.name) } } 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 getDetailsConfiguration() { try { // Initialize the SDK inside a Bitrix24 frame const $b24 = await B24Js.initializeB24Frame() const response = await $b24.actions.v2.call.make({ method: 'crm.item.details.configuration.get', params: { entityTypeId: 1032, extras: { categoryId: 5, }, }, 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('Sections count:', result?.length ?? 0, 'first section:', result?.[0]?.name) } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) } } document.addEventListener('DOMContentLoaded', getDetailsConfiguration) </script>from b24pysdk.errors import BitrixAPIError, BitrixSDKException try: bitrix_response = client.crm.item.details.configuration.get( entity_type_id=1032, extras={ "categoryId": 5, }, ).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}")require_once('crest.php'); $result = CRest::call( 'crm.item.details.configuration.get', [ 'entityTypeId' => 1032, 'extras' => [ 'categoryId' => 5, ] ] ); echo '<PRE>'; print_r($result); echo '</PRE>';// client and ctx are already created — see the Go SDK section res, err := client.Core().Call(ctx, "crm.item.details.configuration.get", b24.Params{ "entityTypeId": 1032, "extras": b24.Params{ "categoryId": 5, }, }, b24.WithIdempotent()) if err != nil { return fmt.Errorf("crm.item.details.configuration.get: %w", err) } var items []struct { Name string `json:"name"` Title string `json:"title"` Type string `json:"type"` } if err := json.Unmarshal(res.Result, &items); err != nil { return fmt.Errorf("parse response: %w", err) } for _, it := range items { fmt.Println(it.Name, it.Title) }
Response Handling
HTTP status: 200
{
"result": [
{
"name": "main",
"title": "About the deal",
"type": "section",
"elements": [
{
"name": "TITLE",
"optionFlags": "0"
},
{
"name": "STAGE_ID",
"optionFlags": "0"
},
{
"name": "OPPORTUNITY_WITH_CURRENCY",
"optionFlags": "0"
},
{
"name": "CLOSEDATE",
"optionFlags": "0"
},
{
"name": "CLIENT",
"optionFlags": "1",
"options": {
"defaultCountry": "RU"
}
},
{
"name": "UF_CRM_1686898039656",
"optionFlags": "1"
}
]
},
{
"name": "additional",
"title": "Additional",
"type": "section",
"elements": [
{
"name": "TYPE_ID",
"optionFlags": "0"
},
{
"name": "SOURCE_ID",
"optionFlags": "0"
},
{
"name": "SOURCE_DESCRIPTION",
"optionFlags": "0"
},
{
"name": "BEGINDATE",
"optionFlags": "0"
},
{
"name": "OPENED",
"optionFlags": "0"
},
{
"name": "ASSIGNED_BY_ID",
"optionFlags": "0"
},
{
"name": "OBSERVER",
"optionFlags": "0"
},
{
"name": "COMMENTS",
"optionFlags": "0"
},
{
"name": "UTM",
"optionFlags": "0"
}
]
},
{
"name": "products",
"title": "Products",
"type": "section",
"elements": [
{
"name": "PRODUCT_ROW_SUMMARY",
"optionFlags": "0"
}
]
},
{
"name": "recurring",
"title": "Recurring deal",
"type": "section",
"elements": [
{
"name": "RECURRING",
"optionFlags": "0"
}
]
}
],
"time": {
"start": 1720624891.017344,
"finish": 1720624891.405621,
"duration": 0.3882770538330078,
"processing": 0.02097320556640625,
"date_start": "2024-07-10T17:21:31+02:00",
"date_finish": "2024-07-10T17:21:31+02:00",
"operating": 0
}
}
Returned Data
|
Name |
Description |
|
result |
Root element of the response. Contains the configuration of the sections of the detail form. Returns |
|
time |
Information about the request execution time |
Section
Describes a specific section with fields inside the element card
|
Name |
Description |
|
name |
Unique name of the section used for identification |
|
title |
Title of the section |
|
type |
Type of the section |
|
elements |
List of fields displayed in the entity card with additional settings |
Section_Element
Configuration of a specific field within the section
|
Name |
Description |
|
name |
Field identifier |
|
optionFlags |
Values:
|
|
options |
Additional field options |
Error Handling
HTTP status: 400
{
"error": "",
"error_description": "Parameter 'entityTypeId' is not defined"
}
|
Name |
Description |
|
error |
String error code. It consists of digits, Latin letters, and underscores. It may arrive empty — in that case only |
|
error_description |
Error message for the developer. Do not show it to the end user without processing |
Possible Error Codes
|
Code |
Description |
Value |
|
Empty value |
Parameter 'entityTypeId' is not defined |
Required parameter |
|
Empty value |
The entity type ' |
The method does not support this entity type |
|
Empty value |
Access denied. |
The user does not have administrative rights |
Statuses and System Error Codes
HTTP Status: 4xx, 5xx
The errors described below are returned by the REST API itself, not by the logic of a specific method. They can arrive in response to any method.
|
Status |
Code |
Description |
|
|
|
An internal server error has occurred. Retry the call, and if the error persists, contact the server administrator or Bitrix24 technical support |
|
|
|
The server returned an unexpected response. Retry the call, and if the error persists, contact the server administrator or Bitrix24 technical support |
|
|
|
The request intensity limit has been exceeded |
|
|
|
The method is blocked because the request resource intensity limit has been exceeded. The block is lifted automatically once the accumulated execution time of the method no longer exceeds the limit |
|
|
|
The request contains no authorization data: neither an access token nor a webhook code was passed |
|
|
|
Methods are called over the HTTPS protocol only |
|
|
|
The REST API is blocked due to overload. This is a manual individual block. To have it lifted, contact Bitrix24 technical support |
|
|
|
REST API access is not active for this account. In Bitrix24 Cloud, check the current plan or trial status: Vibe+ plans include REST API access, while Essentials plans do not. A webhook receives a different error message — |
|
|
|
No active webhook with the specified user identifier and secret code was found |
|
|
|
No method with this name was found. The name is misspelled, the method does not exist in the REST API, or it is unavailable without the required scope |
|
|
|
The request requires broader permissions than the token has: for a webhook these are the permissions granted to it, for an application it is the scope. For an application, the error message ends with |
|
|
|
The access token has expired |
|
|
|
The application is installed, but the Bitrix24 administrator has granted access to it only to specific users |
|
|
|
The public part of the site is closed. To open it on an on-premise installation, disable the "Temporary closure of the public part of the site" option. Path to the setting: Desktop > Settings > Product Settings > Module Settings > Main Module > Temporary closure of the public part of the site |