For AI agents: markdown of this page — /docs-content-en/entities/users/fields.md documentation index — /llms.txt

Employee fields

GET /v1/users/fields

Returns the full list of fields for the "employee" entity, including the Bitrix24 account's user (UF_*) fields.

Every field is described by the type and readonly keys. Schema fields additionally carry a label and a description, and gender (personalGender) and account type (userType) carry an enum of allowed values, each value with its own label. Gender also carries nullable: true: when the employee has not filled it in, the response returns null — the OpenAPI schema says the same, declaring the field type as ["string", "null"].

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/users/fields" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/users/fields" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/users/fields', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data } = await res.json()
console.log('Fields:', Object.keys(data.fields).length)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/users/fields', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { success, data } = await res.json()

Response fields

The label and description field captions are returned in English, while the ones the platform takes straight from the Bitrix24 account come in the account language. Request headers do not switch the language.

Field Type Description
Fieldsuccess Typeboolean DescriptionAlways true on success
Fielddata Typeobject DescriptionThe employee field schema and the operations available for employees. Its keys are in the rows below
Fielddata.fields Typeobject DescriptionThe employee field schema: field name → an object with type, readonly and label. Some fields also carry description, nullable, enum and items. The standard fields are listed below. The work-details fields and the UF_* user fields of this Bitrix24 account come in addition to them
Fielddata.batch Typearray DescriptionEmployee write operations available in batch calls: create, update
Fielddata.include Typearray DescriptionThe names the include parameter accepts: department
Fielddata.relations Typeobject DescriptionEmployee relations: department covers the departments from departmentId. See List departments
Fielddata.aggregatable Typearray DescriptionStandard fields allowed in the aggregation groupBy: active, isAdmin, isOnline, departmentId, workPosition, personalGender, personalCity

Standard employee fields

Each row is a key of the data.fields object.

Field Bitrix24 Type RO Description
Fieldid Bitrix24ID Typenumber ROyes DescriptionEmployee identifier
Fieldname Bitrix24NAME Typestring RO DescriptionFirst name
FieldlastName Bitrix24LAST_NAME Typestring RO DescriptionLast name
FieldsecondName Bitrix24SECOND_NAME Typestring RO DescriptionMiddle name
Fieldemail Bitrix24EMAIL Typestring RO DescriptionEmail — required on creation, must be unique
Fieldactive Bitrix24ACTIVE Typeboolean RO DescriptionActivity flag (true — active, false — deactivated)
FieldworkPosition Bitrix24WORK_POSITION Typestring RO DescriptionPosition
FieldworkPhone Bitrix24WORK_PHONE Typestring RO DescriptionWork phone
FieldpersonalPhone Bitrix24PERSONAL_PHONE Typestring RO DescriptionPersonal phone
FieldpersonalMobile Bitrix24PERSONAL_MOBILE Typestring RO DescriptionMobile phone
FieldpersonalBirthday Bitrix24PERSONAL_BIRTHDAY Typestring RO DescriptionDate of birth (ISO 8601 format)
FieldpersonalGender Bitrix24PERSONAL_GENDER Typestring RO DescriptionGender: M — male, F — female. The allowed values are returned in enum. When the employee has not filled it in — null
FieldpersonalCity Bitrix24PERSONAL_CITY Typestring RO DescriptionCity
FieldpersonalPhoto Bitrix24PERSONAL_PHOTO Typestring RO DescriptionOn read — the photo URL. On write — the file itself: an array [file name, base64] on POST /v1/users and PATCH /v1/users/:id. For details and unsupported input formats, see the "Update employee" page
FielddepartmentId Bitrix24UF_DEPARTMENT Typenumber[] RO DescriptionArray of department IDs. List: GET /v1/departments
FieldxmlId Bitrix24XML_ID Typestring RO DescriptionExternal identifier for integrations
FieldisAdmin Bitrix24IS_ADMIN Typeboolean ROyes DescriptionBitrix24 account administrator flag, tri-state: true, false or null. Populated only on GET /v1/users/me, unavailable on GET /v1/users/:id and the list
FieldisOnline Bitrix24IS_ONLINE Typeboolean ROyes DescriptionThe employee is currently online
FielddateRegister Bitrix24DATE_REGISTER Typedatetime ROyes DescriptionDate the employee registered in the Bitrix24 account
FieldlastLogin Bitrix24LAST_LOGIN Typedatetime ROyes DescriptionLast login date
FieldlastActivityDate Bitrix24LAST_ACTIVITY_DATE Typedatetime ROyes DescriptionLast activity date
FieldtimeZone Bitrix24TIME_ZONE Typestring RO DescriptionThe employee's time zone. Example: "UTC"
Fieldtitle Bitrix24TITLE Typestring RO DescriptionSalutation / title
FieldpersonalWww Bitrix24PERSONAL_WWW Typestring RO DescriptionPersonal website
FieldpersonalProfession Bitrix24PERSONAL_PROFESSION Typestring RO DescriptionProfession
FieldpersonalIcq Bitrix24PERSONAL_ICQ Typestring RO DescriptionICQ (legacy Bitrix24 field)
FieldpersonalFax Bitrix24PERSONAL_FAX Typestring RO DescriptionFax
FieldpersonalPager Bitrix24PERSONAL_PAGER Typestring RO DescriptionPager
FieldpersonalStreet Bitrix24PERSONAL_STREET Typestring RO DescriptionStreet
FielduserType Bitrix24USER_TYPE Typestring ROyes DescriptionAccount type: "employee" — staff member, "extranet" — external. The list of values arrives in enum. The employee list hides mail users, chatbots, Open Channel users and Replica records, so a response carries employee or extranet. The value "email" (mail user) is a filter value only — Bitrix24 documents it among the accepted values of the USER_TYPE filter, but it does not appear in a response, because the method excludes such users. The field does not arrive in the GET /v1/users/me response
FieldtimestampX Bitrix24TIMESTAMP_X Typedatetime ROyes DescriptionTimestamp of the record's last change in Bitrix24. For some users it is returned as an empty object {}

