Meetings and video
Meetings are scheduled video and audio meetings owned by a user, plus the account's video settings and plans.
In the Key Admin this is the Meetings and video switch. Read lets a key call the GET endpoints below. Write lets it call the ones that change data.
Set up video meetings
/domains/~/videoTurns on video meetings for the account.
Write Key Admin switch: Meetings and video, Write.
Request body application/json
| Field | Type | Notes |
|---|---|---|
name required | string | |
subdomain required | string |
Example request
curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/video" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Front Desk",
"subdomain": "string"
}'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/video", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Front Desk",
"subdomain": "string"
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/video",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"name": "Front Desk",
"subdomain": "string"
},
)
print(r.status_code, r.json())Response 200
[
{
"id": 1,
"domain": "string",
"user": "1001",
"description": "string",
"current_timestamp": "2026-11-02 09:00:00",
"meeting-calendar-invite-id": "string",
"meeting-ordinal-sequence": 1,
"core-server": "string",
"...": "32 more fields"
}
]Response fields (40)
| Field | Type | Notes |
|---|---|---|
id | integer | The item's ID. |
domain | string | The account the item belongs to. Max length 64 |
user | string | The user ID (extension). |
description | string | A note about the item. |
current_timestamp | string (date-time) | |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status | any | |
meeting-schedule-start-datetime | string (date-time) | Meeting schedule start (date and time). |
timezone | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-dial-in-number-blob | any | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
last-modified-datetime | string (date-time) | Last modified (date and time). |
meeting-instance-actual-start-datetime | string (date-time) | Meeting instance actual start (date and time). |
Add a video plan
/domains/~/video/subscription/{slug}Adds a video meeting plan to the account.
Write Key Admin switch: Meetings and video, Write.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
slug required | path | string | The video plan's short name. |
Request body application/json
| Field | Type | Notes |
|---|---|---|
switch-plan | boolean | |
host-limit | integer | Limit on host. |
Example request
curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/video/subscription/{plan}" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"switch-plan": true,
"host-limit": 1
}'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/video/subscription/{plan}", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"switch-plan": true,
"host-limit": 1
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/video/subscription/{plan}",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"switch-plan": True,
"host-limit": 1
},
)
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: 409. See errors.
Update video settings
/domains/~/videoChanges the account's video meeting settings, such as the company name.
Write Key Admin switch: Meetings and video, Write.
Request body application/json
| Field | Type | Notes |
|---|---|---|
company-name | string | Name of the company. |
Example request
curl -X PUT "https://api.noodlevoice.com/ns-api/v2/domains/~/video" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"company-name": "Front Desk"
}'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/video", {
method: "PUT",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"company-name": "Front Desk"
}),
});
const data = await res.json();import os, requests
r = requests.put(
"https://api.noodlevoice.com/ns-api/v2/domains/~/video",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"company-name": "Front Desk"
},
)
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: 409. See errors.
Update video plans
/domains/~/video/subscriptionsChanges the account's video plans and add-ons in one request.
Write Key Admin switch: Meetings and video, Write.
Request body application/json
| Field | Type | Notes |
|---|---|---|
plans | array of string | |
add-ons | array of string | |
default-plan | string | |
default-addons | array of string |
Example request
curl -X PUT "https://api.noodlevoice.com/ns-api/v2/domains/~/video/subscriptions" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"plans": [
"string"
],
"add-ons": [
"string"
],
"default-plan": "string",
"default-addons": [
"string"
]
}'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/video/subscriptions", {
method: "PUT",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"plans": [
"string"
],
"add-ons": [
"string"
],
"default-plan": "string",
"default-addons": [
"string"
]
}),
});
const data = await res.json();import os, requests
r = requests.put(
"https://api.noodlevoice.com/ns-api/v2/domains/~/video/subscriptions",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"plans": [
"string"
],
"add-ons": [
"string"
],
"default-plan": "string",
"default-addons": [
"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: 409. See errors.
Turn off video meetings
/domains/~/videoRemoves video meetings from the account.
Write Key Admin switch: Meetings and video, Write.
Example request
curl -X DELETE "https://api.noodlevoice.com/ns-api/v2/domains/~/video" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/video", {
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/~/video",
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: 409. See errors.
Remove a video plan
/domains/~/video/subscription/{slug}Removes a video meeting plan from the account.
Write Key Admin switch: Meetings and video, Write.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
slug required | path | string | The video plan's short name. |
Example request
curl -X DELETE "https://api.noodlevoice.com/ns-api/v2/domains/~/video/subscription/{plan}" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/video/subscription/{plan}", {
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/~/video/subscription/{plan}",
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: 409. See errors.
List meetings for a user
/domains/~/users/{user}/meetingsReturns the meetings for one user.
Read Key Admin switch: Meetings and video, Read. Read only keys also work.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
Example request
curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings", {
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/~/users/1001/meetings",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())Response 200
[
{
"id": 1,
"domain": "string",
"user": "1001",
"description": "string",
"current_timestamp": "2026-11-02 09:00:00",
"meeting-calendar-invite-id": "string",
"meeting-ordinal-sequence": 1,
"core-server": "string",
"...": "32 more fields"
}
]Response fields (40)
| Field | Type | Notes |
|---|---|---|
id | integer | The item's ID. |
domain | string | The account the item belongs to. Max length 64 |
user | string | The user ID (extension). |
description | string | A note about the item. |
current_timestamp | string (date-time) | |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status | any | |
meeting-schedule-start-datetime | string (date-time) | Meeting schedule start (date and time). |
timezone | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-dial-in-number-blob | any | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
last-modified-datetime | string (date-time) | Last modified (date and time). |
meeting-instance-actual-start-datetime | string (date-time) | Meeting instance actual start (date and time). |
Count meetings for a user
/domains/~/users/{user}/meetings/countReturns how many meetings there are for one user, as {"total": n}.
Read Key Admin switch: Meetings and video, Read. Read only keys also work.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
Example request
curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/count" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/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/~/users/1001/meetings/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 meeting
/domains/~/users/{user}/meetings/{id}Returns one of a user's meetings.
Read Key Admin switch: Meetings and video, Read. Read only keys also work.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
id required | path | string | The ID of the item, as returned when you list or create it. |
Example request
curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{id}" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{id}", {
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/~/users/1001/meetings/{id}",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())Response 200
{
"id": 1,
"domain": "string",
"user": "1001",
"description": "string",
"current_timestamp": "2026-11-02 09:00:00",
"meeting-calendar-invite-id": "string",
"meeting-ordinal-sequence": 1,
"core-server": "string",
"...": "32 more fields"
}Response fields (40)
| Field | Type | Notes |
|---|---|---|
id | integer | The item's ID. |
domain | string | The account the item belongs to. Max length 64 |
user | string | The user ID (extension). |
description | string | A note about the item. |
current_timestamp | string (date-time) | |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status | any | |
meeting-schedule-start-datetime | string (date-time) | Meeting schedule start (date and time). |
timezone | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-dial-in-number-blob | any | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
last-modified-datetime | string (date-time) | Last modified (date and time). |
meeting-instance-actual-start-datetime | string (date-time) | Meeting instance actual start (date and time). |
Other responses: 404. See errors.
Get a meeting's attendance log
/domains/~/users/{user}/meetings/{id}/instance/{instance}/logReturns who joined one occurrence of a meeting and when.
Read Key Admin switch: Meetings and video, Read. Read only keys also work.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
id required | path | string | The ID of the item, as returned when you list or create it. |
instance required | path | string | The meeting occurrence ID. |
Example request
curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{id}/instance/{instance}/log" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{id}/instance/{instance}/log", {
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/~/users/1001/meetings/{id}/instance/{instance}/log",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())Response 200
{
"meeting_events": [
{}
]
}Response fields (10)
| Field | Type | Notes |
|---|---|---|
meeting_events | array of object | |
meeting_events[].event_id | string | |
meeting_events[].meeting_id | integer | |
meeting_events[].source_id | integer | |
meeting_events[].event | string | |
meeting_events[].target | string | |
meeting_events[].details | string | |
meeting_events[].timestamp | string | |
meeting_events[].meeting-instance-id | string | ID of the meeting instance. |
meeting_events[].file-source | string |
Check a meeting exists
/domains/~/users/{user}/meetings/{meeting_id}/countReturns a total of 1 when the meeting exists.
Read Key Admin switch: Meetings and video, Read. Read only keys also work.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
meeting_id required | path | string | The meeting ID. |
Example request
curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{meeting_id}/count" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{meeting_id}/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/~/users/1001/meetings/{meeting_id}/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 user's video settings
/domains/~/users/{user}/videoReturns the video meeting account settings for one user.
Read Key Admin switch: Meetings and video, Read. Read only keys also work.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
Example request
curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/video" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/video", {
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/~/users/1001/video",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())Response 200
[
{
"id": 1,
"domain": "string",
"user": "1001",
"description": "string",
"current_timestamp": "2026-11-02 09:00:00",
"meeting-calendar-invite-id": "string",
"meeting-ordinal-sequence": 1,
"core-server": "string",
"...": "32 more fields"
}
]Response fields (40)
| Field | Type | Notes |
|---|---|---|
id | integer | The item's ID. |
domain | string | The account the item belongs to. Max length 64 |
user | string | The user ID (extension). |
description | string | A note about the item. |
current_timestamp | string (date-time) | |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status | any | |
meeting-schedule-start-datetime | string (date-time) | Meeting schedule start (date and time). |
timezone | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-dial-in-number-blob | any | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
last-modified-datetime | string (date-time) | Last modified (date and time). |
meeting-instance-actual-start-datetime | string (date-time) | Meeting instance actual start (date and time). |
Get a user's video room
/domains/~/users/{user}/video/conferenceReturns the details of a user's personal video meeting room.
Read Key Admin switch: Meetings and video, Read. Read only keys also work.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
Example request
curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/video/conference" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/video/conference", {
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/~/users/1001/video/conference",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())Response 200
Returns a status code with a short JSON message.
List a user's video contacts
/domains/~/users/{user}/video/contactsReturns the people a user can invite to video meetings.
Read Key Admin switch: Meetings and video, Read. Read only keys also work.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
Example request
curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/video/contacts" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/video/contacts", {
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/~/users/1001/video/contacts",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())Response 200
[
{
"id": 1,
"domain": "string",
"user": "1001",
"description": "string",
"current_timestamp": "2026-11-02 09:00:00",
"meeting-calendar-invite-id": "string",
"meeting-ordinal-sequence": 1,
"core-server": "string",
"...": "32 more fields"
}
]Response fields (40)
| Field | Type | Notes |
|---|---|---|
id | integer | The item's ID. |
domain | string | The account the item belongs to. Max length 64 |
user | string | The user ID (extension). |
description | string | A note about the item. |
current_timestamp | string (date-time) | |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status | any | |
meeting-schedule-start-datetime | string (date-time) | Meeting schedule start (date and time). |
timezone | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-dial-in-number-blob | any | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
last-modified-datetime | string (date-time) | Last modified (date and time). |
meeting-instance-actual-start-datetime | string (date-time) | Meeting instance actual start (date and time). |
Create a meeting for a user
/domains/~/users/{user}/meetingsAdds a new meeting for one user.
Write Key Admin switch: Meetings and video, Write.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
Request body application/json
| Field | Type | Notes |
|---|---|---|
description | string | A note about the item. |
current_timestamp required | string (date-time) | |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status required | any | |
meeting-schedule-start-datetime required | string (date-time) | Meeting schedule start (date and time). |
timezone required | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled required | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-dial-in-number-blob | any | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
last-modified-datetime | string (date-time) | Last modified (date and time). |
meeting-instance-actual-start-datetime | string (date-time) | Meeting instance actual start (date and time). |
Example request
curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"current_timestamp": "2026-11-02 09:00:00",
"meeting-status": "string",
"meeting-schedule-start-datetime": "2026-11-02 09:00:00",
"timezone": "US/Alaska",
"meeting-room-enabled": 0
}'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"current_timestamp": "2026-11-02 09:00:00",
"meeting-status": "string",
"meeting-schedule-start-datetime": "2026-11-02 09:00:00",
"timezone": "US/Alaska",
"meeting-room-enabled": 0
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"current_timestamp": "2026-11-02 09:00:00",
"meeting-status": "string",
"meeting-schedule-start-datetime": "2026-11-02 09:00:00",
"timezone": "US/Alaska",
"meeting-room-enabled": 0
},
)
print(r.status_code, r.json())Response 200
[
{
"id": 1,
"domain": "string",
"user": "1001",
"description": "string",
"current_timestamp": "2026-11-02 09:00:00",
"meeting-calendar-invite-id": "string",
"meeting-ordinal-sequence": 1,
"core-server": "string",
"...": "32 more fields"
}
]Response fields (40)
| Field | Type | Notes |
|---|---|---|
id | integer | The item's ID. |
domain | string | The account the item belongs to. Max length 64 |
user | string | The user ID (extension). |
description | string | A note about the item. |
current_timestamp | string (date-time) | |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status | any | |
meeting-schedule-start-datetime | string (date-time) | Meeting schedule start (date and time). |
timezone | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-dial-in-number-blob | any | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
last-modified-datetime | string (date-time) | Last modified (date and time). |
meeting-instance-actual-start-datetime | string (date-time) | Meeting instance actual start (date and time). |
Reserve a meeting ID
/domains/~/users/{user}/meetings/getIdReturns a new meeting ID you can use when creating a meeting.
Write Key Admin switch: Meetings and video, Write.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
Example request
curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/getId" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/getId", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/getId",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())Response 200
{
"id": 1,
"registration_id": "string",
"phonenumbers": "15555550123"
}Response fields (3)
| Field | Type | Notes |
|---|---|---|
id | integer | The item's ID. |
registration_id | string | |
phonenumbers | string |
Update a meeting's details
/domains/~/users/{user}/meetings/{id}Changes a scheduled meeting's details, such as its time or attendees.
Write Key Admin switch: Meetings and video, Write.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
id required | path | string | The ID of the item, as returned when you list or create it. |
Request body application/json
| Field | Type | Notes |
|---|---|---|
description | string | A note about the item. |
current_timestamp | string | One of: YYYY-MM-DDTHH:MM:SS.ssZ |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name required | string | Name of the meeting. |
meeting-type | string | |
limits-max-participants | integer | |
meeting-status | string | |
meeting-schedule-start-datetime | string | Meeting schedule start (date and time). One of: YYYY-MM-DDTHH:MM:SS.ssZ |
timezone | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: yes, no |
meeting-audio-allowed-from | string | One of: yes, no |
meeting-chat-enabled | string | Turns meeting chat on or off (yes or no). One of: yes, no |
meeting-chat-history-enabled | string | Turns meeting chat history on or off (yes or no). One of: yes, no |
meeting-question-answer-enabled | string | Turns meeting question answer on or off (yes or no). One of: yes, no |
meeting-recording-enabled | string | Turns meeting recording on or off (yes or no). One of: yes, no |
meeting-join-require-invite-enabled | string | Turns meeting join require invite on or off (yes or no). One of: yes, no |
meeting-join-require-passcode-enabled | string | Turns meeting join require passcode on or off (yes or no). One of: yes, no |
meeting-require-host-to-begin-enabled | string | Turns meeting require host to begin on or off (yes or no). One of: yes, no |
meeting-allow-changes-from-hosts-enabled | string | Turns meeting allow changes from hosts on or off (yes or no). One of: yes, no |
meeting-hide-attendee-list-enabled | string | Turns meeting hide attendee list on or off (yes or no). One of: yes, no |
meeting-lock-enabled | string | Turns meeting lock on or off (yes or no). One of: yes, no |
meeting-lock-allowed | string | One of: yes, no |
meeting-room-enabled | string | Turns meeting room on or off (yes or no). One of: yes, no |
meeting-dial-in-number-blob | string | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | integer | |
last-modified-datetime | string | Last modified (date and time). One of: YYYY-MM-DDTHH:MM:SS.ssZ |
meeting-instance-actual-start-datetime | string | Meeting instance actual start (date and time). One of: YYYY-MM-DDTHH:MM:SS.ssZ |
Example request
curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{id}" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"meeting-name": "Front Desk"
}'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{id}", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"meeting-name": "Front Desk"
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{id}",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"meeting-name": "Front Desk"
},
)
print(r.status_code, r.json())Response 200
{
"id": 1,
"domain": "string",
"user": "1001",
"description": "string",
"current_timestamp": "2026-11-02 09:00:00",
"meeting-calendar-invite-id": "string",
"meeting-ordinal-sequence": 1,
"core-server": "string",
"...": "32 more fields"
}Response fields (40)
| Field | Type | Notes |
|---|---|---|
id | integer | The item's ID. |
domain | string | The account the item belongs to. Max length 64 |
user | string | The user ID (extension). |
description | string | A note about the item. |
current_timestamp | string (date-time) | |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status | any | |
meeting-schedule-start-datetime | string (date-time) | Meeting schedule start (date and time). |
timezone | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-dial-in-number-blob | any | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
last-modified-datetime | string (date-time) | Last modified (date and time). |
meeting-instance-actual-start-datetime | string (date-time) | Meeting instance actual start (date and time). |
Add to a meeting's attendance log
/domains/~/users/{user}/meetings/{id}/instance/{instance}/logRecords an event in the log for one occurrence of a meeting.
Write Key Admin switch: Meetings and video, Write.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
id required | path | string | The ID of the item, as returned when you list or create it. |
instance required | path | string | The meeting occurrence ID. |
Request body application/json
| Field | Type | Notes |
|---|---|---|
event required | string | |
target | string | |
details | object |
Example request
curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{id}/instance/{instance}/log" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"event": "string"
}'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{id}/instance/{instance}/log", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"event": "string"
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{id}/instance/{instance}/log",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"event": "string"
},
)
print(r.status_code, r.json())Response 200
Returns a status code with a short JSON message.
Update a meeting
/domains/~/users/{user}/meetings/{meeting}Changes one of a user's meetings.
Write Key Admin switch: Meetings and video, Write.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
meeting required | path | string | The meeting ID. |
Request body application/json
| Field | Type | Notes |
|---|---|---|
id required | integer | The item's ID. |
domain required | string | The account the item belongs to. Max length 64 |
user required | string | The user ID (extension). |
description | string | A note about the item. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status required | any | |
meeting-schedule-start-datetime required | string (date-time) | Meeting schedule start (date and time). |
timezone required | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled required | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
Example request
curl -X PUT "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{meeting_id}" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"id": 1,
"domain": "string",
"user": "1001",
"meeting-status": "string",
"meeting-schedule-start-datetime": "2026-11-02 09:00:00",
"timezone": "US/Alaska",
"meeting-room-enabled": 0
}'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{meeting_id}", {
method: "PUT",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"id": 1,
"domain": "string",
"user": "1001",
"meeting-status": "string",
"meeting-schedule-start-datetime": "2026-11-02 09:00:00",
"timezone": "US/Alaska",
"meeting-room-enabled": 0
}),
});
const data = await res.json();import os, requests
r = requests.put(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{meeting_id}",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"id": 1,
"domain": "string",
"user": "1001",
"meeting-status": "string",
"meeting-schedule-start-datetime": "2026-11-02 09:00:00",
"timezone": "US/Alaska",
"meeting-room-enabled": 0
},
)
print(r.status_code, r.json())Response 200
Returns a status code with a short JSON message.
Delete a meeting
/domains/~/users/{user}/meetings/{meeting}Cancels and removes a scheduled meeting.
Write Key Admin switch: Meetings and video, Write.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
meeting required | path | string | The meeting ID. |
Request body application/json
| Field | Type | Notes |
|---|---|---|
type required | string | The kind of item. One of: instance, attendee, meeting, record |
meeting-instance-schedule-start-datetime | string | Meeting instance schedule start (date and time). One of: YYYY-MM-DDTHH:MM:SS.ssZ |
attendeeids | array of string |
Example request
curl -X DELETE "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{meeting_id}" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "instance"
}'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{meeting_id}", {
method: "DELETE",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"type": "instance"
}),
});
const data = await res.json();import os, requests
r = requests.delete(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/meetings/{meeting_id}",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"type": "instance"
},
)
print(r.status_code, r.json())Response 200
Returns a status code with a short JSON message.
Get video settings
/domains/~/videoReturns the video meeting settings for the account.
Full access No feature switch covers this endpoint. It needs a Full access key.
Example request
curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/video" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/video", {
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/~/video",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())Response 200
[
{
"id": 1,
"domain": "string",
"user": "1001",
"description": "string",
"current_timestamp": "2026-11-02 09:00:00",
"meeting-calendar-invite-id": "string",
"meeting-ordinal-sequence": 1,
"core-server": "string",
"...": "32 more fields"
}
]Response fields (40)
| Field | Type | Notes |
|---|---|---|
id | integer | The item's ID. |
domain | string | The account the item belongs to. Max length 64 |
user | string | The user ID (extension). |
description | string | A note about the item. |
current_timestamp | string (date-time) | |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status | any | |
meeting-schedule-start-datetime | string (date-time) | Meeting schedule start (date and time). |
timezone | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-dial-in-number-blob | any | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
last-modified-datetime | string (date-time) | Last modified (date and time). |
meeting-instance-actual-start-datetime | string (date-time) | Meeting instance actual start (date and time). |
List available video plans
/domains/~/video/availableproductsReturns the video meeting plans the account can sign up for.
Full access No feature switch covers this endpoint. It needs a Full access key.
Example request
curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/video/availableproducts" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/video/availableproducts", {
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/~/video/availableproducts",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())Response 200
[
{
"id": 1,
"domain": "string",
"user": "1001",
"description": "string",
"current_timestamp": "2026-11-02 09:00:00",
"meeting-calendar-invite-id": "string",
"meeting-ordinal-sequence": 1,
"core-server": "string",
"...": "32 more fields"
}
]Response fields (40)
| Field | Type | Notes |
|---|---|---|
id | integer | The item's ID. |
domain | string | The account the item belongs to. Max length 64 |
user | string | The user ID (extension). |
description | string | A note about the item. |
current_timestamp | string (date-time) | |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status | any | |
meeting-schedule-start-datetime | string (date-time) | Meeting schedule start (date and time). |
timezone | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-dial-in-number-blob | any | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
last-modified-datetime | string (date-time) | Last modified (date and time). |
meeting-instance-actual-start-datetime | string (date-time) | Meeting instance actual start (date and time). |
List video hosts
/domains/~/video/hostsReturns the users who have video meeting host seats.
Full access No feature switch covers this endpoint. It needs a Full access key.
Example request
curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/video/hosts" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/video/hosts", {
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/~/video/hosts",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())Response 200
[
{
"id": 1,
"domain": "string",
"user": "1001",
"description": "string",
"current_timestamp": "2026-11-02 09:00:00",
"meeting-calendar-invite-id": "string",
"meeting-ordinal-sequence": 1,
"core-server": "string",
"...": "32 more fields"
}
]Response fields (40)
| Field | Type | Notes |
|---|---|---|
id | integer | The item's ID. |
domain | string | The account the item belongs to. Max length 64 |
user | string | The user ID (extension). |
description | string | A note about the item. |
current_timestamp | string (date-time) | |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status | any | |
meeting-schedule-start-datetime | string (date-time) | Meeting schedule start (date and time). |
timezone | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-dial-in-number-blob | any | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
last-modified-datetime | string (date-time) | Last modified (date and time). |
meeting-instance-actual-start-datetime | string (date-time) | Meeting instance actual start (date and time). |
List current video plans
/domains/~/video/productsReturns the video meeting plans the account has now.
Full access No feature switch covers this endpoint. It needs a Full access key.
Example request
curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/video/products" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/video/products", {
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/~/video/products",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())Response 200
[
{
"id": 1,
"domain": "string",
"user": "1001",
"description": "string",
"current_timestamp": "2026-11-02 09:00:00",
"meeting-calendar-invite-id": "string",
"meeting-ordinal-sequence": 1,
"core-server": "string",
"...": "32 more fields"
}
]Response fields (40)
| Field | Type | Notes |
|---|---|---|
id | integer | The item's ID. |
domain | string | The account the item belongs to. Max length 64 |
user | string | The user ID (extension). |
description | string | A note about the item. |
current_timestamp | string (date-time) | |
meeting-calendar-invite-id | string | ID of the meeting calendar invite. |
meeting-ordinal-sequence | integer | |
core-server | string | |
chat-session-id | string | ID of the chat session. |
meeting-registration-id | string | ID of the meeting registration. |
meeting-instance-id | string | ID of the meeting instance. |
meeting-name | string | Name of the meeting. |
meeting-type | string | One of: presentation, conference Default conference |
limits-max-participants | integer | |
meeting-status | any | |
meeting-schedule-start-datetime | string (date-time) | Meeting schedule start (date and time). |
timezone | string | One of: US/Alaska, US/Central, US/Eastern, US/Hawaii, US/Mountain, US/Pacific, Africa/Addis_Ababa, Africa/Algiers, Africa/Brazzaville, Africa/Cairo, Africa/Casablanca, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Johannesburg, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Nairobi, Africa/Timbuktu, Africa/Tripoli, Africa/Tunis, America/Antigua, America/Aruba, America/Belize, America/Bogota, America/Buenos_Aires, America/Cancun, America/Caracas, America/Cayman, America/Chihuahua, America/Costa_Rica, America/Denver, America/Detroit, America/Edmonton, America/El_Salvador, America/Ensenada, America/Grenada, America/Guadeloupe ... |
meeting-schedule-duration-minutes | integer | Meeting schedule duration, in minutes. |
meeting-schedule-recurrence-rule | string | |
meeting-video-allowed-from | string | One of: everyone, host, presenters |
meeting-audio-allowed-from | string | One of: everyone, host, presenters |
meeting-chat-enabled | integer | Turns meeting chat on or off (yes or no). Default 1 |
meeting-chat-history-enabled | integer | Turns meeting chat history on or off (yes or no). Default 1 |
meeting-question-answer-enabled | integer | Turns meeting question answer on or off (yes or no). Default 0 |
meeting-recording-enabled | integer | Turns meeting recording on or off (yes or no). Default 0 |
meeting-join-require-invite-enabled | integer | Turns meeting join require invite on or off (yes or no). Default 0 |
meeting-join-require-passcode-enabled | integer | Turns meeting join require passcode on or off (yes or no). Default 0 |
meeting-require-host-to-begin-enabled | integer | Turns meeting require host to begin on or off (yes or no). Default 0 |
meeting-allow-changes-from-hosts-enabled | integer | Turns meeting allow changes from hosts on or off (yes or no). Default 1 |
meeting-hide-attendee-list-enabled | integer | Turns meeting hide attendee list on or off (yes or no). Default 0 |
meeting-lock-enabled | integer | Turns meeting lock on or off (yes or no). Default 0 |
meeting-lock-allowed | string | |
meeting-room-enabled | integer | Turns meeting room on or off (yes or no). Default 0 |
meeting-dial-in-number-blob | any | |
meeting-passcode | string | |
meeting-previous-presenter-attendee-id | string | ID of the meeting previous presenter attendee. |
meeting-presenter-attendee-id | string | ID of the meeting presenter attendee. |
meeting-video-layout | string | One of: spotlight, conversation, grid |
last-modified-datetime | string (date-time) | Last modified (date and time). |
meeting-instance-actual-start-datetime | string (date-time) | Meeting instance actual start (date and time). |
Make a user a video host
/domains/~/users/{user}/hostGives a user a video meeting host seat.
Full access No feature switch covers this endpoint. It needs a Full access key.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
Request body application/json
| Field | Type | Notes |
|---|---|---|
name required | string | |
email required | string | Email address. Separate more than one with commas. |
password required | string | |
role | string | |
auto_record required | string | |
plan_slug required | string | |
add_on_slug required | string |
Example request
curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/host" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Front Desk",
"auto_record": "string",
"plan_slug": "string",
"email": "jane@example.com",
"password": "string",
"add_on_slug": "string"
}'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/host", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Front Desk",
"auto_record": "string",
"plan_slug": "string",
"email": "jane@example.com",
"password": "string",
"add_on_slug": "string"
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/host",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"name": "Front Desk",
"auto_record": "string",
"plan_slug": "string",
"email": "jane@example.com",
"password": "string",
"add_on_slug": "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: 409. See errors.
Sync a video host's contacts
/domains/~/users/{user}/host/contactsRefreshes the contact list a video host sees.
Full access No feature switch covers this endpoint. It needs a Full access key.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
Example request
curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/host/contacts" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"name": "Front Desk",
"email": "jane@example.com"
}
]'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/host/contacts", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify([
{
"name": "Front Desk",
"email": "jane@example.com"
}
]),
});
const data = await res.json();import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/host/contacts",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json=[
{
"name": "Front Desk",
"email": "jane@example.com"
}
],
)
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: 409. See errors.
Start a video meeting
/domains/~/users/{user}/video/conferenceStarts a video meeting from a user's room and invites the participants you list.
Full access No feature switch covers this endpoint. It needs a Full access key.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
Request body application/json
| Field | Type | Notes |
|---|---|---|
participants | array of string | The people in it, as a list of numbers or user IDs. |
Example request
curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/video/conference" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"participants": [
"string"
]
}'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/video/conference", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"participants": [
"string"
]
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/video/conference",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"participants": [
"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: 409. See errors.
Update a video host
/domains/~/users/{user}/hostChanges a video host's plan or add-ons.
Full access No feature switch covers this endpoint. It needs a Full access key.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
Request body application/json
| Field | Type | Notes |
|---|---|---|
default-plan required | string | |
plans required | array of string | |
default-addons required | array of string | |
add-ons required | array of string | |
iotum_time_format required | object | |
iotum_time_format.hm_separator required | string | |
iotum_time_format.md_format required | string | |
iotum_time_format.md_y_comma required | boolean | |
iotum_time_format.time_24hr required | boolean |
Example request
curl -X PUT "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/host" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"default-plan": "string",
"plans": [
"string"
],
"default-addons": [
"string"
],
"add-ons": [
"string"
],
"iotum_time_format": {
"hm_separator": "string",
"md_format": "string",
"md_y_comma": true,
"time_24hr": true
}
}'const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/host", {
method: "PUT",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"default-plan": "string",
"plans": [
"string"
],
"default-addons": [
"string"
],
"add-ons": [
"string"
],
"iotum_time_format": {
"hm_separator": "string",
"md_format": "string",
"md_y_comma": true,
"time_24hr": true
}
}),
});
const data = await res.json();import os, requests
r = requests.put(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/host",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"default-plan": "string",
"plans": [
"string"
],
"default-addons": [
"string"
],
"add-ons": [
"string"
],
"iotum_time_format": {
"hm_separator": "string",
"md_format": "string",
"md_y_comma": True,
"time_24hr": True
}
},
)
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: 409. See errors.
Remove a video host
/domains/~/users/{user}/hostTakes away a user's video meeting host seat.
Full access No feature switch covers this endpoint. It needs a Full access key.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
user required | path | string | The user ID, usually their extension number, like 1001. Default ~ Min length 0 Max length 16 |
Example request
curl -X DELETE "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/host" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/host", {
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/~/users/1001/host",
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: 409. See errors.