Skip to main content
All extension endpoints require level 0 permission and a Bearer token.

Writable fields

FieldTypeRequiredDefault
typestringyes
extensionstringyes
namestringyes
passwordstringyes
descriptionstringnonull
voicemailbooleannofalse
voicemail_passcodestringnonull
is_activebooleannotrue
type must be one of: chan_sccp, chan_sip, chan_pjsip, custom.

List extensions

GET /api/v1/extensions
{
  "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}
{
  "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
{
  "type": "chan_pjsip",
  "extension": "200",
  "name": "Sales",
  "description": "Sales team line",
  "password": "extPass123",
  "voicemail": true,
  "voicemail_passcode": "4321",
  "is_active": true
}
{
  "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}
{
  "name": "Sales Hotline",
  "voicemail": false,
  "voicemail_passcode": 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}
{
  "success": true,
  "message": "Extension deleted",
  "data": null,
  "metadata": {}
}