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

`GET /v1/userfields/:entity/types`

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

## Параметры

| Параметр | Тип | Обяз. | Описание |
|----------|-----|:-----:|---------|
| `:entity` (path) | string | да | Сущность: `deals`, `leads`, `contacts`, `companies`, `quotes`, `requisites`. Значение не влияет на результат — используется только для проверки наличия скоупа. |

## Примеры

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

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

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

```bash
curl "https://vibecode.bitrix24.tech/v1/userfields/deals/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/userfields/deals/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/userfields/deals/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 — неизвестная сущность:

```json
{
  "success": false,
  "error": {
    "code": "UNKNOWN_ENTITY",
    "message": "Unsupported entity \"foobar\". Supported: deals, leads, contacts, companies, quotes, requisites"
  }
}
```

## Ошибки

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

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

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

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

**Системные типы в полях.** В ответе [`GET /v1/userfields/:entity`](/docs/userfields/crm/list) могут встречаться поля с `userTypeId`, которые отсутствуют в этом каталоге, — например `resourcebooking`. Это типы, которые Битрикс24 создаёт для внутренних нужд.

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

- [Список полей сущности](/docs/userfields/crm/list)
- [Создать поле](/docs/userfields/crm/create)
- [Поля CRM-сущностей](/docs/userfields/crm)
- [Пользовательские поля](/docs/userfields)
