Programmable SIP API

The Programmable SIP API lets you create and configure Programmable SIP Domains in Vonage's platform.

Download OpenAPI Specification

Domains

Methods for managing SIP domains.

Create a PSIP domain

Create a new PSIP domain.

posthttps://api.nexmo.com/v1/psip/

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Request Body
Content Type
application/json

One Of
name
string
Required
Min5
Max32
examplemydomain

The customised SIP domain that will used in Programmable SIP: mydomain.sip-eu.nexmo.com.

application_id
string
Required
examplec49f3586-9b3b-458b-89fc-3c8beb58865c

Vonage Application ID to associate with the domain.

tls
string
Defaultoptional

Require TLS use in SIP connection. Optional allows customer to choose. Always will require it to always be used. Never will require it to never be used.

Must be one of:alwaysneveroptional
digest_auth
boolean
Defaultfalse

Allow definition of up to 200 users that can use Digest Authentication to access domain.

srtp
string
Defaultoptional

Require SRTP use in SIP connection. Optional allows customer to choose. Always will require it to always be used. Never will require it to never be used.

Must be one of:alwaysneveroptional
acl
array
Required

Access Control List of IPs that can make calls to domain. Can use CIDR notation to facilitate inclusion of IP ranges.

domain_type
string
Defaultapp
exampleapp

Type of domain. 'app' for PSIP application, 'trunk' for SIP trunking

Must be one of:apptrunk

Example Request

{
   "name": "mydomain",
   "application_id": "c49f3586-9b3b-458b-89fc-3c8beb58865c",
   "tls": "always",
   "digest_auth": false,
   "srtp": "always",
   "acl": [
      "50.127.127.0/29",
      "50.128.128.0/29"
   ],
   "domain_type": "app"
}

Responses
Content Type
application/json

Created

name
string
Required
Min5
Max32
examplemydomain

The customised SIP domain that will used in Programmable SIP: mydomain.sip-eu.nexmo.com.

application_id
string
Required
examplec49f3586-9b3b-458b-89fc-3c8beb58865c

Vonage Application ID to associate with the domain.

tls
string
Defaultoptional

Require TLS use in SIP connection. Optional allows customer to choose. Always will require it to always be used. Never will require it to never be used.

Must be one of:alwaysneveroptional
digest_auth
boolean
Defaultfalse

Allow definition of up to 200 users that can use Digest Authentication to access domain.

srtp
string
Defaultoptional

Require SRTP use in SIP connection. Optional allows customer to choose. Always will require it to always be used. Never will require it to never be used.

Must be one of:alwaysneveroptional
acl
array
Required

Access Control List of IPs that can make calls to domain. Can use CIDR notation to facilitate inclusion of IP ranges.

domain_type
string
Defaultapp
exampleapp

Type of domain. 'app' for PSIP application, 'trunk' for SIP trunking

Must be one of:apptrunk

Example Response

{
   "name": "mydomain",
   "application_id": "c49f3586-9b3b-458b-89fc-3c8beb58865c",
   "tls": "always",
   "digest_auth": false,
   "srtp": "always",
   "acl": [
      "50.127.127.0/29",
      "50.128.128.0/29"
   ],
   "domain_type": "app"
}

Get all of your PSIP domains

Get all of your PSIP domains.

gethttps://api.nexmo.com/v1/psip/

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Responses
Content Type
application/json

OK

array
name
string
Required
Min5
Max32
examplemydomain

The customised SIP domain that will used in Programmable SIP: mydomain.sip-eu.nexmo.com.

application_id
string
Required
examplec49f3586-9b3b-458b-89fc-3c8beb58865c

Vonage Application ID to associate with the domain.

tls
string
Defaultoptional

Require TLS use in SIP connection. Optional allows customer to choose. Always will require it to always be used. Never will require it to never be used.

Must be one of:alwaysneveroptional
digest_auth
boolean
Defaultfalse

Allow definition of up to 200 users that can use Digest Authentication to access domain.

srtp
string
Defaultoptional

Require SRTP use in SIP connection. Optional allows customer to choose. Always will require it to always be used. Never will require it to never be used.

Must be one of:alwaysneveroptional
acl
array
Required