Work-details fields (WORK_*, some PERSONAL_*) are returned under their original Bitrix24 names in UPPER_SNAKE_CASE — Bitrix24 supplies their labels itself, localized to the language of the Bitrix24 account. Ten of them have no label in Bitrix24 at all (WORK_FAX, WORK_PAGER, WORK_STREET, WORK_MAILBOX, WORK_STATE, WORK_ZIP, WORK_COUNTRY, WORK_PROFILE, WORK_LOGO, WORK_NOTES) — the field name used to arrive in place of a label, and Vibecode now supplies the label and the description. When the Bitrix24 account does label such a field itself, its own label is kept unchanged. An empty work-details field may be absent from a read response entirely — check for the presence of the key, not for an empty string.

User fields (UF_*) are also returned in responses and accepted on creation or update. In the response, a user field of the "list" type (enumeration) carries an items array of possible values (ID, VALUE, DEF, XML_ID) — provided the key has the user.userfield scope; without it the field is returned with its label but no items. For information on creating and editing employee fields, see Employee fields.

The field ufDepartment does not exist — the employee's department lives in departmentId, an array of department identifiers. The original Bitrix24 name UF_DEPARTMENT is accepted in select as an alias and projects the canonical departmentId. An unknown name in select is not rejected — the response is extended with an UNKNOWN_SELECT_FIELD warning in meta.warnings.

The response elements of departmentId are numbers (number[]): OpenAPI describes them as number, while this endpoint and fieldsDetailed in /v1/guide publish readItemSchema: { "type": "number" }. This describes responses only: UserInput.departmentId retains its previous string[] schema, and accepted values and their order do not change.

Response example

JSON
{
  "success": true,
  "data": {
    "fields": {
      "name": {
        "type": "string",
        "readonly": false,
        "label": "First name",
        "description": "Employee's first name."
      },
      "timestampX": {
        "type": "datetime",
        "readonly": true,
        "label": "Modified date",
        "description": "Timestamp of the last modification to the employee record in Bitrix24."
      },
      "personalGender": {
        "type": "string",
        "readonly": false,
        "nullable": true,
        "label": "Gender",
        "description": "Employee's gender. Comes back as null when the employee has not filled it in.",
        "enum": [
          { "value": "M", "label": "Male" },
          { "value": "F", "label": "Female" }
        ]
      },
      "WORK_CITY": { "type": "string", "readonly": false, "label": "Work city" },
      "WORK_FAX": {
        "type": "string",
        "readonly": false,
        "label": "Company fax",
        "description": "Fax number of the company in the employee's work details."
      },
      "UF_USR_STATUS": {
        "type": "enumeration",
        "readonly": false,
        "label": "Status",
        "items": [
          { "ID": "1", "VALUE": "New", "DEF": "N", "XML_ID": "x1" },
          { "ID": "2", "VALUE": "In progress", "DEF": "Y", "XML_ID": "x2" }
        ]
      }
    },
    "relations": {
      "department": { "type": "many", "entity": "departments", "operations": [] }
    },
    "include": ["department"],
    "aggregatable": ["active", "isAdmin", "isOnline", "departmentId", "workPosition", "personalGender", "personalCity"],
    "batch": ["create", "update"]
  }
}

One field of each kind is shown. The actual response contains 30+ schema fields in camelCase (each with a label and a description), Bitrix24 work-details fields in UPPER_SNAKE_CASE (WORK_*, some PERSONAL_*), and UF fields of the specific Bitrix24 account. The original Bitrix24 name of a schema field is not duplicated in the response: UF_DEPARTMENT arrives as departmentId, NAME as name.

Error response example

403 — no scope:

JSON
{
  "success": false,
  "error": {
    "code": "SCOPE_DENIED",
    "message": "This endpoint requires 'user' scope"
  }
}

Errors

HTTP Code Description
HTTP401 CodeTOKEN_MISSING DescriptionThe API key has no configured tokens
HTTP403 CodeSCOPE_DENIED DescriptionThe API key lacks the user scope
HTTP429 CodeRATE_LIMITED DescriptionRate limit exceeded: 300 requests per minute per portal. All API keys of the portal share one limit. The current limit is returned in the x-ratelimit-limit header. Retry after the delay in the Retry-After header

For the full list of common API errors, see Errors.

See also