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
/domains/~/phoneconfiguration/countReturns 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)
| Field | Type | Notes |
|---|---|---|
total | integer | How many items matched. |
Other responses: 400, 401, 403, 404. See errors.
Get a phone's configuration
/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
| Name | In | Type | Notes |
|---|---|---|---|
mac required | path | string | The 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)
| Field | Type | Notes |
|---|---|---|
phoneconfiguration-name | string | Name of the phoneconfiguration. |
phoneconfiguration-mac-address | string | |
phoneconfiguration-description | string | |
phoneconfiguration-brand | string | |
phoneconfiguration-model | string | |
phoneconfiguration-domain | string | |
phoneconfiguration-sidecars | array of object | |
phoneconfiguration-sidecars[].phoneconfiguration-brand | string | |
phoneconfiguration-sidecars[].phoneconfiguration-model | string | |
phoneconfiguration-extra | object | |
phoneconfiguration-extra.dynamic | string | |
phoneconfiguration-directory | object | |
phoneconfiguration-directory.group | string | Default All |
phoneconfiguration-directory.group-type | string | Default Standard |
phoneconfiguration-directory.sort | string | One of: Extension, First Name, Last name Default Extension |
phoneconfiguration-directory.order | string | Order of the item. One of: asc, desc Default asc |
phoneconfiguration-directory.exclusions | array of object | |
phoneconfiguration-directory.exclusions[].id | string | The item's ID. |
phoneconfiguration-directory.exclusions[].type | string | The kind of item. Default onnet |
phoneconfiguration-buttons | array of object | |
phoneconfiguration-buttons[].phoneconfiguration-button-order | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-type | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-feature | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-target | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-label | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-locked | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra | array of string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-label | string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUser | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframe | string | The time frame the rule uses. |
last-modified-datetime | string | Last modified (date and time). |
Other responses: 400, 401, 404. See errors.
List desk phones
/domains/~/phonesReturns the desk phones on the account.
Read Key Admin switch: Desk phones, Read. Read only keys also work.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
limit | query | number (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)
| Field | Type | Notes |
|---|---|---|
device-provisioning-mac-address | string (mac) | Min length 12 Max length 12 |
domain | string | The account the item belongs to. Max length 64 |
reseller | string | The parent account group. Set by the platform. |
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 | string | Turns device provisioning line 1 on or off (yes or no). One of: yes, no Default no |
device-provisioning-sip-uri-1-shared-line-enabled | string | Turns device provisioning sip uri 1 shared line on or off (yes or no). |
device-provisioning-sip-uri-2 | string | |
device-provisioning-line-2-enabled | string | Turns device provisioning line 2 on or off (yes or no). One of: yes, no Default no |
device-provisioning-sip-uri-2-shared-line-enabled | string | Turns device provisioning sip uri 2 shared line on or off (yes or no). |
device-provisioning-sip-transport-protocol | string | |
device-provisioning-username | string | |
device-provisioning-password | string (password) | |
device-models-count-buttons | integer | |
device-models-fxs-support-enabled | integer | Turns device models fxs support on or off (yes or no). |
device-models-overrides-blob | string | |
device-models-resync-support-enabled | string | Turns device models resync support on or off (yes or no). |
device-models-shared-line-support-enabled | string | Turns device models shared line support on or off (yes or no). |
device-models-sidecar-support-enabled | string | Turns device models sidecar support on or off (yes or no). |
device-provisioning-last-retrieved-datetime | string | Device provisioning last retrieved (date and time). |
device-provisioning-directory | string | |
device-provisioning-directory-support | string | |
device-provisioning-line-1-extensions | string | |
device-provisioning-line-2-extensions | string | |
device-provisioning-ndp-hostname | string | |
device-provisioning-presence | string | |
created-datetime | string | Created (date and time). |
global-one-time-pass | string | |
last-modified-datetime | string (date-time) | Last modified (date and time). |
redundency | string | |
device-provisioning-sip-uri-3 | string | |
device-provisioning-line-3-enabled | string | Turns device provisioning line 3 on or off (yes or no). |
device-provisioning-sip-uri-3-shared-line-enabled | string | Turns device provisioning sip uri 3 shared line on or off (yes or no). |
device-provisioning-sip-uri-4 | string | |
device-provisioning-line-4-enabled | string | Turns device provisioning line 4 on or off (yes or no). |
device-provisioning-sip-uri-4-shared-line-enabled | string | Turns device provisioning sip uri 4 shared line on or off (yes or no). |
device-provisioning-sip-uri-5 | string | |
device-provisioning-line-5-enabled | string | Turns device provisioning line 5 on or off (yes or no). |
device-provisioning-sip-uri-5-shared-line-enabled | string | Turns device provisioning sip uri 5 shared line on or off (yes or no). |
device-provisioning-sip-uri-6 | string | |
device-provisioning-line-6-enabled | string | Turns device provisioning line 6 on or off (yes or no). |
device-provisioning-sip-uri-6-shared-line-enabled | string | Turns device provisioning sip uri 6 shared line on or off (yes or no). |
device-provisioning-sip-uri-7 | string | |
device-provisioning-line-7-enabled | string | Turns device provisioning line 7 on or off (yes or no). |
device-provisioning-sip-uri-7-shared-line-enabled | string | Turns device provisioning sip uri 7 shared line on or off (yes or no). |
device-provisioning-sip-uri-8 | string | |
device-provisioning-line-8-enabled | string | Turns device provisioning line 8 on or off (yes or no). |
device-provisioning-sip-uri-8-shared-line-enabled | string | Turns device provisioning sip uri 8 shared line on or off (yes or no). |
device-sip-registration-contact | string | |
device-sip-registration-datetime | string | Device sip registration (date and time). |
device-sip-registration-expires-datetime | string | Device sip registration expires (date and time). |
device-sip-registration-state | string | |
device-sip-registration-user-agent | string |
Get a desk phone
/domains/~/phones/{mac}Returns one desk phone by its MAC address.
Read Key Admin switch: Desk phones, Read. Read only keys also work.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
mac required | path | string | The phone's MAC address, 12 hex characters with no separators. |
limit | query | number (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)
| Field | Type | Notes |
|---|---|---|
device-provisioning-mac-address | string (mac) | Min length 12 Max length 12 |
domain | string | The account the item belongs to. Max length 64 |
reseller | string | The parent account group. Set by the platform. |
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 | string | Turns device provisioning line 1 on or off (yes or no). One of: yes, no Default no |
device-provisioning-sip-uri-1-shared-line-enabled | string | Turns device provisioning sip uri 1 shared line on or off (yes or no). |
device-provisioning-sip-uri-2 | string | |
device-provisioning-line-2-enabled | string | Turns device provisioning line 2 on or off (yes or no). One of: yes, no Default no |
device-provisioning-sip-uri-2-shared-line-enabled | string | Turns device provisioning sip uri 2 shared line on or off (yes or no). |
device-provisioning-sip-transport-protocol | string | |
device-provisioning-username | string | |
device-provisioning-password | string (password) | |
device-models-count-buttons | integer | |
device-models-fxs-support-enabled | integer | Turns device models fxs support on or off (yes or no). |
device-models-overrides-blob | string | |
device-models-resync-support-enabled | string | Turns device models resync support on or off (yes or no). |
device-models-shared-line-support-enabled | string | Turns device models shared line support on or off (yes or no). |
device-models-sidecar-support-enabled | string | Turns device models sidecar support on or off (yes or no). |
device-provisioning-last-retrieved-datetime | string | Device provisioning last retrieved (date and time). |
device-provisioning-directory | string | |
device-provisioning-directory-support | string | |
device-provisioning-line-1-extensions | string | |
device-provisioning-line-2-extensions | string | |
device-provisioning-ndp-hostname | string | |
device-provisioning-presence | string | |
created-datetime | string | Created (date and time). |
global-one-time-pass | string | |
last-modified-datetime | string (date-time) | Last modified (date and time). |
redundency | string | |
device-provisioning-sip-uri-3 | string | |
device-provisioning-line-3-enabled | string | Turns device provisioning line 3 on or off (yes or no). |
device-provisioning-sip-uri-3-shared-line-enabled | string | Turns device provisioning sip uri 3 shared line on or off (yes or no). |
device-provisioning-sip-uri-4 | string | |
device-provisioning-line-4-enabled | string | Turns device provisioning line 4 on or off (yes or no). |
device-provisioning-sip-uri-4-shared-line-enabled | string | Turns device provisioning sip uri 4 shared line on or off (yes or no). |
device-provisioning-sip-uri-5 | string | |
device-provisioning-line-5-enabled | string | Turns device provisioning line 5 on or off (yes or no). |
device-provisioning-sip-uri-5-shared-line-enabled | string | Turns device provisioning sip uri 5 shared line on or off (yes or no). |
device-provisioning-sip-uri-6 | string | |
device-provisioning-line-6-enabled | string | Turns device provisioning line 6 on or off (yes or no). |
device-provisioning-sip-uri-6-shared-line-enabled | string | Turns device provisioning sip uri 6 shared line on or off (yes or no). |
device-provisioning-sip-uri-7 | string | |
device-provisioning-line-7-enabled | string | Turns device provisioning line 7 on or off (yes or no). |
device-provisioning-sip-uri-7-shared-line-enabled | string | Turns device provisioning sip uri 7 shared line on or off (yes or no). |
device-provisioning-sip-uri-8 | string | |
device-provisioning-line-8-enabled | string | Turns device provisioning line 8 on or off (yes or no). |
device-provisioning-sip-uri-8-shared-line-enabled | string | Turns device provisioning sip uri 8 shared line on or off (yes or no). |
device-sip-registration-contact | string | |
device-sip-registration-datetime | string | Device sip registration (date and time). |
device-sip-registration-expires-datetime | string | Device sip registration expires (date and time). |
device-sip-registration-state | string | |
device-sip-registration-user-agent | string |
List phone templates
/domains/~/phonetemplatesReturns 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)
| Field | Type | Notes |
|---|---|---|
phoneconfiguration-name | string | Name of the phoneconfiguration. |
phoneconfiguration-mac-address | string | |
phoneconfiguration-description | string | |
phoneconfiguration-brand | string | |
phoneconfiguration-model | string | |
phoneconfiguration-domain | string | |
phoneconfiguration-sidecars | array of object | |
phoneconfiguration-sidecars[].phoneconfiguration-brand | string | |
phoneconfiguration-sidecars[].phoneconfiguration-model | string | |
phoneconfiguration-extra | object | |
phoneconfiguration-extra.dynamic | string | |
phoneconfiguration-directory | object | |
phoneconfiguration-directory.group | string | Default All |
phoneconfiguration-directory.group-type | string | Default Standard |
phoneconfiguration-directory.sort | string | One of: Extension, First Name, Last name Default Extension |
phoneconfiguration-directory.order | string | Order of the item. One of: asc, desc Default asc |
phoneconfiguration-directory.exclusions | array of object | |
phoneconfiguration-directory.exclusions[].id | string | The item's ID. |
phoneconfiguration-directory.exclusions[].type | string | The kind of item. Default onnet |
phoneconfiguration-buttons | array of object | |
phoneconfiguration-buttons[].phoneconfiguration-button-order | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-type | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-feature | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-target | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-label | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-locked | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra | array of string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-label | string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUser | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframe | string | The time frame the rule uses. |
last-modified-datetime | string | Last modified (date and time). |
Other responses: 400, 401, 404. See errors.
Count phone templates
/domains/~/phonetemplates/countReturns 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)
| Field | Type | Notes |
|---|---|---|
total | integer | How many items matched. |
Other responses: 400, 401, 403, 404. See errors.
Get a phone template
/domains/~/phonetemplates/{name}Returns one phone template by its ID.
Read Key Admin switch: Desk phones, Read. Read only keys also work.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
name required | path | string | The 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)
| Field | Type | Notes |
|---|---|---|
phoneconfiguration-name | string | Name of the phoneconfiguration. |
phoneconfiguration-mac-address | string | |
phoneconfiguration-description | string | |
phoneconfiguration-brand | string | |
phoneconfiguration-model | string | |
phoneconfiguration-domain | string | |
phoneconfiguration-sidecars | array of object | |
phoneconfiguration-sidecars[].phoneconfiguration-brand | string | |
phoneconfiguration-sidecars[].phoneconfiguration-model | string | |
phoneconfiguration-extra | object | |
phoneconfiguration-extra.dynamic | string | |
phoneconfiguration-directory | object | |
phoneconfiguration-directory.group | string | Default All |
phoneconfiguration-directory.group-type | string | Default Standard |
phoneconfiguration-directory.sort | string | One of: Extension, First Name, Last name Default Extension |
phoneconfiguration-directory.order | string | Order of the item. One of: asc, desc Default asc |
phoneconfiguration-directory.exclusions | array of object | |
phoneconfiguration-directory.exclusions[].id | string | The item's ID. |
phoneconfiguration-directory.exclusions[].type | string | The kind of item. Default onnet |
phoneconfiguration-buttons | array of object | |
phoneconfiguration-buttons[].phoneconfiguration-button-order | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-type | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-feature | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-target | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-label | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-locked | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra | array of string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-label | string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUser | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframe | string | The time frame the rule uses. |
last-modified-datetime | string | Last modified (date and time). |
Other responses: 400, 401, 404. See errors.
Create a phone configuration
/domains/~/phoneconfigurationAdds provisioning settings for a phone, keyed by its MAC address.
Write Key Admin switch: Desk phones, Write.
Request body application/json
| Field | Type | Notes |
|---|---|---|
phoneconfiguration-mac-address | string | |
phoneconfiguration-description required | string | |
phoneconfiguration-brand required | string | |
phoneconfiguration-model required | string | |
phoneconfiguration-domain required | string | |
phoneconfiguration-sidecars | array of object | |
phoneconfiguration-sidecars[].phoneconfiguration-brand | string | |
phoneconfiguration-sidecars[].phoneconfiguration-model | string | |
phoneconfiguration-extra | object | |
phoneconfiguration-extra.dynamic | string | |
phoneconfiguration-directory | object | |
phoneconfiguration-directory.group | string | Default All |
phoneconfiguration-directory.group-type | string | Default Standard |
phoneconfiguration-directory.sort | string | One of: Extension, First Name, Last name Default Extension |
phoneconfiguration-directory.order | string | Order of the item. One of: asc, desc Default asc |
phoneconfiguration-directory.exclusions | array of object | |
phoneconfiguration-directory.exclusions[].id | string | The item's ID. |
phoneconfiguration-directory.exclusions[].type | string | The kind of item. Default onnet |
phoneconfiguration-buttons | array of object | |
phoneconfiguration-buttons[].phoneconfiguration-button-order required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-type required | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-feature required | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-target required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-label required | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-locked required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra required | array of string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-label | string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUser required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframe required | string | The 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)
| Field | Type | Notes |
|---|---|---|
code | integer | HTTP status code. |
message | string | What happened, in words. |
Other responses: 400, 401, 404. See errors.
Add a desk phone
/domains/~/phonesAdds a desk phone to the account by its MAC address.
Write Key Admin switch: Desk phones, Write.
Request body application/json
| Field | Type | Notes |
|---|---|---|
device-provisioning-mac-address required | string (mac) | Min length 12 Max length 12 |
domain required | string | The account the item belongs to. Max length 64 |
reseller required | string | The parent account group. Set by the platform. |
device-models-brand-and-model required | string | |
device-provisioning-registration-core-server required | string | |
notes required | string | |
device-provisioning-sip-uri-1 required | string | |
device-provisioning-line-1-enabled required | string | Turns device provisioning line 1 on or off (yes or no). One of: yes, no Default no |
device-provisioning-sip-uri-1-shared-line-enabled required | string | Turns device provisioning sip uri 1 shared line on or off (yes or no). |
device-provisioning-sip-uri-2 required | string | |
device-provisioning-line-2-enabled required | string | Turns device provisioning line 2 on or off (yes or no). One of: yes, no Default no |
device-provisioning-sip-uri-2-shared-line-enabled required | string | Turns device provisioning sip uri 2 shared line on or off (yes or no). |
device-provisioning-sip-transport-protocol required | string | |
device-provisioning-username required | string | |
device-provisioning-password required | string (password) | |
device-models-count-buttons required | integer | |
device-models-fxs-support-enabled required | integer | Turns device models fxs support on or off (yes or no). |
device-models-overrides-blob required | string | |
device-models-resync-support-enabled required | string | Turns device models resync support on or off (yes or no). |
device-models-shared-line-support-enabled required | string | Turns device models shared line support on or off (yes or no). |
device-models-sidecar-support-enabled required | string | Turns device models sidecar support on or off (yes or no). |
device-provisioning-last-retrieved-datetime required | string | Device provisioning last retrieved (date and time). |
device-provisioning-directory required | string | |
device-provisioning-directory-support required | string | |
device-provisioning-line-1-extensions | string | |
device-provisioning-line-2-extensions | string | |
device-provisioning-ndp-hostname required | string | |
device-provisioning-presence required | string | |
created-datetime required | string | Created (date and time). |
global-one-time-pass required | string | |
last-modified-datetime | string (date-time) | Last modified (date and time). |
redundency required | string | |
device-provisioning-sip-uri-3 | string | |
device-provisioning-line-3-enabled | string | Turns device provisioning line 3 on or off (yes or no). |
device-provisioning-sip-uri-3-shared-line-enabled | string | Turns device provisioning sip uri 3 shared line on or off (yes or no). |
device-provisioning-sip-uri-4 | string | |
device-provisioning-line-4-enabled | string | Turns device provisioning line 4 on or off (yes or no). |
device-provisioning-sip-uri-4-shared-line-enabled | string | Turns device provisioning sip uri 4 shared line on or off (yes or no). |
device-provisioning-sip-uri-5 | string | |
device-provisioning-line-5-enabled | string | Turns device provisioning line 5 on or off (yes or no). |
device-provisioning-sip-uri-5-shared-line-enabled | string | Turns device provisioning sip uri 5 shared line on or off (yes or no). |
device-provisioning-sip-uri-6 | string | |
device-provisioning-line-6-enabled | string | Turns device provisioning line 6 on or off (yes or no). |
device-provisioning-sip-uri-6-shared-line-enabled | string | Turns device provisioning sip uri 6 shared line on or off (yes or no). |
device-provisioning-sip-uri-7 | string | |
device-provisioning-line-7-enabled | string | Turns device provisioning line 7 on or off (yes or no). |
device-provisioning-sip-uri-7-shared-line-enabled | string | Turns device provisioning sip uri 7 shared line on or off (yes or no). |
device-provisioning-sip-uri-8 | string | |
device-provisioning-line-8-enabled | string | Turns device provisioning line 8 on or off (yes or no). |
device-provisioning-sip-uri-8-shared-line-enabled | string | Turns device provisioning sip uri 8 shared line on or off (yes or no). |
device-sip-registration-contact | string | |
device-sip-registration-datetime | string | Device sip registration (date and time). |
device-sip-registration-expires-datetime | string | Device sip registration expires (date and time). |
device-sip-registration-state | string | |
device-sip-registration-user-agent | string |
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)
| Field | Type | Notes |
|---|---|---|
code | integer | HTTP status code. |
message | string | What happened, in words. |
Create a phone template
/domains/~/phonetemplatesAdds a new phone template on the account.
Write Key Admin switch: Desk phones, Write.
Request body application/json
| Field | Type | Notes |
|---|---|---|
phoneconfiguration-name | string | Name of the phoneconfiguration. |
phoneconfiguration-description required | string | |
phoneconfiguration-brand required | string | |
phoneconfiguration-model required | string | |
phoneconfiguration-sidecars | array of object | |
phoneconfiguration-sidecars[].phoneconfiguration-brand | string | |
phoneconfiguration-sidecars[].phoneconfiguration-model | string | |
phoneconfiguration-extra | object | |
phoneconfiguration-extra.dynamic | string | |
phoneconfiguration-directory | object | |
phoneconfiguration-directory.group | string | Default All |
phoneconfiguration-directory.group-type | string | Default Standard |
phoneconfiguration-directory.sort | string | One of: Extension, First Name, Last name Default Extension |
phoneconfiguration-directory.order | string | Order of the item. One of: asc, desc Default asc |
phoneconfiguration-directory.exclusions | array of object | |
phoneconfiguration-directory.exclusions[].id | string | The item's ID. |
phoneconfiguration-directory.exclusions[].type | string | The kind of item. Default onnet |
phoneconfiguration-buttons | array of object | |
phoneconfiguration-buttons[].phoneconfiguration-button-order required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-type required | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-feature required | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-target required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-label required | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-locked required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra required | array of string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-label | string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUser required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframe required | string | The 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)
| Field | Type | Notes |
|---|---|---|
code | integer | HTTP status code. |
message | string | What happened, in words. |
Other responses: 400, 401, 404. See errors.
Update a phone configuration
/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
| Name | In | Type | Notes |
|---|---|---|---|
mac required | path | string | The phone's MAC address, 12 hex characters with no separators. |
Request body application/json
| Field | Type | Notes |
|---|---|---|
phoneconfiguration-description required | string | |
phoneconfiguration-brand required | string | |
phoneconfiguration-model required | string | |
phoneconfiguration-domain required | string | |
phoneconfiguration-sidecars | array of object | |
phoneconfiguration-sidecars[].phoneconfiguration-brand | string | |
phoneconfiguration-sidecars[].phoneconfiguration-model | string | |
phoneconfiguration-extra | object | |
phoneconfiguration-extra.dynamic | string | |
phoneconfiguration-directory | object | |
phoneconfiguration-directory.group | string | Default All |
phoneconfiguration-directory.group-type | string | Default Standard |
phoneconfiguration-directory.sort | string | One of: Extension, First Name, Last name Default Extension |
phoneconfiguration-directory.order | string | Order of the item. One of: asc, desc Default asc |
phoneconfiguration-directory.exclusions | array of object | |
phoneconfiguration-directory.exclusions[].id | string | The item's ID. |
phoneconfiguration-directory.exclusions[].type | string | The kind of item. Default onnet |
phoneconfiguration-buttons | array of object | |
phoneconfiguration-buttons[].phoneconfiguration-button-order required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-type required | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-feature required | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-target required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-label required | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-locked required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra required | array of string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-label | string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUser required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframe required | string | The 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)
| Field | Type | Notes |
|---|---|---|
code | integer | HTTP status code. |
message | string | What happened, in words. |
Other responses: 400, 401, 404. See errors.
Update a desk phone
/domains/~/phonesChanges 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
| Field | Type | Notes |
|---|---|---|
device-provisioning-mac-address required | string (mac) | Min length 12 Max length 12 |
domain required | string | The account the item belongs to. Max length 64 |
reseller required | string | The parent account group. Set by the platform. |
device-models-brand-and-model required | string | |
device-provisioning-registration-core-server required | string | |
notes required | string | |
device-provisioning-sip-uri-1 required | string | |
device-provisioning-line-1-enabled required | string | Turns device provisioning line 1 on or off (yes or no). One of: yes, no Default no |
device-provisioning-sip-uri-1-shared-line-enabled required | string | Turns device provisioning sip uri 1 shared line on or off (yes or no). |
device-provisioning-sip-uri-2 required | string | |
device-provisioning-line-2-enabled required | string | Turns device provisioning line 2 on or off (yes or no). One of: yes, no Default no |
device-provisioning-sip-uri-2-shared-line-enabled required | string | Turns device provisioning sip uri 2 shared line on or off (yes or no). |
device-provisioning-sip-transport-protocol required | string | |
device-provisioning-username required | string | |
device-provisioning-password required | string (password) | |
device-models-count-buttons required | integer | |
device-models-fxs-support-enabled required | integer | Turns device models fxs support on or off (yes or no). |
device-models-overrides-blob required | string | |
device-models-resync-support-enabled required | string | Turns device models resync support on or off (yes or no). |
device-models-shared-line-support-enabled required | string | Turns device models shared line support on or off (yes or no). |
device-models-sidecar-support-enabled required | string | Turns device models sidecar support on or off (yes or no). |
device-provisioning-last-retrieved-datetime required | string | Device provisioning last retrieved (date and time). |
device-provisioning-directory required | string | |
device-provisioning-directory-support required | string | |
device-provisioning-line-1-extensions | string | |
device-provisioning-line-2-extensions | string | |
device-provisioning-ndp-hostname required | string | |
device-provisioning-presence required | string | |
created-datetime required | string | Created (date and time). |
global-one-time-pass required | string | |
last-modified-datetime | string (date-time) | Last modified (date and time). |
redundency required | string | |
device-provisioning-sip-uri-3 | string | |
device-provisioning-line-3-enabled | string | Turns device provisioning line 3 on or off (yes or no). |
device-provisioning-sip-uri-3-shared-line-enabled | string | Turns device provisioning sip uri 3 shared line on or off (yes or no). |
device-provisioning-sip-uri-4 | string | |
device-provisioning-line-4-enabled | string | Turns device provisioning line 4 on or off (yes or no). |
device-provisioning-sip-uri-4-shared-line-enabled | string | Turns device provisioning sip uri 4 shared line on or off (yes or no). |
device-provisioning-sip-uri-5 | string | |
device-provisioning-line-5-enabled | string | Turns device provisioning line 5 on or off (yes or no). |
device-provisioning-sip-uri-5-shared-line-enabled | string | Turns device provisioning sip uri 5 shared line on or off (yes or no). |
device-provisioning-sip-uri-6 | string | |
device-provisioning-line-6-enabled | string | Turns device provisioning line 6 on or off (yes or no). |
device-provisioning-sip-uri-6-shared-line-enabled | string | Turns device provisioning sip uri 6 shared line on or off (yes or no). |
device-provisioning-sip-uri-7 | string | |
device-provisioning-line-7-enabled | string | Turns device provisioning line 7 on or off (yes or no). |
device-provisioning-sip-uri-7-shared-line-enabled | string | Turns device provisioning sip uri 7 shared line on or off (yes or no). |
device-provisioning-sip-uri-8 | string | |
device-provisioning-line-8-enabled | string | Turns device provisioning line 8 on or off (yes or no). |
device-provisioning-sip-uri-8-shared-line-enabled | string | Turns device provisioning sip uri 8 shared line on or off (yes or no). |
device-sip-registration-contact | string | |
device-sip-registration-datetime | string | Device sip registration (date and time). |
device-sip-registration-expires-datetime | string | Device sip registration expires (date and time). |
device-sip-registration-state | string | |
device-sip-registration-user-agent | string |
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)
| Field | Type | Notes |
|---|---|---|
code | integer | HTTP status code. |
message | string | What happened, in words. |
Update a phone template
/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
| Name | In | Type | Notes |
|---|---|---|---|
name required | path | string | The name of the item. |
Request body application/json
| Field | Type | Notes |
|---|---|---|
phoneconfiguration-description required | string | |
phoneconfiguration-sidecars | array of object | |
phoneconfiguration-sidecars[].phoneconfiguration-brand | string | |
phoneconfiguration-sidecars[].phoneconfiguration-model | string | |
phoneconfiguration-extra | object | |
phoneconfiguration-extra.dynamic | string | |
phoneconfiguration-directory | object | |
phoneconfiguration-directory.group | string | Default All |
phoneconfiguration-directory.group-type | string | Default Standard |
phoneconfiguration-directory.sort | string | One of: Extension, First Name, Last name Default Extension |
phoneconfiguration-directory.order | string | Order of the item. One of: asc, desc Default asc |
phoneconfiguration-directory.exclusions | array of object | |
phoneconfiguration-directory.exclusions[].id | string | The item's ID. |
phoneconfiguration-directory.exclusions[].type | string | The kind of item. Default onnet |
phoneconfiguration-buttons | array of object | |
phoneconfiguration-buttons[].phoneconfiguration-button-order required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-type required | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-feature required | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-target required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-button-label required | string | |
phoneconfiguration-buttons[].phoneconfiguration-button-locked required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra required | array of string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.phoneconfiguration-button-label | string | |
phoneconfiguration-buttons[].phoneconfiguration-extra.targetUser required | integer | |
phoneconfiguration-buttons[].phoneconfiguration-extra.timeframe required | string | The 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)
| Field | Type | Notes |
|---|---|---|
code | integer | HTTP status code. |
message | string | What happened, in words. |
Other responses: 400, 401, 404. See errors.
Delete a phone configuration
/domains/~/phoneconfiguration/{mac}Removes a phone configuration. This can't be undone.
Write Key Admin switch: Desk phones, Write.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
mac required | path | string | The 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)
| Field | Type | Notes |
|---|---|---|
code | integer | HTTP status code. |
message | string | What happened, in words. |
Other responses: 400, 401, 404. See errors.
Remove a desk phone
/domains/~/phonesRemoves 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
| Field | Type | Notes |
|---|---|---|
device-provisioning-mac-address required | string (mac) | Min length 12 Max length 12 |
reseller required | string | The parent account group. Set by the platform. |
device-models-brand-and-model required | string | |
device-provisioning-registration-core-server required | string | |
device-provisioning-sip-uri-1 required | string | |
device-provisioning-line-1-enabled required | string | Turns device provisioning line 1 on or off (yes or no). One of: yes, no Default no |
device-provisioning-sip-uri-1-shared-line-enabled required | string | Turns device provisioning sip uri 1 shared line on or off (yes or no). |
device-provisioning-sip-uri-2 required | string | |
device-provisioning-line-2-enabled required | string | Turns device provisioning line 2 on or off (yes or no). One of: yes, no Default no |
device-provisioning-sip-uri-2-shared-line-enabled required | string | Turns device provisioning sip uri 2 shared line on or off (yes or no). |
device-provisioning-sip-transport-protocol required | string | |
device-provisioning-username required | string | |
device-provisioning-password required | string (password) | |
device-models-count-buttons required | integer | |
device-models-fxs-support-enabled required | integer | Turns device models fxs support on or off (yes or no). |
device-models-overrides-blob required | string | |
device-models-resync-support-enabled required | string | Turns device models resync support on or off (yes or no). |
device-models-shared-line-support-enabled required | string | Turns device models shared line support on or off (yes or no). |
device-models-sidecar-support-enabled required | string | Turns device models sidecar support on or off (yes or no). |
device-provisioning-last-retrieved-datetime required | string | Device provisioning last retrieved (date and time). |
device-provisioning-directory required | string | |
device-provisioning-directory-support required | string | |
device-provisioning-line-1-extensions | string | |
device-provisioning-line-2-extensions | string | |
device-provisioning-ndp-hostname required | string | |
device-provisioning-presence required | string | |
created-datetime required | string | Created (date and time). |
global-one-time-pass required | string | |
last-modified-datetime | string (date-time) | Last modified (date and time). |
redundency required | string | |
device-provisioning-sip-uri-3 | string | |
device-provisioning-line-3-enabled | string | Turns device provisioning line 3 on or off (yes or no). |
device-provisioning-sip-uri-3-shared-line-enabled | string | Turns device provisioning sip uri 3 shared line on or off (yes or no). |
device-provisioning-sip-uri-4 | string | |
device-provisioning-line-4-enabled | string | Turns device provisioning line 4 on or off (yes or no). |
device-provisioning-sip-uri-4-shared-line-enabled | string | Turns device provisioning sip uri 4 shared line on or off (yes or no). |
device-provisioning-sip-uri-5 | string | |
device-provisioning-line-5-enabled | string | Turns device provisioning line 5 on or off (yes or no). |
device-provisioning-sip-uri-5-shared-line-enabled | string | Turns device provisioning sip uri 5 shared line on or off (yes or no). |
device-provisioning-sip-uri-6 | string | |
device-provisioning-line-6-enabled | string | Turns device provisioning line 6 on or off (yes or no). |
device-provisioning-sip-uri-6-shared-line-enabled | string | Turns device provisioning sip uri 6 shared line on or off (yes or no). |
device-provisioning-sip-uri-7 | string | |
device-provisioning-line-7-enabled | string | Turns device provisioning line 7 on or off (yes or no). |
device-provisioning-sip-uri-7-shared-line-enabled | string | Turns device provisioning sip uri 7 shared line on or off (yes or no). |
device-provisioning-sip-uri-8 | string | |
device-provisioning-line-8-enabled | string | Turns device provisioning line 8 on or off (yes or no). |
device-provisioning-sip-uri-8-shared-line-enabled | string | Turns device provisioning sip uri 8 shared line on or off (yes or no). |
device-sip-registration-contact | string | |
device-sip-registration-datetime | string | Device sip registration (date and time). |
device-sip-registration-expires-datetime | string | Device sip registration expires (date and time). |
device-sip-registration-state | string | |
device-sip-registration-user-agent | string |
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)
| Field | Type | Notes |
|---|---|---|
code | integer | HTTP status code. |
message | string | What happened, in words. |
Delete a phone template
/domains/~/phonetemplates/{name}Removes a phone template. This can't be undone.
Write Key Admin switch: Desk phones, Write.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
name required | path | string | The 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)
| Field | Type | Notes |
|---|---|---|
code | integer | HTTP status code. |
message | string | What happened, in words. |
Other responses: 400, 401, 404. See errors.