Access Control List of IPs that can make calls to domain. Can use CIDR notation to facilitate inclusion of IP ranges.

domain_type
string
Defaultapp
exampleapp

Type of domain. 'app' for PSIP application, 'trunk' for SIP trunking

Must be one of:apptrunk

Example Response

[
   {
      "name": "mydomain",
      "application_id": "c49f3586-9b3b-458b-89fc-3c8beb58865c",
      "tls": "always",
      "digest_auth": false,
      "srtp": "always",
      "acl": [
         "50.127.127.0/29",
         "50.128.128.0/29"
      ],
      "domain_type": "app"
   }
]

Get details of your PSIP domain

Get details of your PSIP domain.

gethttps://api.nexmo.com/v1/psip/:domain

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Path Parameters

domain
string
Required
examplemydomain

Filter by domain name.

Responses
Content Type
application/json

OK

name
string
Required
Min5
Max32
examplemydomain

The customised SIP domain that will used in Programmable SIP: mydomain.sip-eu.nexmo.com.

application_id
string
Required
examplec49f3586-9b3b-458b-89fc-3c8beb58865c

Vonage Application ID to associate with the domain.

tls
string
Defaultoptional

Require TLS use in SIP connection. Optional allows customer to choose. Always will require it to always be used. Never will require it to never be used.

Must be one of:alwaysneveroptional
digest_auth
boolean
Defaultfalse

Allow definition of up to 200 users that can use Digest Authentication to access domain.

srtp
string
Defaultoptional

Require SRTP use in SIP connection. Optional allows customer to choose. Always will require it to always be used. Never will require it to never be used.

Must be one of:alwaysneveroptional
acl
array
Required

Access Control List of IPs that can make calls to domain. Can use CIDR notation to facilitate inclusion of IP ranges.

domain_type
string
Defaultapp
exampleapp

Type of domain. 'app' for PSIP application, 'trunk' for SIP trunking

Must be one of:apptrunk

Example Response

{
   "name": "mydomain",
   "application_id": "c49f3586-9b3b-458b-89fc-3c8beb58865c",
   "tls": "always",
   "digest_auth": false,
   "srtp": "always",
   "acl": [
      "50.127.127.0/29",
      "50.128.128.0/29"
   ],
   "domain_type": "app"
}

Update a PSIP domain

Update a PSIP domain.

puthttps://api.nexmo.com/v1/psip/:domain

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Path Parameters

domain
string
Required
examplemydomain

Filter by domain name.

Request Body
Content Type
application/json

One Of
name
string
Required
Min5
Max32
examplemydomain

The customised SIP domain that will used in Programmable SIP: mydomain.sip-eu.nexmo.com.

application_id
string
Required
examplec49f3586-9b3b-458b-89fc-3c8beb58865c

Vonage Application ID to associate with the domain.

tls
string
Defaultoptional

Require TLS use in SIP connection. Optional allows customer to choose. Always will require it to always be used. Never will require it to never be used.

Must be one of:alwaysneveroptional
digest_auth
boolean
Defaultfalse

Allow definition of up to 200 users that can use Digest Authentication to access domain.

srtp
string
Defaultoptional

Require SRTP use in SIP connection. Optional allows customer to choose. Always will require it to always be used. Never will require it to never be used.

Must be one of:alwaysneveroptional
acl
array
Required

Access Control List of IPs that can make calls to domain. Can use CIDR notation to facilitate inclusion of IP ranges.

domain_type
string
Defaultapp
exampleapp

Type of domain. 'app' for PSIP application, 'trunk' for SIP trunking

Must be one of:apptrunk

Example Request

{
   "name": "mydomain",
   "application_id": "c49f3586-9b3b-458b-89fc-3c8beb58865c",
   "tls": "always",
   "digest_auth": false,
   "srtp": "always",
   "acl": [
      "50.127.127.0/29",
      "50.128.128.0/29"
   ],
   "domain_type": "app"
}

Responses
Content Type
application/json

Created

name
string
Required
Min5
Max32
examplemydomain

The customised SIP domain that will used in Programmable SIP: mydomain.sip-eu.nexmo.com.

