Skip to content

client.conference_rooms

Conference rooms, guests and AI notes. These methods are on client.conference_rooms, where client is a MoreVoice client (see the Python SDK). On AsyncMoreVoice the same methods are awaited. Each one returns the response object and raises an exception when the API answers with an error.

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.

client.conference_rooms
def create(self, body: _m.ConferenceRoomsCreateBody | Mapping[str, Any], *, more_voice_version: str | Unset = UNSET, idempotency_key: str | Unset = UNSET) -> _m.ConferenceRoomWithLink

client.conference_rooms.create() · await async_client.conference_rooms.create() · POST /conference_rooms · API reference

Field Type Required Description
name string yes —
moderator_pin string no Moderator PIN (different from the participant PIN).
pin string no Participant PIN for phone dial-in (4–8 digits).
schedule object no Replaces the schedule.
settings object no Only the settings you send change (defaults on create).

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.
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
conference_room_with_link = client.conference_rooms.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",
},
})
print(conference_room_with_link)

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.

client.conference_rooms
def create_link(self, id: str, body: _m.ConferenceRoomLinkParamsInput | Mapping[str, Any] | Unset = UNSET, *, more_voice_version: str | Unset = UNSET, idempotency_key: str | Unset = UNSET) -> _m.ConferenceRoomWithLink

client.conference_rooms.create_link() · await async_client.conference_rooms.create_link() · POST /conference_rooms/{id}/links · API reference

Name Type Required Description
id str yes A conference room ID (room_…).

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.
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
conference_room_with_link = client.conference_rooms.create_link("room_7Hk2Lm9Qp", {})
print(conference_room_with_link)

Delete a conference room. Ends a session in progress, unlinks the room’s inbound routes and deletes it. Its past sessions (call records) stay.

client.conference_rooms
def delete(self, id: str, *, more_voice_version: str | Unset = UNSET, idempotency_key: str | Unset = UNSET) -> _m.DeletedConferenceRoom

client.conference_rooms.delete() · await async_client.conference_rooms.delete() · DELETE /conference_rooms/{id} · API reference

Name Type Required Description
id str yes A conference room ID (room_…).

DeletedConferenceRoom:

Field Type Description
object "conference_room" Always conference_room.
id string A conference room ID (prefix room_).
deleted true —
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
deleted_conference_room = client.conference_rooms.delete("room_7Hk2Lm9Qp")
print(deleted_conference_room)

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.

client.conference_rooms
def invite(self, id: str, body: _m.ConferenceRoomsInviteBody | Mapping[str, Any], *, more_voice_version: str | Unset = UNSET, idempotency_key: str | Unset = UNSET) -> _m.ConferenceInviteBatch

client.conference_rooms.invite() · await async_client.conference_rooms.invite() · POST /conference_rooms/{id}/invite · API reference

Name Type Required Description
id str yes A conference room ID (room_…).
Field Type Required Description
emails string[] yes Up to 50 addresses.
message string no A personal note in the invitation.
pin string no Print this participant PIN in the invitation (otherwise it says a PIN is required).

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[] —
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
conference_invite_batch = client.conference_rooms.invite("room_7Hk2Lm9Qp", {
"emails": [
"dana@example.com",
],
"message": "Agenda: Q4 pipeline.",
})
print(conference_invite_batch)

List conference rooms. The organisation’s active rooms, newest first. Guest links are not included: they are shown only when created.

client.conference_rooms
def list(self, *, limit: int | Unset = 20, starting_after: str | Unset = UNSET, ending_before: str | Unset = UNSET, more_voice_version: str | Unset = UNSET) -> AsyncPage[_m.ConferenceRoom]

client.conference_rooms.list() · await async_client.conference_rooms.list() · GET /conference_rooms · API reference

Name Type Required Description
limit integer no How many objects to return, 1–100 (default 20).
starting_after string no A cursor (next_cursor) or object ID: return the objects after it (older).
ending_before string no A cursor or object ID: return the objects before it (newer).

A page of results (ConferenceRoomList): data, has_more and next_cursor.

from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
for conference_room in client.conference_rooms.list():
print(conference_room)

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}.

