## List CRM dictionary values

`GET /v1/crm-dictionaries/:dictionary`

Returns one page of values from a CRM dictionary for activities, contact details, or stage semantics.

> **Availability.** An administrator must enable this feature. It requires a CRM update after version 26.2200.0. The release version for that update has not yet been announced. If unavailable, the API returns `422 METHOD_NOT_YET_AVAILABLE` with `error.release`.

## Parameters

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `dictionary` (path) | string | yes | — | `activity-providers`, `email-types`, `phone-types`, `im-types`, `web-types`, `stage-semantics` |
| `limit` (query) | integer | no | `50` | Page size, from 1 to 1000 |
| `offset` (query) | integer | no | `0` | Nonnegative number of records to skip |

To request the next page, increase `offset` by `limit`. The response contains one page without a total record count.

## Examples

### curl — personal key

```bash
curl -X GET "https://vibecode.bitrix24.com/v1/crm-dictionaries/email-types?limit=2" \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth application

```bash
curl -X GET "https://vibecode.bitrix24.com/v1/crm-dictionaries/email-types?limit=2" \
  -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/crm-dictionaries/email-types?limit=2', {
  method: 'GET',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const result = await res.json()
console.log(result)
```

### JavaScript — OAuth application

```javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/crm-dictionaries/email-types?limit=2', {
  method: 'GET',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const result = await res.json()
console.log(result)
```

## Response fields

| Field | Type | Description |
|---|---|---|
| `success` | boolean | `true` |
| `data` | array | Dictionary values |
| `data[].id` | string | ID for [Get a dictionary value](/docs/entities/crm-v3-dictionaries/get) |
| `data[].name` | string \| null | Name. Communication types may return `null` |
| `data[].nameShort` | string \| null | Short name, for communication types only |
| `data[].isDeprecated` | boolean | Whether the communication type is deprecated |
| `data[].isAvailable` | boolean | Whether the activity provider is available, for `activity-providers` only |
| `data[].isActive` | boolean | Whether the activity provider is active |
| `data[].types` | array | Activity types supported by the provider |
| `data[].types[].providerTypeId` | string | Activity type ID from this array |
| `data[].types[].name` | string | Activity type name |
| `data[].types[].directions` | object | Directions for this activity type |
| `data[].defaultTypeId` | string \| null | Default activity type, from `types[].providerTypeId` |
| `data[].capabilities` | string[] | Activity provider capabilities |
| `meta.limit` | integer | Requested page size |
| `meta.offset` | integer | Requested offset |

`types`, `defaultTypeId`, `capabilities`, `isAvailable`, and `isActive` apply only to `activity-providers`. Each `stage-semantics` item contains `id` and `name`.

## Response example

```json
{
  "success": true,
  "data": [
    {
      "id": "WORK",
      "name": "Work email",
      "nameShort": "Work",
      "isDeprecated": false
    },
    {
      "id": "HOME",
      "name": "Personal email",
      "nameShort": "Personal",
      "isDeprecated": false
    }
  ],
  "meta": {
    "limit": 2,
    "offset": 0
  }
}
```

## Error response example

400: invalid page size:

```json
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "limit must be positive and offset nonnegative safe integers"
  }
}
```

## Errors

| HTTP | Code | Description |
|---|---|---|
| 400 | `INVALID_PARAMS` | A parameter has an invalid type or shape |
| 400 | `UNKNOWN_FILTER_FIELD` | An unknown or repeated query parameter |
| 401 | `MISSING_API_KEY` | The API key is missing |
| 401 | `TOKEN_MISSING` | The key has no Bitrix24 credentials |
| 403 | `SCOPE_DENIED` | The key lacks the `crm` scope |
| 403 | `BITRIX_ACCESS_DENIED` | Bitrix24 denied permission for this operation |
| 422 | `METHOD_NOT_YET_AVAILABLE` | The feature is disabled or unavailable on this portal. `error.release` identifies the required update |
| 422 | `BITRIX_ERROR` | Bitrix24 refused the request. See `error.message` |
| 502 | `BITRIX_UNAVAILABLE` | Bitrix24 returned an invalid response |

For shared API errors, see [Errors](/docs/errors).

## See also

- [Get a dictionary value](/docs/entities/crm-v3-dictionaries/get)
- [CRM dictionaries and stage settings](/docs/entities/crm-v3-dictionaries)
