API Reference
Key Admin
People and devices

Desk phones

Desk phones are the physical handsets, identified by MAC address. Use these endpoints to add hardware, assign it to a user and manage the provisioning settings and templates phones download when they boot.

In the Key Admin this is the Desk phones switch. Read lets a key call the GET endpoints below. Write lets it call the ones that change data.

Count phone configurations

GET/domains/~/phoneconfiguration/count

Returns how many phone configurations there are on the account, as {"total": n}.

Read Key Admin switch: Desk phones, Read. Read only keys also work.

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration/count" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration/count", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration/count",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

{
  "total": 1
}
Response fields (1)
FieldTypeNotes
totalintegerHow many items matched.

Other responses: 400, 401, 403, 404. See errors.

Get a phone's configuration

GET/domains/~/phoneconfiguration/{mac}

Returns the provisioning configuration for one phone, by MAC address.

Read Key Admin switch: Desk phones, Read. Read only keys also work.

Parameters

NameInTypeNotes
mac requiredpathstringThe phone's MAC address, 12 hex characters with no separators.

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration/0004f2aabbcc" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration/0004f2aabbcc", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration/0004f2aabbcc",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

{
  "phoneconfiguration-name": "Front Desk",
  "phoneconfiguration-mac-address": "string",
  "phoneconfiguration-description": "string",
  "phoneconfiguration-brand": "string",
  "phoneconfiguration-model": "string",
  "phoneconfiguration-domain": "string",
  "phoneconfiguration-sidecars": [
    {}
  ],
  "phoneconfiguration-extra": {
    "dynamic": "string"
  },
  "...": "3 more fields"
}
Response fields (31)
FieldTypeNotes
phoneconfiguration-namestringName of the phoneconfiguration.
phoneconfiguration-mac-addressstring
phoneconfiguration-descriptionstring
phoneconfiguration-brandstring
phoneconfiguration-modelstring
phoneconfiguration-domainstring
phoneconfiguration-sidecarsarray of object
phoneconfiguration-sidecars[].phoneconfiguration-brandstring
phoneconfiguration-sidecars[].phoneconfiguration-modelstring
phoneconfiguration-extraobject
phoneconfiguration-extra.dynamicstring
phoneconfiguration-directoryobject
phoneconfiguration-directory.groupstring Default All
phoneconfiguration-directory.group-typestring Default Standard
phoneconfiguration-directory.sortstring One of: Extension, First Name, Last name Default Extension
phoneconfiguration-directory.orderstringOrder of the item. One of: asc, desc Default asc
phoneconfiguration-directory.exclusionsarray of object
phoneconfiguration-directory.exclusions[].idstringThe item's ID.
phoneconfiguration-directory.exclusions[].typestringThe kind of item. Default onnet
phoneconfiguration-buttonsarray of object
phoneconfiguration-buttons[].phoneconfiguration-button-orderinteger
phoneconfiguration-buttons[].phoneconfiguration-button-typestring
phoneconfiguration-buttons[].phoneconfiguration-button-featurestring
phoneconfiguration-buttons[].phoneconfiguration-button-targetinteger
phoneconfiguration-buttons[].phoneconfiguration-button-labelstring
phoneconfiguration-buttons[].phoneconfiguration-button-lockedinteger
phoneconfiguration-buttons[].phoneconfiguration-extraarray of string
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-labelstring
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUserinteger
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframestringThe time frame the rule uses.
last-modified-datetimestringLast modified (date and time).

Other responses: 400, 401, 404. See errors.

List desk phones

GET/domains/~/phones

Returns the desk phones on the account.

Read Key Admin switch: Desk phones, Read. Read only keys also work.

Parameters

NameInTypeNotes
limitquerynumber (int)Most results to return in one response. Default 100 Min 1 Max 1000

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/phones" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phones", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phones",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

[
  {
    "device-provisioning-mac-address": "string",
    "domain": "string",
    "reseller": "string",
    "device-models-brand-and-model": "string",
    "device-provisioning-registration-core-server": "string",
    "notes": "string",
    "device-provisioning-sip-uri-1": "string",
    "device-provisioning-line-1-enabled": "yes",
    "...": "47 more fields"
  }
]
Response fields (55)
FieldTypeNotes
device-provisioning-mac-addressstring (mac) Min length 12 Max length 12
domainstringThe account the item belongs to. Max length 64
resellerstringThe parent account group. Set by the platform.
device-models-brand-and-modelstring
device-provisioning-registration-core-serverstring
notesstring
device-provisioning-sip-uri-1string
device-provisioning-line-1-enabledstringTurns device provisioning line 1 on or off (yes or no). One of: yes, no Default no
device-provisioning-sip-uri-1-shared-line-enabledstringTurns device provisioning sip uri 1 shared line on or off (yes or no).
device-provisioning-sip-uri-2string
device-provisioning-line-2-enabledstringTurns device provisioning line 2 on or off (yes or no). One of: yes, no Default no
device-provisioning-sip-uri-2-shared-line-enabledstringTurns device provisioning sip uri 2 shared line on or off (yes or no).
device-provisioning-sip-transport-protocolstring
device-provisioning-usernamestring
device-provisioning-passwordstring (password)
device-models-count-buttonsinteger
device-models-fxs-support-enabledintegerTurns device models fxs support on or off (yes or no).
device-models-overrides-blobstring
device-models-resync-support-enabledstringTurns device models resync support on or off (yes or no).
device-models-shared-line-support-enabledstringTurns device models shared line support on or off (yes or no).
device-models-sidecar-support-enabledstringTurns device models sidecar support on or off (yes or no).
device-provisioning-last-retrieved-datetimestringDevice provisioning last retrieved (date and time).
device-provisioning-directorystring
device-provisioning-directory-supportstring
device-provisioning-line-1-extensionsstring
device-provisioning-line-2-extensionsstring
device-provisioning-ndp-hostnamestring
device-provisioning-presencestring
created-datetimestringCreated (date and time).
global-one-time-passstring
last-modified-datetimestring (date-time)Last modified (date and time).
redundencystring
device-provisioning-sip-uri-3string
device-provisioning-line-3-enabledstringTurns device provisioning line 3 on or off (yes or no).
device-provisioning-sip-uri-3-shared-line-enabledstringTurns device provisioning sip uri 3 shared line on or off (yes or no).
device-provisioning-sip-uri-4string
device-provisioning-line-4-enabledstringTurns device provisioning line 4 on or off (yes or no).
device-provisioning-sip-uri-4-shared-line-enabledstringTurns device provisioning sip uri 4 shared line on or off (yes or no).
device-provisioning-sip-uri-5string
device-provisioning-line-5-enabledstringTurns device provisioning line 5 on or off (yes or no).
device-provisioning-sip-uri-5-shared-line-enabledstringTurns device provisioning sip uri 5 shared line on or off (yes or no).
device-provisioning-sip-uri-6string
device-provisioning-line-6-enabledstringTurns device provisioning line 6 on or off (yes or no).
device-provisioning-sip-uri-6-shared-line-enabledstringTurns device provisioning sip uri 6 shared line on or off (yes or no).
device-provisioning-sip-uri-7string
device-provisioning-line-7-enabledstringTurns device provisioning line 7 on or off (yes or no).
device-provisioning-sip-uri-7-shared-line-enabledstringTurns device provisioning sip uri 7 shared line on or off (yes or no).
device-provisioning-sip-uri-8string
device-provisioning-line-8-enabledstringTurns device provisioning line 8 on or off (yes or no).
device-provisioning-sip-uri-8-shared-line-enabledstringTurns device provisioning sip uri 8 shared line on or off (yes or no).
device-sip-registration-contactstring
device-sip-registration-datetimestringDevice sip registration (date and time).
device-sip-registration-expires-datetimestringDevice sip registration expires (date and time).
device-sip-registration-statestring
device-sip-registration-user-agentstring

