Launch a prebuilt video conference
Create a themed hosted video conference over REST, then retrieve participant tokens with names and access scopes.
The claim
You POST /api/video/conferences to create a prebuilt conference, themed with the colour fields the vendored REST spec lists. Those are light_primary, dark_primary, and the background, foreground, success and negative colours for each theme. display_name is the one required field. name, quality, layout, record_on_start, join_from, join_until and enable_chat are among the options. The spec’s 200 response schema carries the id you pass to GET /api/video/conferences/{id}/conference_tokens, which lists its tokens. The spec’s token schema carries name, token and scopes. You reach both as client.video.conferences.create and client.video.conferences.list_conference_tokens. The SignalWire reference describes these conferences as a prebuilt UI with no code required (https://signalwire.com/docs/apis/rest/video/video-conferences/create-video-conference).
How it works
def launch(display_name, *, name=None, record_on_start=False, quality="720p",
layout="grid-responsive", primary="#F72A72", join_from=None, join_until=None):
body = {"display_name": display_name, "record_on_start": record_on_start,
"quality": quality, "layout": layout,
"light_primary": primary, "dark_primary": primary}
for key, value in (("name", name), ("join_from", join_from), ("join_until", join_until)):
if value:
body[key] = value
return client.video.conferences.create(**body)
def tokens(conference_id):
return client.video.conferences.list_conference_tokens(conference_id)What the platform receives:
POST /api/video/conferences
{"display_name": "Workshop stand-up", "name": "workshop-standup",
"record_on_start": true, "quality": "720p", "layout": "grid-responsive",
"light_primary": "#F72A72", "dark_primary": "#F72A72",
"join_from": "2026-09-03T09:00:00Z", "join_until": "2026-09-03T10:00:00Z"}
GET /api/video/conferences/<id>/conference_tokensYou pass the id from the create response to the token listing. Each token carries scopes, which the spec describes as “a list of permissions”. The spec also documents POST /api/video/conference_tokens/{id}/reset, titled “Reset conference token”, for a token you need to invalidate.
Limitations
You prove the requests and the documented shapes. Which tokens a real conference has, and what each one’s scopes hold, appear only in the live response.
The conference UI is the platform’s, per the reference above. For a room UI you build yourself, see create-a-video-room-and-join-from-the-browser.
What to change first
Remove display_name from the body and run the verifier. The exact-body assertion fails, and the spec’s required list says why: it is the one thing a conference cannot do without.