application_id
string
Required
examplec49f3586-9b3b-458b-89fc-3c8beb58865c

Vonage Application ID to associate with the domain.

tls
string
Defaultoptional

Require TLS use in SIP connection. Optional allows customer to choose. Always will require it to always be used. Never will require it to never be used.

Must be one of:alwaysneveroptional
digest_auth
boolean
Defaultfalse

Allow definition of up to 200 users that can use Digest Authentication to access domain.

srtp
string
Defaultoptional

Require SRTP use in SIP connection. Optional allows customer to choose. Always will require it to always be used. Never will require it to never be used.

Must be one of:alwaysneveroptional
acl
array
Required

Access Control List of IPs that can make calls to domain. Can use CIDR notation to facilitate inclusion of IP ranges.

domain_type
string
Defaultapp
exampleapp

Type of domain. 'app' for PSIP application, 'trunk' for SIP trunking

Must be one of:apptrunk

Example Response

{
   "name": "mydomain",
   "application_id": "c49f3586-9b3b-458b-89fc-3c8beb58865c",
   "tls": "always",
   "digest_auth": false,
   "srtp": "always",
   "acl": [
      "50.127.127.0/29",
      "50.128.128.0/29"
   ],
   "domain_type": "app"
}

Delete PSIP domain

Delete a PSIP domain.

deletehttps://api.nexmo.com/v1/psip/:domain

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Path Parameters

domain
string
Required
examplemydomain

Filter by domain name.

Query Parameters

cascade
boolean

Whether the delete request should cascade to the domain's users.

Responses

Deleted

Domain Users

Methods for managing users in a SIP domain.

Create a PSIP domain user

Create a new PSIP domain user, up to 200 per domain.

posthttps://api.nexmo.com/v1/psip/:domain/users

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Request Body
Content Type
application/json

One Of
key
string
Required
exampleuser-1

The user's key and unique identifier. Permitted list of characters is alphanumeric (a-z, 0-9) and dash (-).

secret
string
Required
examplemysupersecretsecret

The user's secret to do authentication.

Example Request

{
   "key": "user-1",
   "secret": "mysupersecretsecret"
}

Responses
Content Type
application/json

OK

key
string
exampleuser-1

The user's key and unique identifier. Permitted list of characters is alphanumeric (a-z, 0-9) and dash (-).

domain
string
Min5
Max32
examplemydomain

The customised SIP domain that will used in Programmable SIP: mydomain.sip-eu.nexmo.com.

Example Response

{
   "key": "user-1",
   "domain": "mydomain"
}

Get all of your PSIP domain's digest users

Retrieve a list of your PSIP domain's digest users.

gethttps://api.nexmo.com/v1/psip/:domain/users

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Responses
Content Type
application/json

OK

array
key
string
exampleuser-1

The user's key and unique identifier. Permitted list of characters is alphanumeric (a-z, 0-9) and dash (-).

domain
string
Min5
Max32
examplemydomain

The customised SIP domain that will used in Programmable SIP: mydomain.sip-eu.nexmo.com.

Example Response

[
   {
      "key": "user-1",
      "domain": "mydomain"
   },
   {
      "key": "user-0",
      "domain": "mydomain"
   }
]

Check existence of a PSIP domain user

Validate a PSIP domain user.

gethttps://api.nexmo.com/v1/psip/:domain/users/:key

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Responses
Content Type
application/json

OK

key
string
exampleuser-1

The user's key and unique identifier. Permitted list of characters is alphanumeric (a-z, 0-9) and dash (-).

domain
string
Min5
Max32
examplemydomain

The customised SIP domain that will used in Programmable SIP: mydomain.sip-eu.nexmo.com.

Example Response

{
   "key": "user-1",
   "domain": "mydomain"
}

Update a PSIP domain user

Update a PSIP domain user.

puthttps://api.nexmo.com/v1/psip/:domain/users/:key

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Request Body
Content Type
application/json

One Of
key
string
Required
exampleuser-1

The user's key and unique identifier. Permitted list of characters is alphanumeric (a-z, 0-9) and dash (-).

secret
string
Required
examplemysupersecretsecret

The user's secret to do authentication.

Example Request

{
   "key": "user-1",
   "secret": "mysupersecretsecret"
}