Get a desk phone

GET/domains/~/phones/{mac}

Returns one desk phone by its MAC address.

Read Key Admin switch: Desk phones, Read. Read only keys also work.

Parameters

NameInTypeNotes
mac requiredpathstringThe phone's MAC address, 12 hex characters with no separators.
limitquerynumber (int)Most results to return in one response. Default 100 Min 1 Max 1000

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/phones/0004f2aabbcc" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phones/0004f2aabbcc", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phones/0004f2aabbcc",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

{
  "device-provisioning-mac-address": "string",
  "domain": "string",
  "reseller": "string",
  "device-models-brand-and-model": "string",
  "device-provisioning-registration-core-server": "string",
  "notes": "string",
  "device-provisioning-sip-uri-1": "string",
  "device-provisioning-line-1-enabled": "yes",
  "...": "47 more fields"
}
Response fields (55)
FieldTypeNotes
device-provisioning-mac-addressstring (mac) Min length 12 Max length 12
domainstringThe account the item belongs to. Max length 64
resellerstringThe parent account group. Set by the platform.
device-models-brand-and-modelstring
device-provisioning-registration-core-serverstring
notesstring
device-provisioning-sip-uri-1string
device-provisioning-line-1-enabledstringTurns device provisioning line 1 on or off (yes or no). One of: yes, no Default no
device-provisioning-sip-uri-1-shared-line-enabledstringTurns device provisioning sip uri 1 shared line on or off (yes or no).
device-provisioning-sip-uri-2string
device-provisioning-line-2-enabledstringTurns device provisioning line 2 on or off (yes or no). One of: yes, no Default no
device-provisioning-sip-uri-2-shared-line-enabledstringTurns device provisioning sip uri 2 shared line on or off (yes or no).
device-provisioning-sip-transport-protocolstring
device-provisioning-usernamestring
device-provisioning-passwordstring (password)
device-models-count-buttonsinteger
device-models-fxs-support-enabledintegerTurns device models fxs support on or off (yes or no).
device-models-overrides-blobstring
device-models-resync-support-enabledstringTurns device models resync support on or off (yes or no).
device-models-shared-line-support-enabledstringTurns device models shared line support on or off (yes or no).
device-models-sidecar-support-enabledstringTurns device models sidecar support on or off (yes or no).
device-provisioning-last-retrieved-datetimestringDevice provisioning last retrieved (date and time).
device-provisioning-directorystring
device-provisioning-directory-supportstring
device-provisioning-line-1-extensionsstring
device-provisioning-line-2-extensionsstring
device-provisioning-ndp-hostnamestring
device-provisioning-presencestring
created-datetimestringCreated (date and time).
global-one-time-passstring
last-modified-datetimestring (date-time)Last modified (date and time).
redundencystring
device-provisioning-sip-uri-3string
device-provisioning-line-3-enabledstringTurns device provisioning line 3 on or off (yes or no).
device-provisioning-sip-uri-3-shared-line-enabledstringTurns device provisioning sip uri 3 shared line on or off (yes or no).
device-provisioning-sip-uri-4string
device-provisioning-line-4-enabledstringTurns device provisioning line 4 on or off (yes or no).
device-provisioning-sip-uri-4-shared-line-enabledstringTurns device provisioning sip uri 4 shared line on or off (yes or no).
device-provisioning-sip-uri-5string
device-provisioning-line-5-enabledstringTurns device provisioning line 5 on or off (yes or no).
device-provisioning-sip-uri-5-shared-line-enabledstringTurns device provisioning sip uri 5 shared line on or off (yes or no).
device-provisioning-sip-uri-6string
device-provisioning-line-6-enabledstringTurns device provisioning line 6 on or off (yes or no).
device-provisioning-sip-uri-6-shared-line-enabledstringTurns device provisioning sip uri 6 shared line on or off (yes or no).
device-provisioning-sip-uri-7string
device-provisioning-line-7-enabledstringTurns device provisioning line 7 on or off (yes or no).
device-provisioning-sip-uri-7-shared-line-enabledstringTurns device provisioning sip uri 7 shared line on or off (yes or no).
device-provisioning-sip-uri-8string
device-provisioning-line-8-enabledstringTurns device provisioning line 8 on or off (yes or no).
device-provisioning-sip-uri-8-shared-line-enabledstringTurns device provisioning sip uri 8 shared line on or off (yes or no).
device-sip-registration-contactstring
device-sip-registration-datetimestringDevice sip registration (date and time).
device-sip-registration-expires-datetimestringDevice sip registration expires (date and time).
device-sip-registration-statestring
device-sip-registration-user-agentstring

List phone templates

GET/domains/~/phonetemplates

Returns the phone templates on the account.

Read Key Admin switch: Desk phones, Read. Read only keys also work.

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

[
  {
    "phoneconfiguration-name": "Front Desk",
    "phoneconfiguration-mac-address": "string",
    "phoneconfiguration-description": "string",
    "phoneconfiguration-brand": "string",
    "phoneconfiguration-model": "string",
    "phoneconfiguration-domain": "string",
    "phoneconfiguration-sidecars": [
      {}
    ],
    "phoneconfiguration-extra": {
      "dynamic": "string"
    },
    "...": "3 more fields"
  }
]
Response fields (31)
FieldTypeNotes
phoneconfiguration-namestringName of the phoneconfiguration.
phoneconfiguration-mac-addressstring
phoneconfiguration-descriptionstring
phoneconfiguration-brandstring
phoneconfiguration-modelstring
phoneconfiguration-domainstring
phoneconfiguration-sidecarsarray of object
phoneconfiguration-sidecars[].phoneconfiguration-brandstring
phoneconfiguration-sidecars[].phoneconfiguration-modelstring
phoneconfiguration-extraobject
phoneconfiguration-extra.dynamicstring
phoneconfiguration-directoryobject
phoneconfiguration-directory.groupstring Default All
phoneconfiguration-directory.group-typestring Default Standard
phoneconfiguration-directory.sortstring One of: Extension, First Name, Last name Default Extension
phoneconfiguration-directory.orderstringOrder of the item. One of: asc, desc Default asc
phoneconfiguration-directory.exclusionsarray of object
phoneconfiguration-directory.exclusions[].idstringThe item's ID.
phoneconfiguration-directory.exclusions[].typestringThe kind of item. Default onnet
phoneconfiguration-buttonsarray of object
phoneconfiguration-buttons[].phoneconfiguration-button-orderinteger
phoneconfiguration-buttons[].phoneconfiguration-button-typestring
phoneconfiguration-buttons[].phoneconfiguration-button-featurestring
phoneconfiguration-buttons[].phoneconfiguration-button-targetinteger
phoneconfiguration-buttons[].phoneconfiguration-button-labelstring
phoneconfiguration-buttons[].phoneconfiguration-button-lockedinteger
phoneconfiguration-buttons[].phoneconfiguration-extraarray of string
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-labelstring
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUserinteger
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframestringThe time frame the rule uses.
last-modified-datetimestringLast modified (date and time).

