[{"data":1,"prerenderedAt":7},["ShallowReactive",2],{"docs-userfields\u002Fusers\u002Flist":3,"docs-tabs-userfields\u002Fusers\u002Flist":6},{"content":4,"lastmod":5},"\n## List employee fields\n\n`GET \u002Fv1\u002Fuserfields\u002Fusers`\n\nReturns the list of employee user fields. Supports filtering by field type and by name.\n\n## Parameters\n\n| Parameter | Type | Required | Description |\n|----------|-----|:-----:|---------|\n| `userTypeId` (query) | string | no | Filter by field type. Allowed values — [Field types](\u002Fdocs\u002Fuserfields\u002Fusers#field-types). Example: `?userTypeId=enumeration` |\n| `fieldName` (query) | string | no | Filter by the full field name with the `UF_USR_` prefix. A name without the prefix matches nothing — the response comes back with an empty `data`. Example: `?fieldName=UF_USR_BADGE_NO` |\n\nThe result is ordered by the `sort` field ascending. A sort parameter is not accepted.\n\n## Examples\n\n### curl — personal key\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fuserfields\u002Fusers?userTypeId=enumeration\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth application\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fuserfields\u002Fusers?userTypeId=enumeration\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — personal key\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fuserfields\u002Fusers?userTypeId=enumeration',\n  {\n    headers: { 'X-Api-Key': 'YOUR_API_KEY' },\n  }\n)\nconst { success, data, meta } = await res.json()\nconsole.log(`List-type fields: ${meta.total}`)\n```\n\n### JavaScript — OAuth application\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fuserfields\u002Fusers?userTypeId=enumeration',\n  {\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n    },\n  }\n)\nconst { success, data, meta } = await res.json()\n```\n\n## Response fields\n\n| Field | Type | Description |\n|------|-----|---------|\n| `success` | boolean | Always `true` on success |\n| `data` | array | Array of employee fields. An item's property set matches the [field card](\u002Fdocs\u002Fuserfields\u002Fusers\u002Fget): `id`, `entityId`, `fieldName`, `userTypeId`, `xmlId`, `sort`, flags, `settings`, and for an `enumeration` field — `list` with the options |\n| `meta.total` | number | Total number of fields matching the filter |\n\n## Response example\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 4925,\n      \"entityId\": \"USER\",\n      \"fieldName\": \"UF_USR_1685540881093\",\n      \"userTypeId\": \"enumeration\",\n      \"xmlId\": null,\n      \"sort\": \"100\",\n      \"multiple\": \"N\",\n      \"mandatory\": \"N\",\n      \"showFilter\": \"E\",\n      \"showInList\": \"Y\",\n      \"editInList\": \"Y\",\n      \"isSearchable\": \"N\",\n      \"settings\": {\n        \"DISPLAY\": \"UI\",\n        \"LIST_HEIGHT\": 1,\n        \"CAPTION_NO_VALUE\": \"\",\n        \"SHOW_NO_VALUE\": \"Y\"\n      },\n      \"list\": [\n        {\n          \"ID\": \"1669\",\n          \"SORT\": \"0\",\n          \"VALUE\": \"First\",\n          \"DEF\": \"N\",\n          \"XML_ID\": \"be318f13536d5268018638e2520a4684\"\n        },\n        {\n          \"ID\": \"1671\",\n          \"SORT\": \"100\",\n          \"VALUE\": \"Second\",\n          \"DEF\": \"N\",\n          \"XML_ID\": \"8b24b8eca61a98bf8e240a26f943d839\"\n        },\n        {\n          \"ID\": \"1673\",\n          \"SORT\": \"200\",\n          \"VALUE\": \"Third\",\n          \"DEF\": \"N\",\n          \"XML_ID\": \"b49345c332ddd62d584f8d0fb4aebcec\"\n        }\n      ]\n    },\n    {\n      \"id\": 6007923,\n      \"entityId\": \"USER\",\n      \"fieldName\": \"UF_USR_SHIFT\",\n      \"userTypeId\": \"enumeration\",\n      \"xmlId\": null,\n      \"sort\": \"200\",\n      \"multiple\": \"N\",\n      \"mandatory\": \"N\",\n      \"showFilter\": \"E\",\n      \"showInList\": \"Y\",\n      \"editInList\": \"Y\",\n      \"isSearchable\": \"N\",\n      \"settings\": {\n        \"DISPLAY\": \"LIST\",\n        \"LIST_HEIGHT\": 1,\n        \"CAPTION_NO_VALUE\": \"\",\n        \"SHOW_NO_VALUE\": \"Y\"\n      },\n      \"list\": [\n        {\n          \"ID\": \"3967\",\n          \"SORT\": \"10\",\n          \"VALUE\": \"Morning\",\n          \"DEF\": \"N\",\n          \"XML_ID\": \"46e4bae66329c39fafcbaef4262d490b\"\n        },\n        {\n          \"ID\": \"3969\",\n          \"SORT\": \"20\",\n          \"VALUE\": \"Evening\",\n          \"DEF\": \"N\",\n          \"XML_ID\": \"3351c3d103ce376358db5c39019af5c4\"\n        },\n        {\n          \"ID\": \"3971\",\n          \"SORT\": \"30\",\n          \"VALUE\": \"Night\",\n          \"DEF\": \"N\",\n          \"XML_ID\": \"160aa32209dc24bfb699010bf2df174a\"\n        }\n      ]\n    }\n  ],\n  \"meta\": {\n    \"total\": 2\n  }\n}\n```\n\n## Error response example\n\n403 — the key lacks the `user.userfield` scope:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'user.userfield' scope\"\n  }\n}\n```\n\n## Errors\n\n| HTTP | Code | Description |\n|------|-----|---------|\n| 403 | `SCOPE_DENIED` | The API key does not have the `user.userfield` scope — the `user` scope is not enough |\n| 401 | `MISSING_API_KEY` | The `X-Api-Key` header is missing |\n| 401 | `TOKEN_MISSING` | The API key has no configured tokens |\n\nFull list of common API errors — [Errors](\u002Fdocs\u002Ferrors).\n\n## Known specifics\n\n**Labels are absent from the list.** A list item does not contain `editFormLabel`, `listColumnLabel`, `listFilterLabel`, `errorMessage` or `helpMessage` — and the field card does not return them either. Read the field label from the `label` field of the employee schema [`GET \u002Fv1\u002Fusers\u002Ffields`](\u002Fdocs\u002Fentities\u002Fusers\u002Ffields).\n\n**No pagination.** The endpoint returns all employee fields without splitting them into pages. `meta.total` reflects the total number of fields in the response.\n\n**An enabled filter reads as `\"E\"`.** In the example above, `showFilter` comes back as `\"E\"` rather than `\"Y\"` — this is how Bitrix24 stores the value. A disabled filter arrives as `\"N\"`.\n\n## See also\n\n- [Get employee field](\u002Fdocs\u002Fuserfields\u002Fusers\u002Fget)\n- [Create employee field](\u002Fdocs\u002Fuserfields\u002Fusers\u002Fcreate)\n- [Employee fields](\u002Fdocs\u002Fuserfields\u002Fusers)\n- [Employee field schema](\u002Fdocs\u002Fentities\u002Fusers\u002Ffields)\n- [User fields](\u002Fdocs\u002Fuserfields)\n","2026-10-09",{},1794739618175]