Messaging and integrations
Text messages (SMS) Text messaging covers SMS, MMS and internal chat. Messages are grouped into threads (message sessions) per user. SMS numbers are the numbers that can send and receive texts.
In the Key Admin this is the Text messages (SMS) switch. Read lets a key call the GET endpoints below. Write lets it call the ones that change data.
This feature holds sensitive data about callers and calls. Keep what you pull secure and only keep it as long as you need it.
GET /domains/~/smsblocks
Returns the SMS blocks on the account.
Read Key Admin switch: Text messages (SMS) , Read. Read only keys also work. Sensitive data
Example request Copy curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/smsblocks" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/smsblocks", {
method: "GET",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();Copy import os, requests
r = requests.get(
"https://api.noodlevoice.com/ns-api/v2/domains/~/smsblocks",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())
Response 200
Copy [
{
"id": "string",
"requesting-number": "15555550123",
"blocked-number": "15555550123",
"domain": "string",
"status": "active",
"created-datetime": "2026-11-02 09:00:00",
"last-modified-datetime": "2026-11-02 09:00:00"
}
]
Response fields (7)
Other responses: 400, 401, 404. See errors .
GET /domains/~/smsnumbers
Returns the SMS numbers on the account.
Read Key Admin switch: Text messages (SMS) , Read. Read only keys also work. Sensitive data
Example request Copy curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/smsnumbers" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/smsnumbers", {
method: "GET",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();Copy import os, requests
r = requests.get(
"https://api.noodlevoice.com/ns-api/v2/domains/~/smsnumbers",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())
Response 200
Copy [
{
"number": "string",
"application": "string",
"domain": "string",
"carrier": "string",
"dest": "string",
"mms-capable": "false",
"group-mms-capable": "false"
}
]
Response fields (7)
POST /domains/~/smsblocks
Adds a number to the account's SMS block list.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Request body application/json
Example request Copy curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/smsblocks" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"requesting-number": "15555550123",
"blocked-number": "15555550123"
}'Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/smsblocks", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"requesting-number": "15555550123",
"blocked-number": "15555550123"
}),
});
const data = await res.json();Copy import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/smsblocks",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"requesting-number": "15555550123",
"blocked-number": "15555550123"
},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
Other responses: 400, 401, 404. See errors .
POST /domains/~/smsnumbers
Turns on texting for a number and sets who receives its messages.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Request body application/json
Example request Copy curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/smsnumbers" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"number": "string",
"application": "string"
}'Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/smsnumbers", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"number": "string",
"application": "string"
}),
});
const data = await res.json();Copy import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/smsnumbers",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"number": "string",
"application": "string"
},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
PUT /domains/~/smsblocks/{id}
Changes an existing SMS block. Send the fields you want to set in the body.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Request body application/json
Example request Copy curl -X PUT "https://api.noodlevoice.com/ns-api/v2/domains/~/smsblocks/{id}" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "active",
"created-datetime": "2026-11-02 09:00:00",
"last-modified-datetime": "2026-11-02 09:00:00"
}'Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/smsblocks/{id}", {
method: "PUT",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"status": "active",
"created-datetime": "2026-11-02 09:00:00",
"last-modified-datetime": "2026-11-02 09:00:00"
}),
});
const data = await res.json();Copy import os, requests
r = requests.put(
"https://api.noodlevoice.com/ns-api/v2/domains/~/smsblocks/{id}",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"status": "active",
"created-datetime": "2026-11-02 09:00:00",
"last-modified-datetime": "2026-11-02 09:00:00"
},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
Other responses: 400, 401, 404. See errors .
PUT /domains/~/smsnumbers/{smsnumber}
Changes an existing SMS number. Send the fields you want to set in the body.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Request body application/json
Example request Copy curl -X PUT "https://api.noodlevoice.com/ns-api/v2/domains/~/smsnumbers/15555550123" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"application": "string"
}'Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/smsnumbers/15555550123", {
method: "PUT",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"application": "string"
}),
});
const data = await res.json();Copy import os, requests
r = requests.put(
"https://api.noodlevoice.com/ns-api/v2/domains/~/smsnumbers/15555550123",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"application": "string"
},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
DELETE /domains/~/smsblocks/{id}
Removes an SMS block. This can't be undone.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Example request Copy curl -X DELETE "https://api.noodlevoice.com/ns-api/v2/domains/~/smsblocks/{id}" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/smsblocks/{id}", {
method: "DELETE",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();Copy import os, requests
r = requests.delete(
"https://api.noodlevoice.com/ns-api/v2/domains/~/smsblocks/{id}",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
Other responses: 400, 401, 404. See errors .
DELETE /domains/~/smsnumbers/{smsnumber}
Removes an SMS number. This can't be undone.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Example request Copy curl -X DELETE "https://api.noodlevoice.com/ns-api/v2/domains/~/smsnumbers/15555550123" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/smsnumbers/15555550123", {
method: "DELETE",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();Copy import os, requests
r = requests.delete(
"https://api.noodlevoice.com/ns-api/v2/domains/~/smsnumbers/15555550123",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
GET /domains/~/users/{user}/messagesessions
Returns the message threads for one user.
Read Key Admin switch: Text messages (SMS) , Read. Read only keys also work. Sensitive data
Parameters
Example request Copy curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions", {
method: "GET",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();Copy import os, requests
r = requests.get(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())
Response 200
Copy [
{
"user": "1001",
"domain": "string",
"messagesession-remote": "string",
"messagesession-muted": "string",
"messagesession-id": "string",
"messagesession-sms-number": "15555550123",
"messagesession-last-datetime": "2026-11-02 09:00:00",
"messagesession-start-datetime": "2026-11-02 09:00:00",
"...": "15 more fields"
}
]
Response fields (23)
GET /domains/~/users/{user}/messagesessions/{messagesession}
Returns one of a user's message threads.
Read Key Admin switch: Text messages (SMS) , Read. Read only keys also work. Sensitive data
Parameters
Example request Copy curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}", {
method: "GET",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();Copy import os, requests
r = requests.get(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())
Response 200
Copy [
{
"user": "1001",
"domain": "string",
"messagesession-remote": "string",
"messagesession-muted": "string",
"messagesession-id": "string",
"messagesession-sms-number": "15555550123",
"messagesession-last-datetime": "2026-11-02 09:00:00",
"messagesession-start-datetime": "2026-11-02 09:00:00",
"...": "15 more fields"
}
]
Response fields (23)
GET /domains/~/users/{user}/messagesessions/{messagesession}/messages
Returns the messages in one message thread.
Read Key Admin switch: Text messages (SMS) , Read. Read only keys also work. Sensitive data
Parameters
Example request Copy curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages", {
method: "GET",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();Copy import os, requests
r = requests.get(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())
Response 200
Copy [
{
"id": "string",
"timestamp": "YYYY-MM-DDTHH:MM:SS.ssZ",
"type": "string",
"domain": "string",
"direction": "string",
"from-number": "15555550123",
"from-user-id": "string",
"from-video-attendee-id": "string",
"...": "13 more fields"
}
]
Response fields (21)
GET /domains/~/users/{user}/smsnumbers
Returns the numbers a user can send and receive texts from.
Read Key Admin switch: Text messages (SMS) , Read. Read only keys also work. Sensitive data
Parameters
Example request Copy curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/smsnumbers" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/smsnumbers", {
method: "GET",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();Copy import os, requests
r = requests.get(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/smsnumbers",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())
Response 200
Copy [
{
"number": "string",
"application": "string",
"domain": "string",
"carrier": "string",
"dest": "string",
"mms-capable": "false",
"group-mms-capable": "false"
}
]
Response fields (7)
GET /domains/~/users/{user}/smsnumbers/count
Returns how many SMS numbers there are for one user, as {"total": n}.
Read Key Admin switch: Text messages (SMS) , Read. Read only keys also work. Sensitive data
Parameters
Example request Copy curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/smsnumbers/count" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/smsnumbers/count", {
method: "GET",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();Copy import os, requests
r = requests.get(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/smsnumbers/count",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())
Response 200
Response fields (1)
Other responses: 400, 401, 403, 404. See errors .
POST /domains/~/users/{user}/messagesessions/{messagesession}/messages
Sends an internal chat message to another user on the account.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Request body application/json
Example request Copy curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
}'Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
}),
});
const data = await res.json();Copy import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
POST /domains/~/users/{user}/messagesessions/{messagesession}/messages
Sends an internal chat message to a group of users.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Request body application/json
Example request Copy curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
}'Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
}),
});
const data = await res.json();Copy import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
POST /domains/~/users/{user}/messagesessions/{messagesession}/messages
Sends a text message to everyone in a group thread.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Request body application/json
Example request Copy curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
}'Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
}),
});
const data = await res.json();Copy import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
POST /domains/~/users/{user}/messagesessions/{messagesession}/messages
Sends a picture or file as a multimedia message.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Request body application/json
Example request Copy curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
}'Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
}),
});
const data = await res.json();Copy import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
POST /domains/~/users/{user}/messagesessions/{messagesession}/messages
Sends a text message to the other party in a thread.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Request body application/json
Example request Copy curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
}'Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
}),
});
const data = await res.json();Copy import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/messages",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
PUT /domains/~/users/{user}/messagesessions/{messagesession}
Sets the participants of a group message thread.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Request body application/json
Example request Copy curl -X PUT "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"participants": "string"
}'Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}", {
method: "PUT",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"participants": "string"
}),
});
const data = await res.json();Copy import os, requests
r = requests.put(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"participants": "string"
},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
PUT /domains/~/users/{user}/messagesessions/{messagesession}
Changes one of a user's message threads.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Request body application/json
Example request Copy curl -X PUT "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"session-name": "Front Desk"
}'Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}", {
method: "PUT",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"session-name": "Front Desk"
}),
});
const data = await res.json();Copy import os, requests
r = requests.put(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"session-name": "Front Desk"
},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
PUT /domains/~/users/{user}/messagesessions/{messagesession}/leave
Removes the user from a group message thread.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Example request Copy curl -X PUT "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/leave" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/leave", {
method: "PUT",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();Copy import os, requests
r = requests.put(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}/leave",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
DELETE /domains/~/users/{user}/messagesessions/{messagesession}
Removes one of a user's message threads. This can't be undone.
Write Key Admin switch: Text messages (SMS) , Write. Sensitive data
Parameters
Example request Copy curl -X DELETE "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}", {
method: "DELETE",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();Copy import os, requests
r = requests.delete(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messagesessions/{thread_id}",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())
Response 202
Copy {
"code": 1,
"message": "Hello from NoodleVoice"
}
Response fields (2)
GET /domains/~/messagesessions
Returns the text message threads for every user on the account.
Full access No feature switch covers this endpoint. It needs a Full access key.
Parameters
Example request Copy curl -X GET "https://api.noodlevoice.com/ns-api/v2/domains/~/messagesessions" \
-H "Authorization: Bearer $NOODLEVOICE_KEY"Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/messagesessions", {
method: "GET",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
},
});
const data = await res.json();Copy import os, requests
r = requests.get(
"https://api.noodlevoice.com/ns-api/v2/domains/~/messagesessions",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
)
print(r.status_code, r.json())
Response 200
Copy [
{
"user": "1001",
"domain": "string",
"messagesession-remote": "string",
"messagesession-muted": "string",
"messagesession-id": "string",
"messagesession-sms-number": "15555550123",
"messagesession-last-datetime": "2026-11-02 09:00:00",
"messagesession-start-datetime": "2026-11-02 09:00:00",
"...": "15 more fields"
}
]
Response fields (23)
POST /domains/~/users/{user}/messages
Sends a text message from a user. A new thread is started if one doesn't exist.
Full access No feature switch covers this endpoint. It needs a Full access key.
Parameters
Request body application/json
Example request Copy curl -X POST "https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messages" \
-H "Authorization: Bearer $NOODLEVOICE_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
}'Copy const res = await fetch("https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messages", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.NOODLEVOICE_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
}),
});
const data = await res.json();Copy import os, requests
r = requests.post(
"https://api.noodlevoice.com/ns-api/v2/domains/~/users/1001/messages",
headers={"Authorization": "Bearer " + os.environ["NOODLEVOICE_KEY"]},
json={
"type": "string",
"message": "Hello from NoodleVoice",
"destination": "15555550123"
},
)
print(r.status_code, r.json())
Response 200
Copy {
"id": "string",
"timestamp": "YYYY-MM-DDTHH:MM:SS.ssZ",
"type": "string",
"domain": "string",
"direction": "string",
"from-number": "15555550123",
"from-user-id": "string",
"from-video-attendee-id": "string",
"...": "13 more fields"
}
Response fields (21)