Other responses: 400, 401, 404. See errors.

Count phone templates

GET/domains/~/phonetemplates/count

Returns how many phone templates there are on the account, as {"total": n}.

Read Key Admin switch: Desk phones, Read. Read only keys also work.

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates/count" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates/count", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates/count",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

{
  "total": 1
}
Response fields (1)
FieldTypeNotes
totalintegerHow many items matched.

Other responses: 400, 401, 403, 404. See errors.

Get a phone template

GET/domains/~/phonetemplates/{name}

Returns one phone template by its ID.

Read Key Admin switch: Desk phones, Read. Read only keys also work.

Parameters

NameInTypeNotes
name requiredpathstringThe name of the item.

Example request

curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates/{name}" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates/{name}", {
  method: "GET",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.get(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates/{name}",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 200

{
  "phoneconfiguration-name": "Front Desk",
  "phoneconfiguration-mac-address": "string",
  "phoneconfiguration-description": "string",
  "phoneconfiguration-brand": "string",
  "phoneconfiguration-model": "string",
  "phoneconfiguration-domain": "string",
  "phoneconfiguration-sidecars": [
    {}
  ],
  "phoneconfiguration-extra": {
    "dynamic": "string"
  },
  "...": "3 more fields"
}
Response fields (31)
FieldTypeNotes
phoneconfiguration-namestringName of the phoneconfiguration.
phoneconfiguration-mac-addressstring
phoneconfiguration-descriptionstring
phoneconfiguration-brandstring
phoneconfiguration-modelstring
phoneconfiguration-domainstring
phoneconfiguration-sidecarsarray of object
phoneconfiguration-sidecars[].phoneconfiguration-brandstring
phoneconfiguration-sidecars[].phoneconfiguration-modelstring
phoneconfiguration-extraobject
phoneconfiguration-extra.dynamicstring
phoneconfiguration-directoryobject
phoneconfiguration-directory.groupstring Default All
phoneconfiguration-directory.group-typestring Default Standard
phoneconfiguration-directory.sortstring One of: Extension, First Name, Last name Default Extension
phoneconfiguration-directory.orderstringOrder of the item. One of: asc, desc Default asc
phoneconfiguration-directory.exclusionsarray of object
phoneconfiguration-directory.exclusions[].idstringThe item's ID.
phoneconfiguration-directory.exclusions[].typestringThe kind of item. Default onnet
phoneconfiguration-buttonsarray of object
phoneconfiguration-buttons[].phoneconfiguration-button-orderinteger
phoneconfiguration-buttons[].phoneconfiguration-button-typestring
phoneconfiguration-buttons[].phoneconfiguration-button-featurestring
phoneconfiguration-buttons[].phoneconfiguration-button-targetinteger
phoneconfiguration-buttons[].phoneconfiguration-button-labelstring
phoneconfiguration-buttons[].phoneconfiguration-button-lockedinteger
phoneconfiguration-buttons[].phoneconfiguration-extraarray of string
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-labelstring
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUserinteger
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframestringThe time frame the rule uses.
last-modified-datetimestringLast modified (date and time).

Other responses: 400, 401, 404. See errors.

Create a phone configuration

POST/domains/~/phoneconfiguration

Adds provisioning settings for a phone, keyed by its MAC address.

Write Key Admin switch: Desk phones, Write.

Request body application/json

FieldTypeNotes
phoneconfiguration-mac-addressstring
phoneconfiguration-description requiredstring
phoneconfiguration-brand requiredstring
phoneconfiguration-model requiredstring
phoneconfiguration-domain requiredstring
phoneconfiguration-sidecarsarray of object
phoneconfiguration-sidecars[].phoneconfiguration-brandstring
phoneconfiguration-sidecars[].phoneconfiguration-modelstring
phoneconfiguration-extraobject
phoneconfiguration-extra.dynamicstring
phoneconfiguration-directoryobject
phoneconfiguration-directory.groupstring Default All
phoneconfiguration-directory.group-typestring Default Standard
phoneconfiguration-directory.sortstring One of: Extension, First Name, Last name Default Extension
phoneconfiguration-directory.orderstringOrder of the item. One of: asc, desc Default asc
phoneconfiguration-directory.exclusionsarray of object
phoneconfiguration-directory.exclusions[].idstringThe item's ID.
phoneconfiguration-directory.exclusions[].typestringThe kind of item. Default onnet
phoneconfiguration-buttonsarray of object
phoneconfiguration-buttons[].phoneconfiguration-button-order requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-button-type requiredstring
phoneconfiguration-buttons[].phoneconfiguration-button-feature requiredstring
phoneconfiguration-buttons[].phoneconfiguration-button-target requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-button-label requiredstring
phoneconfiguration-buttons[].phoneconfiguration-button-locked requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-extra requiredarray of string
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-labelstring
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUser requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframe requiredstringThe time frame the rule uses.

Example request

curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneconfiguration-description": "string",
    "phoneconfiguration-brand": "string",
    "phoneconfiguration-model": "string",
    "phoneconfiguration-domain": "string"
  }'
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration", {
  method: "POST",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "phoneconfiguration-description": "string",
    "phoneconfiguration-brand": "string",
    "phoneconfiguration-model": "string",
    "phoneconfiguration-domain": "string"
  }),
});
const data = await res.json();
import os, requests

r = requests.post(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
    json={
        "phoneconfiguration-description": "string",
        "phoneconfiguration-brand": "string",
        "phoneconfiguration-model": "string",
        "phoneconfiguration-domain": "string"
    },
)
print(r.status_code, r.json())

Response 202

{
  "code": 1,
  "message": "Hello from NoodleVoice"
}
Response fields (2)
FieldTypeNotes
codeintegerHTTP status code.
messagestringWhat happened, in words.

Other responses: 400, 401, 404. See errors.

Add a desk phone

POST/domains/~/phones

Adds a desk phone to the account by its MAC address.

Write Key Admin switch: Desk phones, Write.

Request body application/json

