Skip to content

SIP / Trunks API

Open API playground All endpoints

SIP trunks connect Teler to your upstream carrier or PBX. Create, configure, and manage your trunks, or inspect which virtual numbers are assigned to each one.

List SIP trunks

GET/api/v1/sip/trunks

Auth: x-api-key header

Parameters

NameInTypeDescription
limitqueryinteger
searchquerystring | null
statusqueryarray of "active" | "inactive" | null
cursor_afterquerystring | null
cursor_beforequerystring | null

Responses

StatusDescription
200

Successful Response

422

Validation Error

Example response (200)
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "domain_name": "string",
      "account_id": "string",
      "channel_limit": 0,
      "cps_limit": 0,
      "recording_enabled": true,
      "secure": true,
      "transport": "tls",
      "is_active": true,
      "authentication_type": "credential",
      "auth_ip_addresses": [],
      "auth_credential_usernames": [],
      "ip_acl_id": "string",
      "ip_acl_name": "string",
      "sip_route": {
        "name": "string",
        "sip_url": "string",
        "sip_user": "string"
      },
      "webhook_url": "uri",
      "webhook_api_version": "2025-08-01",
      "created_at": "date-time",
      "updated_at": "date-time",
      "secret_id": "string",
      "secret_name": "string"
    }
  ],
  "next_cursor": "string",
  "previous_cursor": "string",
  "has_more": false
}

Create a SIP trunk

POST/api/v1/sip/trunks

Auth: x-api-key header

Request body

namerequiredstring
domain_namerequiredstring
channel_limitinteger | null
recordingboolean | null
secureboolean | null
transport"tls" | "tcp" | "udp" | null

SIP transport for this trunk: tls, tcp, or udp. If omitted, it is derived from secure (secure=true→tls, else tcp). udp requires authentication_type = credential.

webhook_urlstring (uri) | null
authentication_typerequired"credential" | "IP"
auth_credentialobject | null
usernamerequiredstring

SIP authentication username

passwordrequiredstring

SIP authentication password

auth_addressesarray of object | null
namerequiredstring

Authentication address name

addressrequiredstring

IP or hostname for SIP auth

ip_acl_idstring | null

ID of an IP access control list (acl_...) to authorise against, as an alternative to auth_addresses. Provide exactly one of the two when authentication_type is IP.

inbound_routeobject | null
namerequiredstring

Route name

sip_urlrequiredstring

SIP destination URL or endpoint

sip_userstring | null

SIP user name

secret_idstring | null
webhook_api_version"2025-08-01" | "2026-06-01" | null
Example request
{
  "name": "string",
  "domain_name": "string",
  "channel_limit": 0,
  "recording": false,
  "secure": false,
  "transport": "tls",
  "webhook_url": "uri",
  "authentication_type": "credential",
  "auth_credential": {
    "username": "string",
    "password": "string"
  },
  "auth_addresses": [
    {
      "name": "string",
      "address": "string"
    }
  ],
  "ip_acl_id": "string",
  "inbound_route": {
    "name": "string",
    "sip_url": "string",
    "sip_user": "string"
  },
  "secret_id": "string",
  "webhook_api_version": "2025-08-01"
}

Responses

StatusDescription
201

Successful Response

422

Validation Error

Example response (201)
{
  "id": "string",
  "name": "string",
  "domain_name": "string",
  "account_id": "string",
  "channel_limit": 0,
  "cps_limit": 0,
  "recording_enabled": true,
  "secure": true,
  "transport": "tls",
  "is_active": true,
  "authentication_type": "credential",
  "auth_ip_addresses": [],
  "auth_credential_usernames": [],
  "ip_acl_id": "string",
  "ip_acl_name": "string",
  "sip_route": {
    "name": "string",
    "sip_url": "string",
    "sip_user": "string"
  },
  "webhook_url": "uri",
  "webhook_api_version": "2025-08-01",
  "created_at": "date-time",
  "updated_at": "date-time",
  "secret_id": "string",
  "secret_name": "string"
}

Retrieve a SIP trunk

GET/api/v1/sip/trunks/{trunk_id}

Auth: x-api-key header

Parameters

NameInTypeDescription
trunk_id requiredpathstring

Responses

StatusDescription
200

Successful Response

422

Validation Error

