Skip to content

Latest commit

 

History

History
511 lines (440 loc) · 17.4 KB

File metadata and controls

511 lines (440 loc) · 17.4 KB

Get Element by Id crm.item.get

{% note tip "" %}

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.

{% endnote %}

Scope: crm

Who can execute the method: any user with "read" access permission for CRM object elements

This method returns information about an entity based on its identifier and the identifier of the CRM object type.

Method Parameters

{% include Note on required parameters %}

#| || Name type | Description || || entityTypeId* integer | Identifier of the system or custom type whose element we want to retrieve.

Numeric values for system types (Lead — 1, Deal — 2, Contact — 3, Company — 4, Invoice — 31, etc.) are listed in the CRM object types reference. The identifier for a smart process can be obtained using the crm.type.list method. || || id* integer | Identifier of the element whose information we want to retrieve.

This can be obtained using the crm.item.list method or when creating an element with the crm.item.add method. || || useOriginalUfNames boolean | This parameter controls the format of custom field names in the response.
Possible values:

  • Y — original names of custom fields, e.g., UF_CRM_2_1639669411830
  • N — custom field names in camelCase, e.g., ufCrm2_1639669411830

Default is N || |#

Code Examples

{% include Note on examples %}

Retrieve information about a lead with id = 250

{% list tabs %}

  • cURL (Webhook)

    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"entityTypeId":1,"id":250,"useOriginalUfNames":"N"}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.item.get
  • cURL (OAuth)

    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"entityTypeId":1,"id":250,"useOriginalUfNames":"N","auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/crm.item.get
  • JS (TS)

    // 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, ISODate } from '@bitrix24/b24jssdk'
    
    declare const $b24: B24Frame
    
    // Shape of the payload returned in result (match the "response handling" section of the page)
    type CrmItemGetResult = {
      item: {
        id: number
        createdTime: ISODate
        updatedTime: ISODate
        createdBy: number
        updatedBy: number
        assignedById: number
        opened: string
        stageId: string
        stageSemanticId: string
        opportunity: number
        currencyId: string
        sourceId: string
        title: string
        name: string
        lastName: string
        movedBy: number
        movedTime: ISODate
        lastActivityBy: number
        lastActivityTime: ISODate
        email: string
        phone: string
        fm: Array<{
          id: number
          valueType: string
          value: string
          typeId: string
        }>
        observers: number[]
        contactIds: number[]
        entityTypeId: number
      }
    }
    
    try {
      const response = await $b24.actions.v2.call.make<CrmItemGetResult>({
        method: 'crm.item.get',
        params: {
          entityTypeId: 1,
          id: 250,
          useOriginalUfNames: 'N',
        },
        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('Item:', result.item.id, result.item.title, result.item.entityTypeId)
      }
    } catch (error) {
      // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
      console.error(error)
    }
  • JS (UMD)

    <!-- 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 fetchCrmItem() {
        try {
          // Initialize the SDK inside a Bitrix24 frame
          const $b24 = await B24Js.initializeB24Frame()
    
          const response = await $b24.actions.v2.call.make({
            method: 'crm.item.get',
            params: {
              entityTypeId: 1,
              id: 250,
              useOriginalUfNames: 'N',
            },
            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('Item:', result.item.id, result.item.title, result.item.entityTypeId)
        } catch (error) {
          // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
          console.error(error)
        }
      }
    
      document.addEventListener('DOMContentLoaded', fetchCrmItem)
    </script>
  • PHP

    try {
        $entityTypeId = 1; // Example entity type ID
        $id = 123; // Example item ID
        $itemResult = $serviceBuilder
            ->getCRMScope()
            ->item()
            ->get($entityTypeId, $id);
        $item = $itemResult->item();
        print("ID: " . $item->id . PHP_EOL);
        print("XML ID: " . $item->xmlId . PHP_EOL);
        print("Title: " . $item->title . PHP_EOL);
        print("Created By: " . $item->createdBy . PHP_EOL);
        print("Updated By: " . $item->updatedBy . PHP_EOL);
        print("Moved By: " . $item->movedBy . PHP_EOL);
        print("Created Time: " . $item->createdTime->format(DATE_ATOM) . PHP_EOL);
        print("Updated Time: " . $item->updatedTime->format(DATE_ATOM) . PHP_EOL);
        print("Moved Time: " . $item->movedTime->format(DATE_ATOM) . PHP_EOL);
        print("Category ID: " . $item->categoryId . PHP_EOL);
        print("Opened: " . ($item->opened ? 'true' : 'false') . PHP_EOL);
        print("Previous Stage ID: " . $item->previousStageId . PHP_EOL);
        print("Begin Date: " . $item->begindate->format(DATE_ATOM) . PHP_EOL);
        print("Close Date: " . $item->closedate->format(DATE_ATOM) . PHP_EOL);
        print("Company ID: " . $item->companyId . PHP_EOL);
        print("Contact ID: " . $item->contactId . PHP_EOL);
        print("Opportunity: " . $item->opportunity . PHP_EOL);
        print("Is Manual Opportunity: " . ($item->isManualOpportunity ? 'true' : 'false') . PHP_EOL);
        print("Tax Value: " . $item->taxValue . PHP_EOL);
        print("Currency ID: " . $item->currencyId . PHP_EOL);
        print("Opportunity Account: " . $item->opportunityAccount . PHP_EOL);
        print("Tax Value Account: " . $item->taxValueAccount . PHP_EOL);
        print("Account Currency ID: " . $item->accountCurrencyId . PHP_EOL);
        print("My Company ID: " . $item->mycompanyId . PHP_EOL);
        print("Source ID: " . $item->sourceId . PHP_EOL);
        print("Source Description: " . $item->sourceDescription . PHP_EOL);
        print("Webform ID: " . $item->webformId . PHP_EOL);
        print("Assigned By ID: " . $item->assignedById . PHP_EOL);
        print("Last Activity By: " . $item->lastActivityBy . PHP_EOL);
        print("Last Activity Time: " . $item->lastActivityTime->format(DATE_ATOM) . PHP_EOL);
        print("UTM Source: " . $item->utmSource . PHP_EOL);
        print("UTM Medium: " . $item->utmMedium . PHP_EOL);
        print("UTM Campaign: " . $item->utmCampaign . PHP_EOL);
        print("UTM Content: " . $item->utmContent . PHP_EOL);
        print("UTM Term: " . $item->utmTerm . PHP_EOL);
        print("Observers: " . json_encode($item->observers) . PHP_EOL);
        print("Contact IDs: " . json_encode($item->contactIds) . PHP_EOL);
        print("Entity Type ID: " . $item->entityTypeId . PHP_EOL);
    } catch (Throwable $e) {
        print("Error: " . $e->getMessage() . PHP_EOL);
    }
  • Python

    Example

    from b24pysdk.client import BaseClient
    from b24pysdk.errors import BitrixAPIError, BitrixSDKException
    
    client: BaseClient
    
    try:
        bitrix_response = client.crm.item.get(
            entity_type_id=1,
            bitrix_id=250,
            use_original_uf_names=False,
        ).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}")
  • BX24.js

        BX24.callMethod(
            'crm.item.get',
            {
                entityTypeId: 1,
                id: 250,
                useOriginalUfNames: 'N',
            },
            (result) => {
                if (result.error())
                {
                    console.error(result.error());
    
                    return;
                }
    
                console.info(result.data());
            },
        );
  • PHP CRest

    require_once('crest.php');
    
    $result = CRest::call(
        'crm.item.get',
        [
            'entityTypeId' => 1,
            'id' => 250,
            'useOriginalUfNames' => 'N',
        ]
    );
    
    echo '<PRE>';
    print_r($result);
    echo '</PRE>';
  • Go

    // client and ctx are already created — see the Go SDK section
    res, err := client.Core().Call(ctx, "crm.item.get", b24.Params{
    	"entityTypeId":       1,
    	"id":                 250,
    	"useOriginalUfNames": "N",
    }, b24.WithIdempotent())
    if err != nil {
    	return fmt.Errorf("crm.item.get: %w", err)
    }
    
    // The method wraps the response in an object with the "item" key.
    raw, ok := b24.Unwrap(res.Result, "item")
    if !ok {
    	return fmt.Errorf("no item key in the response")
    }
    
    var item struct {
    	ID           b24.ID `json:"id"`
    	CreatedTime  string `json:"createdTime"`
    	UpdatedTime  string `json:"updatedTime"`
    	CreatedBy    int    `json:"createdBy"`
    	UpdatedBy    int    `json:"updatedBy"`
    	AssignedByID b24.ID `json:"assignedById"`
    }
    if err := json.Unmarshal(raw, &item); err != nil {
    	return fmt.Errorf("parse response: %w", err)
    }
    fmt.Println(item.ID, item.CreatedTime)

{% endlist %}

Response Handling

HTTP status: 200

{
    "result": {
        "item": {
            "id": 250,
            "createdTime": "2024-07-22T18:00:08+02:00",
            "dateCreateShort": null,
            "updatedTime": "2024-07-22T18:00:08+02:00",
            "dateModifyShort": null,
            "createdBy": 1,
            "updatedBy": 1,
            "assignedById": 1,
            "opened": "Y",
            "companyId": 0,
            "contactId": 0,
            "stageId": "IN_PROCESS",
            "isConvert": null,
            "statusDescription": null,
            "stageSemanticId": "P",
            "productId": null,
            "opportunity": 999.9,
            "currencyId": "USD",
            "sourceId": "TRADE_SHOW",
            "sourceDescription": "Exhibition about admins",
            "title": "Lead #250",
            "name": "Admin",
            "lastName": "Admins",
            "secondName": "Admin",
            "shortName": null,
            "companyTitle": "Administrative Company",
            "post": "Admin",
            "address": null,
            "comments": "[B]Comment about admin[/B]",
            "webformId": 0,
            "originatorId": null,
            "originId": null,
            "dateClosed": null,
            "birthdate": "2000-01-01T02:00:00+02:00",
            "honorific": "UC_N1LWUS",
            "hasPhone": "Y",
            "hasEmail": "Y",
            "hasImol": "N",
            "login": null,
            "isReturnCustomer": "N",
            "searchContent": "250 Lead #250 Admins Admin Admin Administrative Company 999.90 US Dollar 6111111111 111111111 11111111 1111111 111111 11111 1111 111 nqzva rknzcyr pbz In progress Exhibition Exhibition about admins g Admin [O]Comment about admin[/O] 321",
            "isManualOpportunity": "Y",
            "movedBy": 1,
            "movedTime": "2024-07-22T17:00:08+02:00",
            "lastActivityBy": 1,
            "lastActivityTime": "2024-07-22T17:00:08+02:00",
            "phoneMobile": "",
            "phoneWork": "+6111111111",
            "phoneMailing": "",
            "emailHome": "",
            "emailWork": "admin@example.com",
            "emailMailing": "",
            "skype": null,
            "icq": null,
            "imol": "",
            "email": "admin@example.com",
            "phone": "+6111111111",
            "fm": [
                {
                    "id": 101,
                    "valueType": "WORK",
                    "value": "+6111111111",
                    "typeId": "PHONE"
                },
                {
                    "id": 102,
                    "valueType": "WORK",
                    "value": "admin@example.com",
                    "typeId": "EMAIL"
                }
            ],
            "ufCrm_1720019876534": "321",
            "parentId1222": null,
            "parentId1226": null,
            "parentId1228": null,
            "parentId1236": null,
            "parentId1238": null,
            "parentId1240": null,
            "parentId1244": null,
            "parentId1246": null,
            "parentId1254": null,
            "parentId1256": null,
            "utmSource": null,
            "utmMedium": null,
            "utmCampaign": null,
            "utmContent": null,
            "utmTerm": null,
            "observers": [],
            "contactIds": [],
            "entityTypeId": 1
        }
    },
    "time": {
        "start": 1721660468.931424,
        "finish": 1721660469.416092,
        "duration": 0.4846680164337158,
        "processing": 0.16368508338928223,
        "date_start": "2024-07-22T17:01:08+02:00",
        "date_finish": "2024-07-22T17:01:09+02:00",
        "operating": 0
    }
}

Returned Data

#| || Name type | Description || || result object | The root element of the response. Contains a single key item || || item item | Information about the entity, field description || || time time | Object containing information about the request execution time || |#

The response contains the fm field — an array of all system multiple fields (phone, e-mail, and others) in a structured format. Each array item contains:

  • id — the record identifier (required for updating or deleting via crm.item.update)
  • typeId — the field type: PHONE, EMAIL, WEB, IM
  • valueType — the value subtype: WORK, MOBILE, HOME, MAILING, OTHER
  • value — the value

The phoneWork, phoneMobile, emailWork fields and similar ones are flat aliases for convenient access to the first value of the corresponding type from fm. They do not replace fm and do not allow managing multiple values of the same type.

{% note info " " %}

By default, custom field names are returned in camelCase, e.g., ufCrm2_1639669411830. When passing the parameter useOriginalUfNames with the value Y, custom fields will be returned with their original names, for example UF_CRM_2_1639669411830.

{% endnote %}

Error Handling

HTTP status: 400, 403

{
    "error": "NOT_FOUND",
    "error_description": "Element not found"
}

{% include notitle Error handling %}

Possible Error Codes

#| || Status | Code | Description | Value || || 403 | allowed_only_intranet_user | Action is allowed only to intranet users | User is not an intranet user || || 400 | NOT_FOUND | SPA not found | Occurs when an invalid entityTypeId is passed || || 400 | NOT_FOUND | Item not found | An item with the given id of type entityTypeId does not exist. || || 400 | ACCESS_DENIED | You do not have permission to view this item | User does not have read access permission for elements of type entityTypeId || |#

{% include System errors %}

Continue Learning