FieldTypeNotes
device-provisioning-mac-address requiredstring (mac) Min length 12 Max length 12
domain requiredstringThe account the item belongs to. Max length 64
reseller requiredstringThe parent account group. Set by the platform.
device-models-brand-and-model requiredstring
device-provisioning-registration-core-server requiredstring
notes requiredstring
device-provisioning-sip-uri-1 requiredstring
device-provisioning-line-1-enabled requiredstringTurns device provisioning line 1 on or off (yes or no). One of: yes, no Default no
device-provisioning-sip-uri-1-shared-line-enabled requiredstringTurns device provisioning sip uri 1 shared line on or off (yes or no).
device-provisioning-sip-uri-2 requiredstring
device-provisioning-line-2-enabled requiredstringTurns device provisioning line 2 on or off (yes or no). One of: yes, no Default no
device-provisioning-sip-uri-2-shared-line-enabled requiredstringTurns device provisioning sip uri 2 shared line on or off (yes or no).
device-provisioning-sip-transport-protocol requiredstring
device-provisioning-username requiredstring
device-provisioning-password requiredstring (password)
device-models-count-buttons requiredinteger
device-models-fxs-support-enabled requiredintegerTurns device models fxs support on or off (yes or no).
device-models-overrides-blob requiredstring
device-models-resync-support-enabled requiredstringTurns device models resync support on or off (yes or no).
device-models-shared-line-support-enabled requiredstringTurns device models shared line support on or off (yes or no).
device-models-sidecar-support-enabled requiredstringTurns device models sidecar support on or off (yes or no).
device-provisioning-last-retrieved-datetime requiredstringDevice provisioning last retrieved (date and time).
device-provisioning-directory requiredstring
device-provisioning-directory-support requiredstring
device-provisioning-line-1-extensionsstring
device-provisioning-line-2-extensionsstring
device-provisioning-ndp-hostname requiredstring
device-provisioning-presence requiredstring
created-datetime requiredstringCreated (date and time).
global-one-time-pass requiredstring
last-modified-datetimestring (date-time)Last modified (date and time).
redundency requiredstring
device-provisioning-sip-uri-3string
device-provisioning-line-3-enabledstringTurns device provisioning line 3 on or off (yes or no).
device-provisioning-sip-uri-3-shared-line-enabledstringTurns device provisioning sip uri 3 shared line on or off (yes or no).
device-provisioning-sip-uri-4string
device-provisioning-line-4-enabledstringTurns device provisioning line 4 on or off (yes or no).
device-provisioning-sip-uri-4-shared-line-enabledstringTurns device provisioning sip uri 4 shared line on or off (yes or no).
device-provisioning-sip-uri-5string
device-provisioning-line-5-enabledstringTurns device provisioning line 5 on or off (yes or no).
device-provisioning-sip-uri-5-shared-line-enabledstringTurns device provisioning sip uri 5 shared line on or off (yes or no).
device-provisioning-sip-uri-6string
device-provisioning-line-6-enabledstringTurns device provisioning line 6 on or off (yes or no).
device-provisioning-sip-uri-6-shared-line-enabledstringTurns device provisioning sip uri 6 shared line on or off (yes or no).
device-provisioning-sip-uri-7string
device-provisioning-line-7-enabledstringTurns device provisioning line 7 on or off (yes or no).
device-provisioning-sip-uri-7-shared-line-enabledstringTurns device provisioning sip uri 7 shared line on or off (yes or no).
device-provisioning-sip-uri-8string
device-provisioning-line-8-enabledstringTurns device provisioning line 8 on or off (yes or no).
device-provisioning-sip-uri-8-shared-line-enabledstringTurns device provisioning sip uri 8 shared line on or off (yes or no).
device-sip-registration-contactstring
device-sip-registration-datetimestringDevice sip registration (date and time).
device-sip-registration-expires-datetimestringDevice sip registration expires (date and time).
device-sip-registration-statestring
device-sip-registration-user-agentstring

Example request

curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/phones" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "device-provisioning-mac-address": "string",
    "domain": "string",
    "reseller": "string",
    "device-models-brand-and-model": "string",
    "device-provisioning-registration-core-server": "string",
    "notes": "string",
    "device-provisioning-sip-uri-1": "string",
    "device-provisioning-line-1-enabled": "yes",
    "device-provisioning-sip-uri-1-shared-line-enabled": "yes",
    "device-provisioning-sip-uri-2": "string",
    "device-provisioning-line-2-enabled": "yes",
    "device-provisioning-sip-uri-2-shared-line-enabled": "yes",
    "device-provisioning-sip-transport-protocol": "string",
    "device-provisioning-username": "string",
    "device-provisioning-password": "string",
    "device-models-count-buttons": 1,
    "device-models-fxs-support-enabled": 1,
    "device-models-overrides-blob": "string",
    "device-models-resync-support-enabled": "yes",
    "device-models-shared-line-support-enabled": "yes",
    "device-models-sidecar-support-enabled": "yes",
    "device-provisioning-last-retrieved-datetime": "2026-11-02 09:00:00",
    "device-provisioning-directory": "string",
    "device-provisioning-directory-support": "string",
    "device-provisioning-ndp-hostname": "string",
    "device-provisioning-presence": "string",
    "created-datetime": "2026-11-02 09:00:00",
    "global-one-time-pass": "string",
    "redundency": "string"
  }'
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phones", {
  method: "POST",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "device-provisioning-mac-address": "string",
    "domain": "string",
    "reseller": "string",
    "device-models-brand-and-model": "string",
    "device-provisioning-registration-core-server": "string",
    "notes": "string",
    "device-provisioning-sip-uri-1": "string",
    "device-provisioning-line-1-enabled": "yes",
    "device-provisioning-sip-uri-1-shared-line-enabled": "yes",
    "device-provisioning-sip-uri-2": "string",
    "device-provisioning-line-2-enabled": "yes",
    "device-provisioning-sip-uri-2-shared-line-enabled": "yes",
    "device-provisioning-sip-transport-protocol": "string",
    "device-provisioning-username": "string",
    "device-provisioning-password": "string",
    "device-models-count-buttons": 1,
    "device-models-fxs-support-enabled": 1,
    "device-models-overrides-blob": "string",
    "device-models-resync-support-enabled": "yes",
    "device-models-shared-line-support-enabled": "yes",
    "device-models-sidecar-support-enabled": "yes",
    "device-provisioning-last-retrieved-datetime": "2026-11-02 09:00:00",
    "device-provisioning-directory": "string",
    "device-provisioning-directory-support": "string",
    "device-provisioning-ndp-hostname": "string",
    "device-provisioning-presence": "string",
    "created-datetime": "2026-11-02 09:00:00",
    "global-one-time-pass": "string",
    "redundency": "string"
  }),
});
const data = await res.json();
import os, requests