client.conference_rooms
def list_sessions(self, id: str, *, limit: int | Unset = 20, starting_after: str | Unset = UNSET, ending_before: str | Unset = UNSET, more_voice_version: str | Unset = UNSET) -> AsyncPage[_m.ConferenceSession]

client.conference_rooms.list_sessions() · await async_client.conference_rooms.list_sessions() · GET /conference_rooms/{id}/history · API reference

Name Type Required Description
id str yes A conference room ID (room_…).
limit integer no How many objects to return, 1–100 (default 20).
starting_after string no A cursor (next_cursor) or object ID: return the objects after it (older).
ending_before string no A cursor or object ID: return the objects before it (newer).

A page of results (ConferenceSessionList): data, has_more and next_cursor.

from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
for conference_room in client.conference_rooms.list_sessions("room_7Hk2Lm9Qp"):
print(conference_room)

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.

client.conference_rooms
def moderate(self, id: str, body: _m.ConferenceRoomsModerateBody | Mapping[str, Any] | Unset = UNSET, *, more_voice_version: str | Unset = UNSET, idempotency_key: str | Unset = UNSET) -> _m.ConferenceLive

client.conference_rooms.moderate() · await async_client.conference_rooms.moderate() · POST /conference_rooms/{id}/moderate · API reference

Name Type Required Description
id str yes A conference room ID (room_…).
Field Type Required Description
end true no End the session for everyone.
hold boolean no —
lock boolean no Lock (true) or unlock the room: when locked nobody else can join.
mute boolean no —
mute_all true no Mute everyone except the moderators.
participant_id string no The participant to act on (from GET …/live).
remove true no Remove the participant from the room.
role "moderator" | "member" no —

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[] —
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
conference_live = client.conference_rooms.moderate("room_7Hk2Lm9Qp", {
"mute": True,
"participant_id": "g7Hk2pQx",
})
print(conference_live)

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.

client.conference_rooms
def retrieve(self, id: str, *, more_voice_version: str | Unset = UNSET) -> _m.ConferenceRoom

client.conference_rooms.retrieve() · await async_client.conference_rooms.retrieve() · GET /conference_rooms/{id} · API reference

Name Type Required Description
id str yes A conference room ID (room_…).

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.
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
conference_room = client.conference_rooms.retrieve("room_7Hk2Lm9Qp")
print(conference_room)

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.

client.conference_rooms
def retrieve_ics(self, id: str, *, more_voice_version: str | Unset = UNSET) -> str

client.conference_rooms.retrieve_ics() · await async_client.conference_rooms.retrieve_ics() · GET /conference_rooms/{id}/ics · API reference

Name Type Required Description
id str yes A conference room ID (room_…).

Nothing, on success.

from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
data = client.conference_rooms.retrieve_ics("room_7Hk2Lm9Qp")
print(data)

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.

client.conference_rooms
def retrieve_live(self, id: str, *, more_voice_version: str | Unset = UNSET) -> _m.ConferenceLive

client.conference_rooms.retrieve_live() · await async_client.conference_rooms.retrieve_live() · GET /conference_rooms/{id}/live · API reference

Name Type Required Description
id str yes A conference room ID (room_…).

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[] —
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
conference_live = client.conference_rooms.retrieve_live("room_7Hk2Lm9Qp")
print(conference_live)

Update a conference room. Only the fields (and settings) you send change; schedule is replaced as a whole. A null PIN removes it.

client.conference_rooms
def update(self, id: str, body: _m.ConferenceRoomsUpdateBody | Mapping[str, Any] | Unset = UNSET, *, more_voice_version: str | Unset = UNSET) -> _m.ConferenceRoom

client.conference_rooms.update() · await async_client.conference_rooms.update() · PATCH /conference_rooms/{id} · API reference

Name Type Required Description
id str yes A conference room ID (room_…).
Field Type Required Description
active boolean no false: switch the room off (it can’t be joined).
moderator_pin string | null no A new moderator PIN; null removes it.
name string no —
pin string | null no A new participant PIN; null removes it.
schedule object no Replaces the schedule.
settings object no Only the settings you send change (defaults on create).

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.
from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
conference_room = client.conference_rooms.update("room_7Hk2Lm9Qp", {
"name": "Sales sync (Tuesdays)",
"settings": {
"mute_on_entry": True,
},
})
print(conference_room)