mv.conferenceRooms
Conference rooms, guests and AI notes. These methods are on mv.conferenceRooms, where mv is your client (see the Node.js SDK). Each one returns the response object and throws when the API answers with an error.
create()
Section titled “create()”Create a conference room. Returns the room with its guest link (join_url), shown only now. Phone dial-in comes from an inbound route to the room.
mv.conferenceRooms.create(body: ConferenceRoomsCreateData["body"], options?: RequestOptions): Promise<ConferenceRoomsCreateResponse>POST /conference_rooms · API reference
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
body.name |
string |
yes | |
body.moderator_pin |
string |
no | Moderator PIN (different from the participant PIN). |
body.pin |
string |
no | Participant PIN for phone dial-in (4–8 digits). |
body.schedule |
object |
no | Replaces the schedule. |
body.settings |
object |
no | Only the settings you send change (defaults on create). |
options.headers["MoreVoice-Version"] |
string |
no | The API version to use for this request. Defaults to the version the API key is pinned to. |
options.headers["Idempotency-Key"] |
string |
no | A unique key (for example a UUID) that makes this request safe to retry: for 24 hours, a retry with the same key and parameters returns the first response instead of acting twice. |
options |
RequestOptions |
no | idempotencyKey, extra headers and an abort signal: see retries and idempotency. |
Returns
Section titled “Returns”ConferenceRoomWithLink:
| Field | Type | Description |
|---|---|---|
object |
"conference_room" |
Always conference_room. |
id |
string |
A conference room ID (prefix room_). |
livemode |
boolean |
true in live mode, false in test mode. |
name |
string |
— |
owner_id |
string | null |
usr_… ID. |
active |
boolean |
Switched off rooms can’t be joined. |
has_pin |
boolean |
Phone participants need a PIN (never returned). |
pin_length |
integer | null |
— |
has_moderator_pin |
boolean |
— |
dial_in |
string[] |
Phone numbers routed to this room (inbound routes). |
settings |
ConferenceRoomSettings |
— |
schedule |
ConferenceRoomSchedule |
A scheduled room can be joined from 15 minutes before each occurrence until 2 hours after it ends. |
live |
object | null |
The session in progress, or null. |
created |
string |
An ISO-8601 timestamp in UTC. |
updated |
string |
An ISO-8601 timestamp in UTC. |
join_url |
string |
The guest link: anyone with it can join as a guest. Shown only now — store it. |
Example
Section titled “Example”import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
const conferenceRoomWithLink = await mv.conferenceRooms.create({ name: "Weekly sales sync", pin: "4821", schedule: { end_at: "2026-11-03T10:30:00+02:00", recurrence: "weekly", start_at: "2026-11-03T10:00:00+02:00", }, settings: { ai_note_taker: true, language: "he", },});console.log(conferenceRoomWithLink);createLink()
Section titled “createLink()”Create a new guest link. Replaces the room’s guest link: the previous one stops working at once. The new join_url is shown only now.
mv.conferenceRooms.createLink(id: ConferenceRoomsCreateLinkData["path"]["id"], body?: ConferenceRoomsCreateLinkData["body"], options?: RequestOptions): Promise<ConferenceRoomsCreateLinkResponse>POST /conference_rooms/{id}/links · API reference
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | A conference room ID (room_…). |
options.headers["MoreVoice-Version"] |
string |
no | The API version to use for this request. Defaults to the version the API key is pinned to. |
options.headers["Idempotency-Key"] |
string |
no | A unique key (for example a UUID) that makes this request safe to retry: for 24 hours, a retry with the same key and parameters returns the first response instead of acting twice. |
options |
RequestOptions |
no | idempotencyKey, extra headers and an abort signal: see retries and idempotency. |
Returns
Section titled “Returns”ConferenceRoomWithLink:
| Field | Type | Description |
|---|---|---|
object |
"conference_room" |
Always conference_room. |
id |
string |
A conference room ID (prefix room_). |
livemode |
boolean |
true in live mode, false in test mode. |
name |
string |
— |
owner_id |
string | null |
usr_… ID. |
active |
boolean |
Switched off rooms can’t be joined. |
has_pin |
boolean |
Phone participants need a PIN (never returned). |
pin_length |
integer | null |
— |
has_moderator_pin |
boolean |
— |
dial_in |
string[] |
Phone numbers routed to this room (inbound routes). |
settings |
ConferenceRoomSettings |
— |
schedule |
ConferenceRoomSchedule |
A scheduled room can be joined from 15 minutes before each occurrence until 2 hours after it ends. |
live |
object | null |
The session in progress, or null. |
created |
string |
An ISO-8601 timestamp in UTC. |
updated |
string |
An ISO-8601 timestamp in UTC. |
join_url |
string |
The guest link: anyone with it can join as a guest. Shown only now — store it. |
Example
Section titled “Example”import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
const conferenceRoomWithLink = await mv.conferenceRooms.createLink("room_7Hk2Lm9Qp", {});console.log(conferenceRoomWithLink);delete()
Section titled “delete()”Delete a conference room. Ends a session in progress, unlinks the room’s inbound routes and deletes it. Its past sessions (call records) stay.
mv.conferenceRooms.delete(id: ConferenceRoomsDeleteData["path"]["id"], options?: RequestOptions): Promise<ConferenceRoomsDeleteResponse>DELETE /conference_rooms/{id} · API reference
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | A conference room ID (room_…). |
options.headers["MoreVoice-Version"] |
string |
no | The API version to use for this request. Defaults to the version the API key is pinned to. |
options.headers["Idempotency-Key"] |
string |
no | A unique key (for example a UUID) that makes this request safe to retry: for 24 hours, a retry with the same key and parameters returns the first response instead of acting twice. |
options |
RequestOptions |
no | idempotencyKey, extra headers and an abort signal: see retries and idempotency. |
Returns
Section titled “Returns”DeletedConferenceRoom:
| Field | Type | Description |
|---|---|---|
object |
"conference_room" |
Always conference_room. |
id |
string |
A conference room ID (prefix room_). |
deleted |
true |
— |
Example
Section titled “Example”import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
const deletedConferenceRoom = await mv.conferenceRooms.delete("room_7Hk2Lm9Qp");console.log(deletedConferenceRoom);invite()
Section titled “invite()”Email invitations. Emails each address the room’s guest link, phone dial-in and a calendar file, in the room’s language. Needs a live key.
mv.conferenceRooms.invite(id: ConferenceRoomsInviteData["path"]["id"], body: ConferenceRoomsInviteData["body"], options?: RequestOptions): Promise<ConferenceRoomsInviteResponse>POST /conference_rooms/{id}/invite · API reference
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | A conference room ID (room_…). |
body.emails |
string[] |
yes | Up to 50 addresses. |
body.message |
string |
no | A personal note in the invitation. |
body.pin |
string |
no | Print this participant PIN in the invitation (otherwise it says a PIN is required). |
options.headers["MoreVoice-Version"] |
string |
no | The API version to use for this request. Defaults to the version the API key is pinned to. |
options.headers["Idempotency-Key"] |
string |
no | A unique key (for example a UUID) that makes this request safe to retry: for 24 hours, a retry with the same key and parameters returns the first response instead of acting twice. |
options |
RequestOptions |
no | idempotencyKey, extra headers and an abort signal: see retries and idempotency. |
Returns
Section titled “Returns”ConferenceInviteBatch:
| Field | Type | Description |
|---|---|---|
object |
"conference_invite_batch" |
Always conference_invite_batch. |
livemode |
boolean |
true in live mode, false in test mode. |
room_id |
string |
A conference room ID (prefix room_). |
sent |
integer |
— |
results |
object[] |
— |
Example
Section titled “Example”import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
const conferenceInviteBatch = await mv.conferenceRooms.invite("room_7Hk2Lm9Qp", { emails: [ "dana@example.com", ], message: "Agenda: Q4 pipeline.",});console.log(conferenceInviteBatch);list()
Section titled “list()”List conference rooms. The organisation’s active rooms, newest first. Guest links are not included: they are shown only when created.
mv.conferenceRooms.list(query?: NonNullable<ConferenceRoomsListData["query"]>, options?: RequestOptions): PagedList<ConferenceRoomsListResponse["data"][number], NonNullable<ConferenceRoomsListData["query"]>>GET /conference_rooms · API reference
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
query.limit |
integer |
no | How many objects to return, 1–100 (default 20). |
query.starting_after |
string |
no | A cursor (next_cursor) or object ID: return the objects after it (older). |
query.ending_before |
string |
no | A cursor or object ID: return the objects before it (newer). |
options.headers["MoreVoice-Version"] |
string |
no | The API version to use for this request. Defaults to the version the API key is pinned to. |
options |
RequestOptions |
no | idempotencyKey, extra headers and an abort signal: see retries and idempotency. |
Returns
Section titled “Returns”A PagedList: await it for the first page, for await it for every item.
Example
Section titled “Example”import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
for await (const conferenceRoom of mv.conferenceRooms.list()) { console.log(conferenceRoom);}listSessions()
Section titled “listSessions()”List a room’s past sessions. The room’s recent sessions (up to 100), newest first, with their AI meeting notes. Each one is a call: fetch its recording and transcript through /v1/calls/{id}.
mv.conferenceRooms.listSessions(id: ConferenceRoomsListSessionsData["path"]["id"], query?: NonNullable<ConferenceRoomsListSessionsData["query"]>, options?: RequestOptions): PagedList<ConferenceRoomsListSessionsResponse["data"][number], NonNullable<ConferenceRoomsListSessionsData["query"]>>GET /conference_rooms/{id}/history · API reference
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | A conference room ID (room_…). |
query.limit |
integer |
no | How many objects to return, 1–100 (default 20). |
query.starting_after |
string |
no | A cursor (next_cursor) or object ID: return the objects after it (older). |
query.ending_before |
string |
no | A cursor or object ID: return the objects before it (newer). |
options.headers["MoreVoice-Version"] |
string |
no | The API version to use for this request. Defaults to the version the API key is pinned to. |
options |
RequestOptions |
no | idempotencyKey, extra headers and an abort signal: see retries and idempotency. |
Returns
Section titled “Returns”A PagedList: await it for the first page, for await it for every item.
Example
Section titled “Example”import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
for await (const conferenceRoom of mv.conferenceRooms.listSessions("room_7Hk2Lm9Qp")) { console.log(conferenceRoom);}moderate()
Section titled “moderate()”Moderate a live session. Acts on the session in progress (409 when nobody is in the room): mute, hold, promote or remove a participant (participant_id from GET …/live), lock or unlock the room, mute everyone but the moderators, or end the session. Returns the live view after the change. Needs a live key.
mv.conferenceRooms.moderate(id: ConferenceRoomsModerateData["path"]["id"], body?: ConferenceRoomsModerateData["body"], options?: RequestOptions): Promise<ConferenceRoomsModerateResponse>POST /conference_rooms/{id}/moderate · API reference
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | A conference room ID (room_…). |
body.end |
true |
no | End the session for everyone. |
body.hold |
boolean |
no | |
body.lock |
boolean |
no | Lock (true) or unlock the room: when locked nobody else can join. |
body.mute |
boolean |
no | |
body.mute_all |
true |
no | Mute everyone except the moderators. |
body.participant_id |
string |
no | The participant to act on (from GET …/live). |
body.remove |
true |
no | Remove the participant from the room. |
body.role |
"moderator" | "member" |
no | |
options.headers["MoreVoice-Version"] |
string |
no | The API version to use for this request. Defaults to the version the API key is pinned to. |
options.headers["Idempotency-Key"] |
string |
no | A unique key (for example a UUID) that makes this request safe to retry: for 24 hours, a retry with the same key and parameters returns the first response instead of acting twice. |
options |
RequestOptions |
no | idempotencyKey, extra headers and an abort signal: see retries and idempotency. |
Returns
Section titled “Returns”ConferenceLive:
| Field | Type | Description |
|---|---|---|
object |
"conference_live" |
Always conference_live. |
livemode |
boolean |
true in live mode, false in test mode. |
room_id |
string |
A conference room ID (prefix room_). |
active |
boolean |
A session is in progress. |
session_id |
string | null |
call_… ID. |
started_at |
string | null |
— |
locked |
boolean |
— |
recording |
boolean |
— |
participants |
object[] |
— |
Example
Section titled “Example”import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
const conferenceLive = await mv.conferenceRooms.moderate("room_7Hk2Lm9Qp", { mute: true, participant_id: "g7Hk2pQx",});console.log(conferenceLive);retrieve()
Section titled “retrieve()”Retrieve a conference room. Returns the ConferenceRoom object. Answers 404 with the code resource_missing when nothing has this ID in this organisation and mode.
mv.conferenceRooms.retrieve(id: ConferenceRoomsRetrieveData["path"]["id"], options?: RequestOptions): Promise<ConferenceRoomsRetrieveResponse>GET /conference_rooms/{id} · API reference
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | A conference room ID (room_…). |
options.headers["MoreVoice-Version"] |
string |
no | The API version to use for this request. Defaults to the version the API key is pinned to. |
options |
RequestOptions |
no | idempotencyKey, extra headers and an abort signal: see retries and idempotency. |
Returns
Section titled “Returns”ConferenceRoom:
| Field | Type | Description |
|---|---|---|
object |
"conference_room" |
Always conference_room. |
id |
string |
A conference room ID (prefix room_). |
livemode |
boolean |
true in live mode, false in test mode. |
name |
string |
— |
owner_id |
string | null |
usr_… ID. |
active |
boolean |
Switched off rooms can’t be joined. |
has_pin |
boolean |
Phone participants need a PIN (never returned). |
pin_length |
integer | null |
— |
has_moderator_pin |
boolean |
— |
dial_in |
string[] |
Phone numbers routed to this room (inbound routes). |
settings |
ConferenceRoomSettings |
— |
schedule |
ConferenceRoomSchedule |
A scheduled room can be joined from 15 minutes before each occurrence until 2 hours after it ends. |
live |
object | null |
The session in progress, or null. |
created |
string |
An ISO-8601 timestamp in UTC. |
updated |
string |
An ISO-8601 timestamp in UTC. |
Example
Section titled “Example”import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
const conferenceRoom = await mv.conferenceRooms.retrieve("room_7Hk2Lm9Qp");console.log(conferenceRoom);retrieveIcs()
Section titled “retrieveIcs()”Download the calendar invitation. An .ics file (RFC 5545) for the room’s schedule, with its guest link and phone dial-in. It carries the guest link, so it needs conference:write.
mv.conferenceRooms.retrieveIcs(id: ConferenceRoomsRetrieveIcsData["path"]["id"], options?: RequestOptions): Promise<ConferenceRoomsRetrieveIcsResponse>GET /conference_rooms/{id}/ics · API reference
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | A conference room ID (room_…). |
options.headers["MoreVoice-Version"] |
string |
no | The API version to use for this request. Defaults to the version the API key is pinned to. |
options |
RequestOptions |
no | idempotencyKey, extra headers and an abort signal: see retries and idempotency. |
Returns
Section titled “Returns”Nothing, on success.
Example
Section titled “Example”import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
const data = await mv.conferenceRooms.retrieveIcs("room_7Hk2Lm9Qp");console.log(data);retrieveLive()
Section titled “retrieveLive()”Who is in the room now. Returns the ConferenceLive object. Answers 404 with the code resource_missing when nothing has this ID in this organisation and mode.
mv.conferenceRooms.retrieveLive(id: ConferenceRoomsRetrieveLiveData["path"]["id"], options?: RequestOptions): Promise<ConferenceRoomsRetrieveLiveResponse>GET /conference_rooms/{id}/live · API reference
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | A conference room ID (room_…). |
options.headers["MoreVoice-Version"] |
string |
no | The API version to use for this request. Defaults to the version the API key is pinned to. |
options |
RequestOptions |
no | idempotencyKey, extra headers and an abort signal: see retries and idempotency. |
Returns
Section titled “Returns”ConferenceLive:
| Field | Type | Description |
|---|---|---|
object |
"conference_live" |
Always conference_live. |
livemode |
boolean |
true in live mode, false in test mode. |
room_id |
string |
A conference room ID (prefix room_). |
active |
boolean |
A session is in progress. |
session_id |
string | null |
call_… ID. |
started_at |
string | null |
— |
locked |
boolean |
— |
recording |
boolean |
— |
participants |
object[] |
— |
Example
Section titled “Example”import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
const conferenceLive = await mv.conferenceRooms.retrieveLive("room_7Hk2Lm9Qp");console.log(conferenceLive);update()
Section titled “update()”Update a conference room. Only the fields (and settings) you send change; schedule is replaced as a whole. A null PIN removes it.
mv.conferenceRooms.update(id: ConferenceRoomsUpdateData["path"]["id"], body?: ConferenceRoomsUpdateData["body"], options?: RequestOptions): Promise<ConferenceRoomsUpdateResponse>PATCH /conference_rooms/{id} · API reference
Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | A conference room ID (room_…). |
body.active |
boolean |
no | false: switch the room off (it can’t be joined). |
body.moderator_pin |
string | null |
no | A new moderator PIN; null removes it. |
body.name |
string |
no | |
body.pin |
string | null |
no | A new participant PIN; null removes it. |
body.schedule |
object |
no | Replaces the schedule. |
body.settings |
object |
no | Only the settings you send change (defaults on create). |
options.headers["MoreVoice-Version"] |
string |
no | The API version to use for this request. Defaults to the version the API key is pinned to. |
options |
RequestOptions |
no | idempotencyKey, extra headers and an abort signal: see retries and idempotency. |
Returns
Section titled “Returns”ConferenceRoom:
| Field | Type | Description |
|---|---|---|
object |
"conference_room" |
Always conference_room. |
id |
string |
A conference room ID (prefix room_). |
livemode |
boolean |
true in live mode, false in test mode. |
name |
string |
— |
owner_id |
string | null |
usr_… ID. |
active |
boolean |
Switched off rooms can’t be joined. |
has_pin |
boolean |
Phone participants need a PIN (never returned). |
pin_length |
integer | null |
— |
has_moderator_pin |
boolean |
— |
dial_in |
string[] |
Phone numbers routed to this room (inbound routes). |
settings |
ConferenceRoomSettings |
— |
schedule |
ConferenceRoomSchedule |
A scheduled room can be joined from 15 minutes before each occurrence until 2 hours after it ends. |
live |
object | null |
The session in progress, or null. |
created |
string |
An ISO-8601 timestamp in UTC. |
updated |
string |
An ISO-8601 timestamp in UTC. |
Example
Section titled “Example”import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
const conferenceRoom = await mv.conferenceRooms.update("room_7Hk2Lm9Qp", { name: "Sales sync (Tuesdays)", settings: { mute_on_entry: true, },});console.log(conferenceRoom);