r = requests.post(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phones",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
    json={
        "device-provisioning-mac-address": "string",
        "domain": "string",
        "reseller": "string",
        "device-models-brand-and-model": "string",
        "device-provisioning-registration-core-server": "string",
        "notes": "string",
        "device-provisioning-sip-uri-1": "string",
        "device-provisioning-line-1-enabled": "yes",
        "device-provisioning-sip-uri-1-shared-line-enabled": "yes",
        "device-provisioning-sip-uri-2": "string",
        "device-provisioning-line-2-enabled": "yes",
        "device-provisioning-sip-uri-2-shared-line-enabled": "yes",
        "device-provisioning-sip-transport-protocol": "string",
        "device-provisioning-username": "string",
        "device-provisioning-password": "string",
        "device-models-count-buttons": 1,
        "device-models-fxs-support-enabled": 1,
        "device-models-overrides-blob": "string",
        "device-models-resync-support-enabled": "yes",
        "device-models-shared-line-support-enabled": "yes",
        "device-models-sidecar-support-enabled": "yes",
        "device-provisioning-last-retrieved-datetime": "2026-11-02 09:00:00",
        "device-provisioning-directory": "string",
        "device-provisioning-directory-support": "string",
        "device-provisioning-ndp-hostname": "string",
        "device-provisioning-presence": "string",
        "created-datetime": "2026-11-02 09:00:00",
        "global-one-time-pass": "string",
        "redundency": "string"
    },
)
print(r.status_code, r.json())

Response 202

{
  "code": 1,
  "message": "Hello from NoodleVoice"
}
Response fields (2)
FieldTypeNotes
codeintegerHTTP status code.
messagestringWhat happened, in words.

Create a phone template

POST/domains/~/phonetemplates

Adds a new phone template on the account.

Write Key Admin switch: Desk phones, Write.

Request body application/json

FieldTypeNotes
phoneconfiguration-namestringName of the phoneconfiguration.
phoneconfiguration-description requiredstring
phoneconfiguration-brand requiredstring
phoneconfiguration-model requiredstring
phoneconfiguration-sidecarsarray of object
phoneconfiguration-sidecars[].phoneconfiguration-brandstring
phoneconfiguration-sidecars[].phoneconfiguration-modelstring
phoneconfiguration-extraobject
phoneconfiguration-extra.dynamicstring
phoneconfiguration-directoryobject
phoneconfiguration-directory.groupstring Default All
phoneconfiguration-directory.group-typestring Default Standard
phoneconfiguration-directory.sortstring One of: Extension, First Name, Last name Default Extension
phoneconfiguration-directory.orderstringOrder of the item. One of: asc, desc Default asc
phoneconfiguration-directory.exclusionsarray of object
phoneconfiguration-directory.exclusions[].idstringThe item's ID.
phoneconfiguration-directory.exclusions[].typestringThe kind of item. Default onnet
phoneconfiguration-buttonsarray of object
phoneconfiguration-buttons[].phoneconfiguration-button-order requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-button-type requiredstring
phoneconfiguration-buttons[].phoneconfiguration-button-feature requiredstring
phoneconfiguration-buttons[].phoneconfiguration-button-target requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-button-label requiredstring
phoneconfiguration-buttons[].phoneconfiguration-button-locked requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-extra requiredarray of string
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-labelstring
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUser requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframe requiredstringThe time frame the rule uses.

Example request

curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneconfiguration-description": "string",
    "phoneconfiguration-brand": "string",
    "phoneconfiguration-model": "string"
  }'
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates", {
  method: "POST",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "phoneconfiguration-description": "string",
    "phoneconfiguration-brand": "string",
    "phoneconfiguration-model": "string"
  }),
});
const data = await res.json();
import os, requests

r = requests.post(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
    json={
        "phoneconfiguration-description": "string",
        "phoneconfiguration-brand": "string",
        "phoneconfiguration-model": "string"
    },
)
print(r.status_code, r.json())

Response 202

{
  "code": 1,
  "message": "Hello from NoodleVoice"
}
Response fields (2)
FieldTypeNotes
codeintegerHTTP status code.
messagestringWhat happened, in words.

Other responses: 400, 401, 404. See errors.

Update a phone configuration

PUT/domains/~/phoneconfiguration/{mac}

Changes an existing phone configuration. Send the fields you want to set in the body.

Write Key Admin switch: Desk phones, Write.

Parameters

NameInTypeNotes
mac requiredpathstringThe phone's MAC address, 12 hex characters with no separators.

Request body application/json

FieldTypeNotes
phoneconfiguration-description requiredstring
phoneconfiguration-brand requiredstring
phoneconfiguration-model requiredstring
phoneconfiguration-domain requiredstring
phoneconfiguration-sidecarsarray of object
phoneconfiguration-sidecars[].phoneconfiguration-brandstring
phoneconfiguration-sidecars[].phoneconfiguration-modelstring
phoneconfiguration-extraobject
phoneconfiguration-extra.dynamicstring
phoneconfiguration-directoryobject
phoneconfiguration-directory.groupstring Default All
phoneconfiguration-directory.group-typestring Default Standard
phoneconfiguration-directory.sortstring One of: Extension, First Name, Last name Default Extension
phoneconfiguration-directory.orderstringOrder of the item. One of: asc, desc Default asc
phoneconfiguration-directory.exclusionsarray of object
phoneconfiguration-directory.exclusions[].idstringThe item's ID.
phoneconfiguration-directory.exclusions[].typestringThe kind of item. Default onnet
phoneconfiguration-buttonsarray of object
phoneconfiguration-buttons[].phoneconfiguration-button-order requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-button-type requiredstring
phoneconfiguration-buttons[].phoneconfiguration-button-feature requiredstring
phoneconfiguration-buttons[].phoneconfiguration-button-target requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-button-label requiredstring
phoneconfiguration-buttons[].phoneconfiguration-button-locked requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-extra requiredarray of string
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-labelstring
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUser requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframe requiredstringThe time frame the rule uses.

Example request

curl -X PUT "https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration/0004f2aabbcc" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneconfiguration-description": "string",
    "phoneconfiguration-brand": "string",
    "phoneconfiguration-model": "string",
    "phoneconfiguration-domain": "string"
  }'
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration/0004f2aabbcc", {
  method: "PUT",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "phoneconfiguration-description": "string",
    "phoneconfiguration-brand": "string",
    "phoneconfiguration-model": "string",
    "phoneconfiguration-domain": "string"
  }),
});
const data = await res.json();
import os, requests

r = requests.put(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration/0004f2aabbcc",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
    json={
        "phoneconfiguration-description": "string",
        "phoneconfiguration-brand": "string",
        "phoneconfiguration-model": "string",
        "phoneconfiguration-domain": "string"
    },
)
print(r.status_code, r.json())

Response 202

{
  "code": 1,
  "message": "Hello from NoodleVoice"
}
Response fields (2)
FieldTypeNotes
codeintegerHTTP status code.
messagestringWhat happened, in words.

Other responses: 400, 401, 404. See errors.

Update a desk phone

PUT/domains/~/phones

Changes the settings of a desk phone. Identify the phone by its MAC address in the request body.

Write Key Admin switch: Desk phones, Write.

Request body application/json

