> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cisisk.projects.bernardopinto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Extensions

> Extension CRUD — create, read, update, delete phone extensions

All extension endpoints require level 0 permission and a Bearer token.

### Writable fields

| Field               | Type    | Required | Default |
| ------------------- | ------- | -------- | ------- |
| type                | string  | yes      | —       |
| extension           | string  | yes      | —       |
| name                | string  | yes      | —       |
| password            | string  | yes      | —       |
| description         | string  | no       | `null`  |
| voicemail           | boolean | no       | `false` |
| voicemail\_passcode | string  | no       | `null`  |
| is\_active          | boolean | no       | `true`  |

`type` must be one of: `chan_sccp`, `chan_sip`, `chan_pjsip`, `custom`.

***

## List extensions

```
GET /api/v1/extensions
```

```json theme={null}
{
  "success": true,
  "message": "3 extension(s) found",
  "data": [
    {
      "uuid": "550e8400-e29b-41d4-a716-446655440000",
      "type": "chan_sip",
      "extension": "100",
      "name": "Reception",
      "description": "Main reception desk",
      "password": null,
      "voicemail": true,
      "voicemail_passcode": "1234",
      "is_active": true,
      "created_at": "2026-06-28T12:00:00.000Z",
      "created_by": null,
      "updated_at": "2026-06-28T12:00:00.000Z",
      "updated_by": null,
      "created_ip": "::1",
      "updated_ip": "::1"
    }
  ],
  "metadata": {}
}
```

***

## Get extension

```
GET /api/v1/extensions/{uuid}
```

```json theme={null}
{
  "success": true,
  "message": "Extension found",
  "data": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "type": "chan_sip",
    "extension": "100",
    "name": "Reception",
    "description": "Main reception desk",
    "password": null,
    "voicemail": true,
    "voicemail_passcode": "1234",
    "is_active": true,
    "created_at": "2026-06-28T12:00:00.000Z",
    "created_by": null,
    "updated_at": "2026-06-28T12:00:00.000Z",
    "updated_by": null,
    "created_ip": "::1",
    "updated_ip": "::1"
  },
  "metadata": {}
}
```

***

## Create extension

```
POST /api/v1/extensions
```

```json theme={null}
{
  "type": "chan_pjsip",
  "extension": "200",
  "name": "Sales",
  "description": "Sales team line",
  "password": "extPass123",
  "voicemail": true,
  "voicemail_passcode": "4321",
  "is_active": true
}
```

```json theme={null}
{
  "success": true,
  "message": "Extension created",
  "data": {
    "uuid": "660e8400-e29b-41d4-a716-446655440001",
    "type": "chan_pjsip",
    "extension": "200",
    "name": "Sales",
    "description": "Sales team line",
    "password": null,
    "voicemail": true,
    "voicemail_passcode": "4321",
    "is_active": true,
    "created_at": "2026-06-28T12:00:00.000Z",
    "created_by": null,
    "updated_at": "2026-06-28T12:00:00.000Z",
    "updated_by": null,
    "created_ip": "::1",
    "updated_ip": "::1"
  },
  "metadata": {}
}
```

***

## Update extension

Any subset of writable fields.

```
PUT /api/v1/extensions/{uuid}
```

```json theme={null}
{
  "name": "Sales Hotline",
  "voicemail": false,
  "voicemail_passcode": null
}
```

```json theme={null}
{
  "success": true,
  "message": "Extension updated",
  "data": {
    "uuid": "660e8400-e29b-41d4-a716-446655440001",
    "type": "chan_pjsip",
    "extension": "200",
    "name": "Sales Hotline",
    "description": "Sales team line",
    "password": null,
    "voicemail": false,
    "voicemail_passcode": null,
    "is_active": true,
    "created_at": "2026-06-28T12:00:00.000Z",
    "created_by": null,
    "updated_at": "2026-06-28T12:00:00.000Z",
    "updated_by": null,
    "created_ip": "::1",
    "updated_ip": "::1"
  },
  "metadata": {}
}
```

***

## Delete extension

```
DELETE /api/v1/extensions/{uuid}
```

```json theme={null}
{
  "success": true,
  "message": "Extension deleted",
  "data": null,
  "metadata": {}
}
```
