Company Fields in REST 3.0
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
These fields belong to REST 3.0 methods. The call specifics and response format of the new API version are described in the REST 3.0 overview.
Company fields are returned by the crm.company.get and crm.company.list methods and accepted by the crm.company.add and crm.company.update methods. Values of multiple fields are added and removed one at a time by the crm.company.addfieldvalue and crm.company.deletefieldvalue methods. The list of fields with their attributes is returned by the crm.company.field.list method.
The crm.company.* methods work only with client companies. They do not find companies from the "My companies" reference list: crm.company.get returns the error 'Entity with ID … was not found.', and crm.company.list does not show them. For your own companies, use the crm.mycompany.* methods; their fields are described in the My Company Fields in REST 3.0 article.
Some fields exist in two forms: as an ID and as a related object, for example, assignedById and assignedBy. The ID can be passed when writing data, while the related object can only be requested in select.
Which Fields the Methods Accept and Return
|
Method |
Accepts |
Returns |
|
Fields of the Company Object table that can be edited, and custom fields. The |
ID of the created company |
|
|
Company |
Success flag |
|
|
Company |
Without |
|
|
|
Without |
|
|
Company |
Success flag |
The add and update methods do not accept fields marked "read-only" and return the BITRIX_REST_V3_EXCEPTION_VALIDATION_DTOVALIDATIONEXCEPTION error with the message 'Field "contactId" is read-only.' Related objects, for example, contacts and assignedBy, are also read-only: to write data, pass the ID — contactsId, assignedById.
The method validates fields with values from reference lists when writing data. If the value is not in the reference list, the method returns the error 'Field value is not one of the possible values'. For the company type, industry, number of employees, and currency, the error message lists the allowed values.
Boolean fields accept and return true or false. The values Y, N, 1, and 0 are not accepted: the method returns the error 'This request requires data type "bool" in field "opened"'.
Fields of the datetime type are returned in ISO 8601 format, for example, 2026-11-03T14:42:01+03:00. In a filter by a datetime field, also pass a date with time.
You can filter and sort only by the fields whose description says so. For other fields, the list method returns an error stating that the field 'requires attribute "Filterable"' or '"Sortable"'. Dot notation lets you filter by fields of linked CRM items, of phone, email, website, and messenger values, and of the utm and lastCommunication objects, for example, ["contact.name", "=", "Klaus"] or ["phone.value", "=", "+49300000001"]. Filtering by fields of employees and reference lists, for example, assignedBy.id or industry.name, is not supported: the method returns the BITRIX_REST_V3_EXCEPTION_INVALIDFILTEREXCEPTION error. The filter format is described on the crm.<type>.list page and in the REST API 3.0 Overview article.
Company Object
|
Name |
Description |
|
id |
Company ID. Assigned on creation. Read-only. Can be filtered and sorted |
|
title |
Company name, up to 255 characters. Required when creating a company. Can be edited, filtered, and sorted |
|
typeId |
Company type ID, for example, Can be edited, filtered, and sorted |
|
type |
Company type. An object of type reference list value. Read-only. Requested in |
|
industryId |
Industry ID, for example, Can be edited, filtered, and sorted |
|
industry |
Industry. An object of type reference list value. Read-only. Requested in |
|
employeesId |
ID of the employee count range, for example, Can be edited, filtered, and sorted |
|
employees |
Number of employees. An object of type reference list value. Read-only. Requested in |
|
revenue |
Annual revenue, for example, Can be edited, filtered, and sorted |
|
currencyId |
ID of the annual revenue currency, for example, Can be edited, filtered, and sorted |
|
currency |
Currency. An object of type currency. Read-only. Requested in |
|
logo |
Company logo. An object of type file. To delete the logo, pass Can be edited. Cannot be filtered or sorted |
|
contactsId |
IDs of the company contacts. Contacts are returned by the crm.contact.list method. The passed array replaces the current list of contacts. Can be edited and filtered, cannot be sorted. In a filter, |
|
contacts |
Company contacts. An array of objects of type CRM item. If there are no contacts, an empty array. Read-only. Requested in |
|
contactId |
ID of the contact for which this company is the primary one. If the company is not primary for any of its contacts, Read-only. Can be filtered, cannot be sorted |
|
contact |
Contact for which this company is the primary one. An object of type CRM item. Read-only. Requested in |
|
leadId |
ID of the lead from which the company was created. If the company was not created from a lead, Read-only. Can be filtered and sorted |
|
lead |
Lead from which the company was created. An object of type CRM item. Read-only. Requested in |
|
phone |
Company phone numbers. An array of objects of type multiple field value. Phone types are returned by the crm.dictionary.phonetype.list method. Can be edited. Can be filtered by value fields using dot notation, for example, |
|
email |
Email addresses. An array of objects of type multiple field value. Email types are returned by the crm.dictionary.emailtype.list method. The method validates the address format and returns the error 'The field "Work E-mail" contains an incorrect address.' for an invalid address. Can be edited. Can be filtered by value fields using dot notation, for example, |
|
web |
Websites and social media pages. An array of objects of type multiple field value. Website types are returned by the crm.dictionary.webtype.list method. Can be edited. Can be filtered by value fields using dot notation, for example, |
|
im |
Messengers and open channels. An array of objects of type multiple field value. Messenger types are returned by the crm.dictionary.imtype.list method. Can be edited. Can be filtered by value fields using dot notation, for example, |
|
hasPhone |
Whether the company has at least one phone number: Read-only. Cannot be filtered or sorted |
|
hasEmail |
Whether the company has at least one email address: Read-only. Cannot be filtered or sorted |
|
hasWeb |
Whether the company has at least one website: Read-only. Cannot be filtered or sorted |
|
hasIm |
Whether the company has at least one value in the Read-only. Cannot be filtered or sorted |
|
assignedById |
ID of the person responsible for the company. User IDs are returned by the user.get method. If the user does not exist, the method returns the error 'Field value is not one of the possible values'. Can be edited, filtered, and sorted |
|
assignedBy |
Responsible person. An object of type employee. Read-only. Requested in |
|
observersId |
Observer IDs. User IDs are returned by the user.get method. The passed array replaces the current list of observers. Can be edited and filtered, cannot be sorted. In a filter, |
|
observers |
Observers. An array of objects of type employee. If there are no observers, an empty array. Read-only. Requested in |
|
opened |
Whether the company is available to all users: Can be edited, filtered, and sorted |
|
comments |
Comment on the company. Can be edited. Cannot be filtered or sorted |
|
utm |
UTM tags of the company. An object of type UTM tags. Can be edited. Can be filtered by object fields using dot notation, for example, |
|
trackingSourceId |
ID of the end-to-end analytics source. If the source does not exist or is archived, the method returns an error stating that the end-to-end analytics source was not found or is archived. Can be edited and filtered, cannot be sorted |
|
originatorId |
ID of the external system the company was imported from. Use together with Can be edited, filtered, and sorted |
|
originId |
Company ID in the external system. Can be edited, filtered, and sorted |
|
originVersion |
Record version in the external system. Can be edited. Cannot be filtered or sorted |
|
createdTime |
Date and time the company was created. Read-only. Can be filtered and sorted |
|
createdById |
ID of the user who created the company. The user data is in the Read-only. Can be filtered and sorted |
|
createdBy |
User who created the company. An object of type employee. Read-only. Requested in |
|
updatedTime |
Date and time the company was last updated. Read-only. Can be filtered and sorted |
|
updatedById |
ID of the user who last updated the company. Read-only. Can be filtered and sorted |
|
updatedBy |
User who last updated the company. An object of type employee. Read-only. Requested in |
|
lastActivityTime |
Date and time of the last activity in the company timeline. Read-only. Can be filtered and sorted |
|
lastActivityById |
ID of the author of the last activity in the timeline. Read-only. Can be filtered and sorted |
|
lastActivityBy |
Author of the last activity in the timeline. An object of type employee. Read-only. Requested in |
|
webformId |
ID of the CRM form through which the company was created. If the company was not created by a form, Read-only. Can be filtered and sorted |
|
webform |
CRM form through which the company was created. An object of type CRM form. Read-only. Requested in |
|
lastCommunication |
Dates of the last communications with the company. An object of type last communication. Read-only. Requested in |
|
entityTypeId |
Object type ID. For a company, Read-only |
|
canRead |
Whether the current user can view the company: Read-only |
|
url |
Relative link to the company card, for example, Read-only |
|
related<type code>Id |
ID of the parent SPA item, for example, Can be edited and filtered, cannot be sorted |
|
related<type code> |
Parent SPA item, for example, Read-only. Requested in |
Phone Numbers, Email, Websites, and Messengers
The phone, email, web, and im fields are arrays of values. Each value is an object with the following fields:
|
Name |
Description |
|
id |
Value ID. Assigned when writing data and cannot be passed: the method returns the error 'Field "id" is read-only.' |
|
valueTypeId |
Value type, for example, |
|
valueType |
Value type with its name: |
|
value |
Value: phone number, email address, website address, or messenger ID. Required when writing data |
When writing data, pass an array of objects with the valueTypeId and value fields:
{
"phone": [
{"valueTypeId": "WORK", "value": "+49300000001"},
{"valueTypeId": "MOBILE", "value": "+49300000002"}
]
}
In the response, each value is returned with id and the valueType object:
{
"phone": [
{
"id": 8861,
"valueTypeId": "WORK",
"valueType": {
"id": "WORK",
"name": "Work Phone",
"nameShort": "Work Phone"
},
"value": "+49300000001"
}
]
}
How writing works:
crm.company.updatereplaces all values of the field with the passed array. Values not included in the array are deleted. Other multiple fields not included infieldsdo not change- an empty array, for example,
"phone": [], deletes all values of the field - a single value is added by the crm.company.addfieldvalue method and deleted by crm.company.deletefieldvalue. In
value, pass the object{"valueTypeId": "WORK", "value": "+49300000001"}. If such a value already exists,addfieldvaluereturns the error "The field value already exists." - one field can contain up to 50 values, and all four fields together up to 100. If the limit is exceeded, the method returns the error "Too many phone multifields."
File Object
Field logo. To upload a logo, pass the upload object with the file name and the content in Base64 or a link to the file:
{
"logo": {
"upload": {
"name": "logo.png",
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg=="
}
}
}
Instead of data, you can pass url — the file address. You cannot pass data and url at the same time.
In the response, the field contains the data of the uploaded file:
|
Name |
Description |
|
id |
File ID, for example, |
|
name |
File name |
|
url |
Address for viewing the file in Bitrix24 |
|
downloadUrl |
Address for downloading the file via REST. The address contains the webhook authorization data, do not publish it |
UTM Tags Object
Field utm. When writing data, pass only the tags you need: on creation, the other tags are set to null; on update, they keep their current values. Each tag is a string of up to 255 characters.
|
Name |
Description |
|
source |
Ad platform, the |
|
medium |
Traffic type, the |
|
campaign |
Ad campaign, the |
|
content |
Ad content, the |
|
term |
Keyword, the |
Fields Linking to Other Types
The related<type code>Id and related<type code> fields appear when Bitrix24 has a link configured in which the company is subordinate to an SPA. For each parent SPA, the company has a pair of fields:
related<type code>Id— ID of the parent item, for example,relatedSmartProcess177Idfor the SPA withentityTypeId = 177related<type code>— the parent item as an object of type CRM item, for example,relatedSmartProcess177
The field title in the crm.company.field.list response matches the name of the parent SPA, for example, "Equipment purchase". The method checks that an item with the passed ID exists. If there is no such item, the method returns the error 'Field value is not one of the possible values'.
The set of these fields depends on the links configured in Bitrix24. The current list is returned by the crm.company.field.list method.
Related Objects
A related object is requested in select by the field name without the Id suffix: assignedBy, industry, contacts. The whole object name returns all of its fields, and a dot-notation path returns only the selected ones, for example, ["type.name", "assignedBy.firstName"]. The path supports one level of nesting: the method does not accept contact.createdBy.firstName.
A linked CRM item — contact, contacts, lead, related<type code> — returns only id when requested by its whole name. Request the other item fields using dot notation. Dot notation gives access to the fields of the CRM item object and to any fields of the linked item's type, for example, ["contacts.title", "contacts.phone", "contact.post"]. Contact fields are described in the Contact Fields in REST 3.0 article.
If a link is not set, the object is returned as null, and an array of objects, for example, observers or contacts, is returned as an empty array.
Employee Object
Fields createdBy, updatedBy, lastActivityBy, assignedBy, observers.
|
Name |
Description |
|
id |
User ID |
|
firstName |
First name |
|
lastName |
Last name |
|
personalGender |
Gender: |
|
url |
Relative link to the user profile, for example, |
|
personalPhoto |
Link to the user photo. If there is no photo, |
CRM Item Object
Fields contact, contacts, lead, related<type code>.
|
Name |
Description |
|
id |
Item ID |
|
entityTypeId |
Object type ID, for example, |
|
canRead |
Whether the current user can view the item |
|
title |
Item title. For a contact, the last name, first name, and middle name |
|
url |
Relative link to the item card, for example, |
Reference List Value Object
Fields type, industry, employees.
|
Name |
Description |
|
id |
Value ID, for example, |
|
name |
Value name, for example, |
|
sort |
Sort order |
CRM Form Object
Field webform.
|
Name |
Description |
|
id |
CRM form ID |
|
name |
CRM form name |
Last Communication Object
Field lastCommunication. If there has been no communication of a given kind, the corresponding field is null.
|
Name |
Description |
|
communicationTime |
Date and time of the last communication of any kind |
|
callTime |
Date and time of the last call |
|
emailTime |
Date and time of the last email |
|
imolTime |
Date and time of the last message in an open channel |
|
webformTime |
Date and time the CRM form was last submitted |
Currency Object
Field currency.
|
Name |
Description |
|
id |
Currency code, for example, |
|
fullName |
Currency name |
|
formatString |
Amount display template. The |
|
decPoint |
Decimal separator |
|
thousandsSep |
Thousands separator. May be returned as an HTML entity, for example, |
|
decimals |
Number of decimal places |
|
hideZero |
Whether to hide insignificant trailing zeros in the fractional part |
|
amount |
Exchange rate relative to the base currency |
|
amountCount |
Number of currency units the exchange rate applies to |
|
base |
Base currency: |
|
sort |
Sort order |
|
numericCode |
Numeric currency code, for example, |
|
languageId |
Language for which the name and format are set |
|
createdTime |
Date and time the currency was created |
|
updatedTime |
Date and time the currency was updated |
|
createdById |
ID of the user who created the currency |
|
updatedById |
ID of the user who updated the currency |
Custom Fields
Custom company fields are named UF_CRM_<code>, for example, UF_CRM_1687188367. They are passed and requested by name in the same way as standard fields. The list of custom company fields is returned by the crm.company.field.custom.list method. My companies have the same fields.
The value of a "Money" field is passed as an object {"sum": 150.5, "currencyId": "EUR"}. A string such as 150.5|EUR is not accepted: the method returns the error 'This request requires data type "MoneyDto" in field "UF_CRM_…"'.
Each custom field has a paired UF_CRM_…_data field, which is read-only and requested in select. It contains the value in several representations:
value— the value in the same format as in the field itselfrawValue— the value in the storage format, for example,150.5|EURfor a "Money" fieldformattedValue— the value for display to the user:150.50 €for money, the employee name for a "Link to employee" fieldextra— additional data: for money,amount,currencyId, andcurrencyFullName; for an employee, the fields of the employee object. For a string, number, and date,null
For a multiple custom field, UF_CRM_…_data is an array of such objects.