FieldTypeNotes
device-provisioning-mac-address requiredstring (mac) Min length 12 Max length 12
domain requiredstringThe account the item belongs to. Max length 64
reseller requiredstringThe parent account group. Set by the platform.
device-models-brand-and-model requiredstring
device-provisioning-registration-core-server requiredstring
notes requiredstring
device-provisioning-sip-uri-1 requiredstring
device-provisioning-line-1-enabled requiredstringTurns device provisioning line 1 on or off (yes or no). One of: yes, no Default no
device-provisioning-sip-uri-1-shared-line-enabled requiredstringTurns device provisioning sip uri 1 shared line on or off (yes or no).
device-provisioning-sip-uri-2 requiredstring
device-provisioning-line-2-enabled requiredstringTurns device provisioning line 2 on or off (yes or no). One of: yes, no Default no
device-provisioning-sip-uri-2-shared-line-enabled requiredstringTurns device provisioning sip uri 2 shared line on or off (yes or no).
device-provisioning-sip-transport-protocol requiredstring
device-provisioning-username requiredstring
device-provisioning-password requiredstring (password)
device-models-count-buttons requiredinteger
device-models-fxs-support-enabled requiredintegerTurns device models fxs support on or off (yes or no).
device-models-overrides-blob requiredstring
device-models-resync-support-enabled requiredstringTurns device models resync support on or off (yes or no).
device-models-shared-line-support-enabled requiredstringTurns device models shared line support on or off (yes or no).
device-models-sidecar-support-enabled requiredstringTurns device models sidecar support on or off (yes or no).
device-provisioning-last-retrieved-datetime requiredstringDevice provisioning last retrieved (date and time).
device-provisioning-directory requiredstring
device-provisioning-directory-support requiredstring
device-provisioning-line-1-extensionsstring
device-provisioning-line-2-extensionsstring
device-provisioning-ndp-hostname requiredstring
device-provisioning-presence requiredstring
created-datetime requiredstringCreated (date and time).
global-one-time-pass requiredstring
last-modified-datetimestring (date-time)Last modified (date and time).
redundency requiredstring
device-provisioning-sip-uri-3string
device-provisioning-line-3-enabledstringTurns device provisioning line 3 on or off (yes or no).
device-provisioning-sip-uri-3-shared-line-enabledstringTurns device provisioning sip uri 3 shared line on or off (yes or no).
device-provisioning-sip-uri-4string
device-provisioning-line-4-enabledstringTurns device provisioning line 4 on or off (yes or no).
device-provisioning-sip-uri-4-shared-line-enabledstringTurns device provisioning sip uri 4 shared line on or off (yes or no).
device-provisioning-sip-uri-5string
device-provisioning-line-5-enabledstringTurns device provisioning line 5 on or off (yes or no).
device-provisioning-sip-uri-5-shared-line-enabledstringTurns device provisioning sip uri 5 shared line on or off (yes or no).
device-provisioning-sip-uri-6string
device-provisioning-line-6-enabledstringTurns device provisioning line 6 on or off (yes or no).
device-provisioning-sip-uri-6-shared-line-enabledstringTurns device provisioning sip uri 6 shared line on or off (yes or no).
device-provisioning-sip-uri-7string
device-provisioning-line-7-enabledstringTurns device provisioning line 7 on or off (yes or no).
device-provisioning-sip-uri-7-shared-line-enabledstringTurns device provisioning sip uri 7 shared line on or off (yes or no).
device-provisioning-sip-uri-8string
device-provisioning-line-8-enabledstringTurns device provisioning line 8 on or off (yes or no).
device-provisioning-sip-uri-8-shared-line-enabledstringTurns device provisioning sip uri 8 shared line on or off (yes or no).
device-sip-registration-contactstring
device-sip-registration-datetimestringDevice sip registration (date and time).
device-sip-registration-expires-datetimestringDevice sip registration expires (date and time).
device-sip-registration-statestring
device-sip-registration-user-agentstring

Example request

curl -X PUT "https://api.noodlevoice.com/ns-api/v2/domains/~/phones" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "device-provisioning-mac-address": "string",
    "domain": "string",
    "reseller": "string",
    "device-models-brand-and-model": "string",
    "device-provisioning-registration-core-server": "string",
    "notes": "string",
    "device-provisioning-sip-uri-1": "string",
    "device-provisioning-line-1-enabled": "yes",
    "device-provisioning-sip-uri-1-shared-line-enabled": "yes",
    "device-provisioning-sip-uri-2": "string",
    "device-provisioning-line-2-enabled": "yes",
    "device-provisioning-sip-uri-2-shared-line-enabled": "yes",
    "device-provisioning-sip-transport-protocol": "string",
    "device-provisioning-username": "string",
    "device-provisioning-password": "string",
    "device-models-count-buttons": 1,
    "device-models-fxs-support-enabled": 1,
    "device-models-overrides-blob": "string",
    "device-models-resync-support-enabled": "yes",
    "device-models-shared-line-support-enabled": "yes",
    "device-models-sidecar-support-enabled": "yes",
    "device-provisioning-last-retrieved-datetime": "2026-11-02 09:00:00",
    "device-provisioning-directory": "string",
    "device-provisioning-directory-support": "string",
    "device-provisioning-ndp-hostname": "string",
    "device-provisioning-presence": "string",
    "created-datetime": "2026-11-02 09:00:00",
    "global-one-time-pass": "string",
    "redundency": "string"
  }'
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phones", {
  method: "PUT",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "device-provisioning-mac-address": "string",
    "domain": "string",
    "reseller": "string",
    "device-models-brand-and-model": "string",
    "device-provisioning-registration-core-server": "string",
    "notes": "string",
    "device-provisioning-sip-uri-1": "string",
    "device-provisioning-line-1-enabled": "yes",
    "device-provisioning-sip-uri-1-shared-line-enabled": "yes",
    "device-provisioning-sip-uri-2": "string",
    "device-provisioning-line-2-enabled": "yes",
    "device-provisioning-sip-uri-2-shared-line-enabled": "yes",
    "device-provisioning-sip-transport-protocol": "string",
    "device-provisioning-username": "string",
    "device-provisioning-password": "string",
    "device-models-count-buttons": 1,
    "device-models-fxs-support-enabled": 1,
    "device-models-overrides-blob": "string",
    "device-models-resync-support-enabled": "yes",
    "device-models-shared-line-support-enabled": "yes",
    "device-models-sidecar-support-enabled": "yes",
    "device-provisioning-last-retrieved-datetime": "2026-11-02 09:00:00",
    "device-provisioning-directory": "string",
    "device-provisioning-directory-support": "string",
    "device-provisioning-ndp-hostname": "string",
    "device-provisioning-presence": "string",
    "created-datetime": "2026-11-02 09:00:00",
    "global-one-time-pass": "string",
    "redundency": "string"
  }),
});
const data = await res.json();
import os, requests

