
## Field types

`GET /v1/lists/:iblockId/field-types`

Returns the reference of field types: the type code and its display name. These codes are set when creating a list field.

A code from the reference is passed in the `TYPE` field when creating a field via [Create field](./create.md).

## Parameters

| Parameter | Type | Req. | Description |
|----------|-----|:-----:|---------|
| `iblockId` (path) | string | yes | List identifier. Numeric `IBLOCK_ID` or symbolic `IBLOCK_CODE`. List — `GET /v1/lists` |
| `iblockTypeId` (query) | string | no | Infoblock type. Values:<br>`lists` — regular lists, default<br>`lists_socnet` — workgroup lists<br>`bitrix_processes` — service workflows |
| `fieldId` (query) | string | no | Limits the selection to a single field. Values — in [List fields](./list.md), key `FIELD_ID` |

## Examples

### curl — personal key

```bash
curl https://vibecode.bitrix24.com/v1/lists/121/field-types \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth application

```bash
curl https://vibecode.bitrix24.com/v1/lists/121/field-types \
  -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/lists/121/field-types', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await res.json()
console.log('«String» type code:', data['S'])
```

### JavaScript — OAuth application

```javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/lists/121/field-types', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})
const { data } = await res.json()
```

## Response fields

The `data` field is a flat reference. The key is the field type code, the value is the display name of the type.

| Field | Type | Description |
|------|-----|---------|
| `success` | boolean | Always `true` on success |
| `data` | object | Type reference, key — field type code, value — display name |

Composite codes are written with a colon — `S:Date`, `E:EList`, `S:Money`. It is the key-code that is passed in the `TYPE` field when creating a field.

## Response example

```json
{
  "success": true,
  "data": {
    "SORT": "Sort",
    "ACTIVE_FROM": "Activity start",
    "ACTIVE_TO": "Activity end",
    "PREVIEW_PICTURE": "Preview picture",
    "PREVIEW_TEXT": "Preview text",
    "DETAIL_PICTURE": "Detail picture",
    "DETAIL_TEXT": "Detail text",
    "CREATED_BY": "Created by",
    "TIMESTAMP_X": "Date modified",
    "S": "String",
    "N": "Number",
    "L": "List",
    "F": "File",
    "G": "Section binding",
    "E": "Element binding",
    "S:Date": "Date",
    "S:DateTime": "Date/Time",
    "S:HTML": "HTML/text",
    "E:EList": "Element binding as a list",
    "N:Sequence": "Counter",
    "S:ECrm": "CRM element binding",
    "S:Money": "Money",
    "S:DiskFile": "File (Disk)",
    "S:map_yandex": "Yandex Map binding",
    "S:employee": "Employee binding"
  }
}
```

## Error response example

403 — no permissions for the list, or no list with such an identifier exists:

```json
{
  "success": false,
  "error": {
    "code": "BITRIX_ACCESS_DENIED",
    "message": "No permission to view or edit the list."
  }
}
```

## Errors

| HTTP | Code | Description |
|------|-----|---------|
| 400 | `INVALID_IBLOCK_TYPE` | `iblockTypeId` is not one of the allowed types |
| 403 | `BITRIX_ACCESS_DENIED` | No permission to view the list, or a list with the given identifier does not exist |
| 403 | `SCOPE_DENIED` | The key is missing the `lists` scope |
| 401 | `TOKEN_MISSING` | The key has no configured tokens |
| 409 | `LISTS_MODULE_NOT_ENABLED` | The lists module is not enabled on the portal |

Full list of common API errors — [Errors](/docs/errors).

## Known specifics

**The reference combines the type codes of new fields and the codes of system fields.** Besides the codes suitable for `TYPE` when creating a field (`S`, `N`, `L`, `F`, `G`, `E` and the composite `S:Date`, `S:Money`, `E:EList`, and others), the response includes codes of the list's system fields — `SORT`, `ACTIVE_FROM`, `CREATED_BY`, `TIMESTAMP_X`. When creating a field, take a field type code, not a system field code.

## See also

- [Create field](/docs/lists/fields/create)
- [List fields](/docs/lists/fields/list)
- [Get field](/docs/lists/fields/get)
- [List fields](/docs/lists/fields)