Example response (200)
{
  "id": "string",
  "name": "string",
  "domain_name": "string",
  "account_id": "string",
  "channel_limit": 0,
  "cps_limit": 0,
  "recording_enabled": true,
  "secure": true,
  "transport": "tls",
  "is_active": true,
  "authentication_type": "credential",
  "auth_ip_addresses": [],
  "auth_credential_usernames": [],
  "ip_acl_id": "string",
  "ip_acl_name": "string",
  "sip_route": {
    "name": "string",
    "sip_url": "string",
    "sip_user": "string"
  },
  "webhook_url": "uri",
  "webhook_api_version": "2025-08-01",
  "created_at": "date-time",
  "updated_at": "date-time",
  "secret_id": "string",
  "secret_name": "string"
}

Update a SIP trunk

PATCH/api/v1/sip/trunks/{trunk_id}

Auth: x-api-key header

Parameters

NameInTypeDescription
trunk_id requiredpathstring

Request body

namestring | null
channel_limitinteger | null
recordingboolean | null
secureboolean | null
transport"tls" | "tcp" | "udp" | null

SIP transport: tls, tcp, or udp. udp requires authentication_type = credential.

is_activeboolean | null
webhook_urlstring (uri) | null
webhook_api_version"2025-08-01" | "2026-06-01" | null
authentication_type"credential" | "IP" | null
auth_credentialobject | null
usernamerequiredstring

SIP authentication username

passwordrequiredstring

SIP authentication password

auth_addressesarray of object | null
namerequiredstring

Authentication address name

addressrequiredstring

IP or hostname for SIP auth

ip_acl_idstring | null

ID of an IP access control list (acl_...) to authorise against, as an alternative to auth_addresses. Supplying one switches the trunk to that mode and clears the other.

inbound_routeobject | null
namerequiredstring

Route name

sip_urlrequiredstring

SIP destination URL or endpoint

sip_userstring | null

SIP user name

secret_idstring | null
Example request
{
  "name": "string",
  "channel_limit": 0,
  "recording": true,
  "secure": true,
  "transport": "tls",
  "is_active": true,
  "webhook_url": "uri",
  "webhook_api_version": "2025-08-01",
  "authentication_type": "credential",
  "auth_credential": {
    "username": "string",
    "password": "string"
  },
  "auth_addresses": [
    {
      "name": "string",
      "address": "string"
    }
  ],
  "ip_acl_id": "string",
  "inbound_route": {
    "name": "string",
    "sip_url": "string",
    "sip_user": "string"
  },
  "secret_id": "string"
}

Responses

StatusDescription
200

Successful Response

422

Validation Error

Example response (200)
{
  "id": "string",
  "name": "string",
  "domain_name": "string",
  "account_id": "string",
  "channel_limit": 0,
  "cps_limit": 0,
  "recording_enabled": true,
  "secure": true,
  "transport": "tls",
  "is_active": true,
  "authentication_type": "credential",
  "auth_ip_addresses": [],
  "auth_credential_usernames": [],
  "ip_acl_id": "string",
  "ip_acl_name": "string",
  "sip_route": {
    "name": "string",
    "sip_url": "string",
    "sip_user": "string"
  },
  "webhook_url": "uri",
  "webhook_api_version": "2025-08-01",
  "created_at": "date-time",
  "updated_at": "date-time",
  "secret_id": "string",
  "secret_name": "string"
}

Delete a SIP trunk

DELETE/api/v1/sip/trunks/{trunk_id}

Auth: x-api-key header

Parameters

NameInTypeDescription
trunk_id requiredpathstring

Responses

StatusDescription
200

Successful Response

422

Validation Error

Example response (200)
{
  "success": true,
  "message": "string"
}

List virtual numbers for a SIP trunk

GET/api/v1/sip/trunks/{trunk_id}/virtual-numbers

Auth: x-api-key header

Parameters

NameInTypeDescription
trunk_id requiredpathstring
limitqueryinteger
searchquerystring | null
locationqueryarray of string | null
cursor_afterquerystring | null
cursor_beforequerystring | null

Responses

StatusDescription
200

Successful Response

422

Validation Error

Example response (200)
{
  "data": [
    {
      "id": "string",
      "account_id": "string",
      "name": "string",
      "number": "string",
      "location": {
        "id": "string",
        "name": "string",
        "region_code": "string",
        "country_code": "string",
        "country_name": "string"
      },
      "voice_app": {
        "id": "string",
        "name": "string"
      },
      "sip_trunk": {
        "id": "string",
        "name": "string"
      }
    }
  ],
  "next_cursor": "string",
  "previous_cursor": "string",
  "has_more": false
}