r = requests.put(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phones",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
    json={
        "device-provisioning-mac-address": "string",
        "domain": "string",
        "reseller": "string",
        "device-models-brand-and-model": "string",
        "device-provisioning-registration-core-server": "string",
        "notes": "string",
        "device-provisioning-sip-uri-1": "string",
        "device-provisioning-line-1-enabled": "yes",
        "device-provisioning-sip-uri-1-shared-line-enabled": "yes",
        "device-provisioning-sip-uri-2": "string",
        "device-provisioning-line-2-enabled": "yes",
        "device-provisioning-sip-uri-2-shared-line-enabled": "yes",
        "device-provisioning-sip-transport-protocol": "string",
        "device-provisioning-username": "string",
        "device-provisioning-password": "string",
        "device-models-count-buttons": 1,
        "device-models-fxs-support-enabled": 1,
        "device-models-overrides-blob": "string",
        "device-models-resync-support-enabled": "yes",
        "device-models-shared-line-support-enabled": "yes",
        "device-models-sidecar-support-enabled": "yes",
        "device-provisioning-last-retrieved-datetime": "2026-11-02 09:00:00",
        "device-provisioning-directory": "string",
        "device-provisioning-directory-support": "string",
        "device-provisioning-ndp-hostname": "string",
        "device-provisioning-presence": "string",
        "created-datetime": "2026-11-02 09:00:00",
        "global-one-time-pass": "string",
        "redundency": "string"
    },
)
print(r.status_code, r.json())

Response 202

{
  "code": 1,
  "message": "Hello from NoodleVoice"
}
Response fields (2)
FieldTypeNotes
codeintegerHTTP status code.
messagestringWhat happened, in words.

Update a phone template

PUT/domains/~/phonetemplates/{name}

Changes an existing phone template. Send the fields you want to set in the body.

Write Key Admin switch: Desk phones, Write.

Parameters

NameInTypeNotes
name requiredpathstringThe name of the item.

Request body application/json

FieldTypeNotes
phoneconfiguration-description requiredstring
phoneconfiguration-sidecarsarray of object
phoneconfiguration-sidecars[].phoneconfiguration-brandstring
phoneconfiguration-sidecars[].phoneconfiguration-modelstring
phoneconfiguration-extraobject
phoneconfiguration-extra.dynamicstring
phoneconfiguration-directoryobject
phoneconfiguration-directory.groupstring Default All
phoneconfiguration-directory.group-typestring Default Standard
phoneconfiguration-directory.sortstring One of: Extension, First Name, Last name Default Extension
phoneconfiguration-directory.orderstringOrder of the item. One of: asc, desc Default asc
phoneconfiguration-directory.exclusionsarray of object
phoneconfiguration-directory.exclusions[].idstringThe item's ID.
phoneconfiguration-directory.exclusions[].typestringThe kind of item. Default onnet
phoneconfiguration-buttonsarray of object
phoneconfiguration-buttons[].phoneconfiguration-button-order requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-button-type requiredstring
phoneconfiguration-buttons[].phoneconfiguration-button-feature requiredstring
phoneconfiguration-buttons[].phoneconfiguration-button-target requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-button-label requiredstring
phoneconfiguration-buttons[].phoneconfiguration-button-locked requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-extra requiredarray of string
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-labelstring
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUser requiredinteger
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframe requiredstringThe time frame the rule uses.

Example request

curl -X PUT "https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates/{name}" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneconfiguration-description": "string"
  }'
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates/{name}", {
  method: "PUT",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "phoneconfiguration-description": "string"
  }),
});
const data = await res.json();
import os, requests

r = requests.put(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates/{name}",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
    json={
        "phoneconfiguration-description": "string"
    },
)
print(r.status_code, r.json())

Response 202

{
  "code": 1,
  "message": "Hello from NoodleVoice"
}
Response fields (2)
FieldTypeNotes
codeintegerHTTP status code.
messagestringWhat happened, in words.

Other responses: 400, 401, 404. See errors.

Delete a phone configuration

DELETE/domains/~/phoneconfiguration/{mac}

Removes a phone configuration. This can't be undone.

Write Key Admin switch: Desk phones, Write.

Parameters

NameInTypeNotes
mac requiredpathstringThe phone's MAC address, 12 hex characters with no separators.

Example request