Responses
Content Type
application/json

OK

key
string
exampleuser-1

The user's key and unique identifier. Permitted list of characters is alphanumeric (a-z, 0-9) and dash (-).

domain
string
Min5
Max32
examplemydomain

The customised SIP domain that will used in Programmable SIP: mydomain.sip-eu.nexmo.com.

Example Response

{
   "key": "user-1",
   "domain": "mydomain"
}

Delete a PSIP domain user

Delete a PSIP domain user.

deletehttps://api.nexmo.com/v1/psip/:domain/users/:key

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Responses

OK

Domain Endpoints

Methods for managing endpoints in a SIP domain.

Create an endpoint for a PSIP domain

Create a new PSIP domain endpoint

posthttps://api.nexmo.com/v1/psip/:domain/endpoints

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Request Body
Content Type
application/json

One Of
id
string

The unique id of the endpoint in this domain.

priority
integer
Max100

The priority of this endpoint when sending calls to one of the domain's endpoints. A numeric value where a lower value means higher priority.

uri
string
Required
examplesip:myendpoint@mydomain.example.com:5060

A SIP URI to deliver incoming calls for this domain.

Example Request

{
   "id": "string",
   "priority": 100,
   "uri": "sip:myendpoint@mydomain.example.com:5060"
}

Responses

OK

Get all of your PSIP domain's endpoint

Retrieve a list of your PSIP domain's endpoints

gethttps://api.nexmo.com/v1/psip/:domain/endpoints

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Responses
Content Type
application/json

OK

array
id
string

The unique id of the endpoint in this domain.

priority
integer
Max100

The priority of this endpoint when sending calls to one of the domain's endpoints. A numeric value where a lower value means higher priority.

uri
string
Required
examplesip:myendpoint@mydomain.example.com:5060

A SIP URI to deliver incoming calls for this domain.

Example Response

[
   {
      "id": "string",
      "priority": 100,
      "uri": "sip:myendpoint@mydomain.example.com:5060"
   }
]

Check existence of a PSIP domain endpoint

Validate a PSIP domain endpoint

gethttps://api.nexmo.com/v1/psip/:domain/endpoints/:endpointId

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Responses
Content Type
application/json

OK

id
string

The unique id of the endpoint in this domain.

priority
integer
Max100

The priority of this endpoint when sending calls to one of the domain's endpoints. A numeric value where a lower value means higher priority.

uri
string
Required
examplesip:myendpoint@mydomain.example.com:5060

A SIP URI to deliver incoming calls for this domain.

Example Response

{
   "id": "string",
   "priority": 100,
   "uri": "sip:myendpoint@mydomain.example.com:5060"
}

Update a PSIP domain endpoint

Update a PSIP domain endpoint

puthttps://api.nexmo.com/v1/psip/:domain/endpoints/:endpointId

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Request Body
Content Type
application/json

One Of
id
string

The unique id of the endpoint in this domain.

priority
integer
Max100

The priority of this endpoint when sending calls to one of the domain's endpoints. A numeric value where a lower value means higher priority.

uri
string
Required
examplesip:myendpoint@mydomain.example.com:5060

A SIP URI to deliver incoming calls for this domain.

Example Request

{
   "id": "string",
   "priority": 100,
   "uri": "sip:myendpoint@mydomain.example.com:5060"
}

Responses
Content Type
application/json

OK

id
string

The unique id of the endpoint in this domain.

priority
integer
Max100

The priority of this endpoint when sending calls to one of the domain's endpoints. A numeric value where a lower value means higher priority.

uri
string
Required
examplesip:myendpoint@mydomain.example.com:5060

A SIP URI to deliver incoming calls for this domain.

Example Response

{
   "id": "string",
   "priority": 100,
   "uri": "sip:myendpoint@mydomain.example.com:5060"
}

Delete a PSIP domain endpoint

Delete a PSIP domain endpoint

deletehttps://api.nexmo.com/v1/psip/:domain/endpoints/:endpointId

Authentication

KeyDescriptionWhereExample
Authorization

Base64 encoded API key and secret joined by a colon.
Read more

Headers

Basic <base64>

Responses

OK