
## Каталог типов полей

`GET /v1/items/:entityTypeId/userfields/types`

Возвращает список доступных типов пользовательских полей. Список одинаков для всех смарт-процессов и для CRM-сущностей.

## Параметры

| Параметр | Тип | Обяз. | Описание |
|----------|-----|:-----:|---------|
| `:entityTypeId` (path) | number | да | Идентификатор типа смарт-процесса. Источник: [`GET /v1/smart-processes`](/docs/entities/smart-processes) — поле `entityTypeId`. Значение не влияет на результат — используется только для проверки корректности пути |

## Примеры

### curl — личный ключ

```bash
curl "https://vibecode.bitrix24.tech/v1/items/174/userfields/types" \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth-приложение

```bash
curl "https://vibecode.bitrix24.tech/v1/items/174/userfields/types" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"
```

### JavaScript — личный ключ

```javascript
const res = await fetch(
  'https://vibecode.bitrix24.tech/v1/items/174/userfields/types',
  {
    headers: { 'X-Api-Key': 'YOUR_API_KEY' },
  }
)
const { success, data } = await res.json()
console.log(`Доступно типов: ${data.length}`)
```

### JavaScript — OAuth-приложение

```javascript
const res = await fetch(
  'https://vibecode.bitrix24.tech/v1/items/174/userfields/types',
  {
    headers: {
      'X-Api-Key': 'YOUR_APP_KEY',
      'Authorization': 'Bearer USER_SESSION_TOKEN',
    },
  }
)
const { success, data } = await res.json()
```

## Поля ответа

| Поле | Тип | Описание |
|------|-----|---------|
| `success` | boolean | Всегда `true` при успехе |
| `data` | array | Массив объектов типов полей |
| `data[].ID` | string | Идентификатор типа — используется как `userTypeId` в запросах на создание и фильтрации |
| `data[].title` | string | Русское название типа |

Полный список типов из ответа API:

| `ID` | `title` |
|------|---------|
| `string` | Строка |
| `integer` | Целое число |
| `double` | Число |
| `boolean` | Да/Нет |
| `enumeration` | Список |
| `datetime` | Дата/Время |
| `date` | Дата |
| `money` | Деньги |
| `url` | Ссылка |
| `address` | Адрес Google карты |
| `file` | Файл |
| `employee` | Привязка к пользователю |
| `crm_status` | Привязка к справочникам CRM |
| `iblock_section` | Привязка к разделам инф. блоков |
| `iblock_element` | Привязка к элементам инфоблоков |
| `crm` | Привязка к элементам CRM |

## Пример ответа

```json
{
  "success": true,
  "data": [
    { "ID": "string", "title": "Строка" },
    { "ID": "integer", "title": "Целое число" },
    { "ID": "double", "title": "Число" },
    { "ID": "boolean", "title": "Да/Нет" },
    { "ID": "enumeration", "title": "Список" },
    { "ID": "datetime", "title": "Дата/Время" },
    { "ID": "date", "title": "Дата" },
    { "ID": "money", "title": "Деньги" },
    { "ID": "url", "title": "Ссылка" },
    { "ID": "address", "title": "Адрес Google карты" },
    { "ID": "file", "title": "Файл" },
    { "ID": "employee", "title": "Привязка к пользователю" },
    { "ID": "crm_status", "title": "Привязка к справочникам CRM" },
    { "ID": "iblock_section", "title": "Привязка к разделам инф. блоков" },
    { "ID": "iblock_element", "title": "Привязка к элементам инфоблоков" },
    { "ID": "crm", "title": "Привязка к элементам CRM" }
  ]
}
```

## Пример ответа при ошибке

400 — некорректный `entityTypeId`:

```json
{
  "success": false,
  "error": {
    "code": "INVALID_ENTITY_TYPE_ID",
    "message": "entityTypeId must be a positive integer"
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|---------|
| 400 | `INVALID_ENTITY_TYPE_ID` | `:entityTypeId` не является положительным целым числом |
| 401 | `MISSING_API_KEY` | Отсутствует заголовок `X-Api-Key` |
| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |
| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |

Полный список общих ошибок API — [Ошибки](/docs/errors).

## Известные особенности

**Одинаковый результат для всех сущностей.** Список типов одинаков для смарт-процессов и для CRM-сущностей. Можно вызвать с любым допустимым `entityTypeId` — ответ будет идентичен. Значение параметра влияет только на проверку корректности пути.

**Не требует скоупа `userfieldconfig`.** В отличие от остальных эндпоинтов `/items/:entityTypeId/userfields*`, запрос типов работает только со скоупом `crm`.

## Смотрите также

- [Список полей смарт-процесса](/docs/userfields/smart-processes/list)
- [Создать поле](/docs/userfields/smart-processes/create)
- [Поля смарт-процессов](/docs/userfields/smart-processes)
- [Пользовательские поля](/docs/userfields)