curl -X DELETE "https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration/0004f2aabbcc" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration/0004f2aabbcc", {
  method: "DELETE",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.delete(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phoneconfiguration/0004f2aabbcc",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 202

{
  "code": 1,
  "message": "Hello from NoodleVoice"
}
Response fields (2)
FieldTypeNotes
codeintegerHTTP status code.
messagestringWhat happened, in words.

Other responses: 400, 401, 404. See errors.

Remove a desk phone

DELETE/domains/~/phones

Removes a desk phone from the account. Identify the phone by its MAC address in the request body.

Write Key Admin switch: Desk phones, Write.

Request body application/json

FieldTypeNotes
device-provisioning-mac-address requiredstring (mac) Min length 12 Max length 12
reseller requiredstringThe parent account group. Set by the platform.
device-models-brand-and-model requiredstring
device-provisioning-registration-core-server requiredstring
device-provisioning-sip-uri-1 requiredstring
device-provisioning-line-1-enabled requiredstringTurns device provisioning line 1 on or off (yes or no). One of: yes, no Default no
device-provisioning-sip-uri-1-shared-line-enabled requiredstringTurns device provisioning sip uri 1 shared line on or off (yes or no).
device-provisioning-sip-uri-2 requiredstring
device-provisioning-line-2-enabled requiredstringTurns device provisioning line 2 on or off (yes or no). One of: yes, no Default no
device-provisioning-sip-uri-2-shared-line-enabled requiredstringTurns device provisioning sip uri 2 shared line on or off (yes or no).
device-provisioning-sip-transport-protocol requiredstring
device-provisioning-username requiredstring
device-provisioning-password requiredstring (password)
device-models-count-buttons requiredinteger
device-models-fxs-support-enabled requiredintegerTurns device models fxs support on or off (yes or no).
device-models-overrides-blob requiredstring
device-models-resync-support-enabled requiredstringTurns device models resync support on or off (yes or no).
device-models-shared-line-support-enabled requiredstringTurns device models shared line support on or off (yes or no).
device-models-sidecar-support-enabled requiredstringTurns device models sidecar support on or off (yes or no).
device-provisioning-last-retrieved-datetime requiredstringDevice provisioning last retrieved (date and time).
device-provisioning-directory requiredstring
device-provisioning-directory-support requiredstring
device-provisioning-line-1-extensionsstring
device-provisioning-line-2-extensionsstring
device-provisioning-ndp-hostname requiredstring
device-provisioning-presence requiredstring
created-datetime requiredstringCreated (date and time).
global-one-time-pass requiredstring
last-modified-datetimestring (date-time)Last modified (date and time).
redundency requiredstring
device-provisioning-sip-uri-3string
device-provisioning-line-3-enabledstringTurns device provisioning line 3 on or off (yes or no).
device-provisioning-sip-uri-3-shared-line-enabledstringTurns device provisioning sip uri 3 shared line on or off (yes or no).
device-provisioning-sip-uri-4string
device-provisioning-line-4-enabledstringTurns device provisioning line 4 on or off (yes or no).
device-provisioning-sip-uri-4-shared-line-enabledstringTurns device provisioning sip uri 4 shared line on or off (yes or no).
device-provisioning-sip-uri-5string
device-provisioning-line-5-enabledstringTurns device provisioning line 5 on or off (yes or no).
device-provisioning-sip-uri-5-shared-line-enabledstringTurns device provisioning sip uri 5 shared line on or off (yes or no).
device-provisioning-sip-uri-6string
device-provisioning-line-6-enabledstringTurns device provisioning line 6 on or off (yes or no).
device-provisioning-sip-uri-6-shared-line-enabledstringTurns device provisioning sip uri 6 shared line on or off (yes or no).
device-provisioning-sip-uri-7string
device-provisioning-line-7-enabledstringTurns device provisioning line 7 on or off (yes or no).
device-provisioning-sip-uri-7-shared-line-enabledstringTurns device provisioning sip uri 7 shared line on or off (yes or no).
device-provisioning-sip-uri-8string
device-provisioning-line-8-enabledstringTurns device provisioning line 8 on or off (yes or no).
device-provisioning-sip-uri-8-shared-line-enabledstringTurns device provisioning sip uri 8 shared line on or off (yes or no).
device-sip-registration-contactstring
device-sip-registration-datetimestringDevice sip registration (date and time).
device-sip-registration-expires-datetimestringDevice sip registration expires (date and time).
device-sip-registration-statestring
device-sip-registration-user-agentstring

Example request

curl -X DELETE "https://api.noodlevoice.com/ns-api/v2/domains/~/phones" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "device-provisioning-mac-address": "string",
    "reseller": "string",
    "device-models-brand-and-model": "string",
    "device-provisioning-registration-core-server": "string",
    "device-provisioning-sip-uri-1": "string",
    "device-provisioning-line-1-enabled": "yes",
    "device-provisioning-sip-uri-1-shared-line-enabled": "yes",
    "device-provisioning-sip-uri-2": "string",
    "device-provisioning-line-2-enabled": "yes",
    "device-provisioning-sip-uri-2-shared-line-enabled": "yes",
    "device-provisioning-sip-transport-protocol": "string",
    "device-provisioning-username": "string",
    "device-provisioning-password": "string",
    "device-models-count-buttons": 1,
    "device-models-fxs-support-enabled": 1,
    "device-models-overrides-blob": "string",
    "device-models-resync-support-enabled": "yes",
    "device-models-shared-line-support-enabled": "yes",
    "device-models-sidecar-support-enabled": "yes",
    "device-provisioning-last-retrieved-datetime": "2026-11-02 09:00:00",
    "device-provisioning-directory": "string",
    "device-provisioning-directory-support": "string",
    "device-provisioning-ndp-hostname": "string",
    "device-provisioning-presence": "string",
    "created-datetime": "2026-11-02 09:00:00",
    "global-one-time-pass": "string",
    "redundency": "string"
  }'
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phones", {
  method: "DELETE",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "device-provisioning-mac-address": "string",
    "reseller": "string",
    "device-models-brand-and-model": "string",
    "device-provisioning-registration-core-server": "string",
    "device-provisioning-sip-uri-1": "string",
    "device-provisioning-line-1-enabled": "yes",
    "device-provisioning-sip-uri-1-shared-line-enabled": "yes",
    "device-provisioning-sip-uri-2": "string",
    "device-provisioning-line-2-enabled": "yes",
    "device-provisioning-sip-uri-2-shared-line-enabled": "yes",
    "device-provisioning-sip-transport-protocol": "string",
    "device-provisioning-username": "string",
    "device-provisioning-password": "string",
    "device-models-count-buttons": 1,
    "device-models-fxs-support-enabled": 1,
    "device-models-overrides-blob": "string",
    "device-models-resync-support-enabled": "yes",
    "device-models-shared-line-support-enabled": "yes",
    "device-models-sidecar-support-enabled": "yes",
    "device-provisioning-last-retrieved-datetime": "2026-11-02 09:00:00",
    "device-provisioning-directory": "string",
    "device-provisioning-directory-support": "string",
    "device-provisioning-ndp-hostname": "string",
    "device-provisioning-presence": "string",
    "created-datetime": "2026-11-02 09:00:00",
    "global-one-time-pass": "string",
    "redundency": "string"
  }),
});
const data = await res.json();
import os, requests

r = requests.delete(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phones",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
    json={
        "device-provisioning-mac-address": "string",
        "reseller": "string",
        "device-models-brand-and-model": "string",
        "device-provisioning-registration-core-server": "string",
        "device-provisioning-sip-uri-1": "string",
        "device-provisioning-line-1-enabled": "yes",
        "device-provisioning-sip-uri-1-shared-line-enabled": "yes",
        "device-provisioning-sip-uri-2": "string",
        "device-provisioning-line-2-enabled": "yes",
        "device-provisioning-sip-uri-2-shared-line-enabled": "yes",
        "device-provisioning-sip-transport-protocol": "string",
        "device-provisioning-username": "string",
        "device-provisioning-password": "string",
        "device-models-count-buttons": 1,
        "device-models-fxs-support-enabled": 1,
        "device-models-overrides-blob": "string",
        "device-models-resync-support-enabled": "yes",
        "device-models-shared-line-support-enabled": "yes",
        "device-models-sidecar-support-enabled": "yes",
        "device-provisioning-last-retrieved-datetime": "2026-11-02 09:00:00",
        "device-provisioning-directory": "string",
        "device-provisioning-directory-support": "string",
        "device-provisioning-ndp-hostname": "string",
        "device-provisioning-presence": "string",
        "created-datetime": "2026-11-02 09:00:00",
        "global-one-time-pass": "string",
        "redundency": "string"
    },
)
print(r.status_code, r.json())

Response 202

{
  "code": 1,
  "message": "Hello from NoodleVoice"
}
Response fields (2)
FieldTypeNotes
codeintegerHTTP status code.
messagestringWhat happened, in words.

Delete a phone template

DELETE/domains/~/phonetemplates/{name}

Removes a phone template. This can't be undone.

Write Key Admin switch: Desk phones, Write.

Parameters

NameInTypeNotes
name requiredpathstringThe name of the item.

Example request

curl -X DELETE "https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates/{name}" \
  -H "Authorization: Bearer $NOODLEVOICE_KEY"
const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates/{name}", {
  method: "DELETE",
  headers: {
    Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
  },
});
const data = await res.json();
import os, requests

r = requests.delete(
    "https://api.noodlevoice.com/ns-api/v2/domains/~/phonetemplates/{name}",
    headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())

Response 202

{
  "code": 1,
  "message": "Hello from NoodleVoice"
}
Response fields (2)
FieldTypeNotes
codeintegerHTTP status code.
messagestringWhat happened, in words.

Other responses: 400, 401, 404. See errors.