create

View as MarkdownOpen in Claude

Create a room token that a participant uses to connect to a video room. The token encodes the room name, user identity, and granted permissions.

Request

room_namestringRequiredformat: "^[A-Za-z0-9_-]+$"<=100 characters
Room's unique named identifier. Allowed characters: A-Za-z0-9_-. Up to 100 characters. The room does not have to exist when the token is created, but must exist prior to joining, or ensure auto_create_room is set to true.
user_namestringOptional<=100 characters
A display name to use for the user. Up to 100 characters. (If not supplied, a random alphanumeric string will be returned for each authorization with this token.)
permissionslist of enumsOptional
A list of permissions, which define what user can do once they join the room. If `join_as` is `audience`, permissions are set to an empty array regardless of the value provided.
join_fromdatetimeOptional
The user can't join the room before this time. Expects RFC 3339 datetime: `2022-01-01T23:59:60Z`. Date only: `2022-01-01` will be converted to `2022-01-01T00:00:00Z`
join_untildatetimeOptional
The user can't join the room after this time. Expects RFC 3339 datetime: `2022-01-01T23:59:60Z`. Date only: `2022-01-01` will be converted to `2022-01-01T00:00:00Z`
remove_atdatetimeOptional
Remove user from the room at this time. Expects RFC 3339 datetime: `2022-01-01T23:59:60Z`. Date only: `2022-01-01` will be converted to `2022-01-01T00:00:00Z`
remove_after_seconds_elapsedintegerOptional<=200000
Remove user after they are in the room for N seconds.
join_audio_mutedbooleanOptionalDefaults to false
Whether the user joins the room with their audio muted.
join_video_mutedbooleanOptionalDefaults to false
Whether the user joins the room with their video muted.
auto_create_roombooleanOptionalDefaults to true
By default, if the user tries to use this token to join a room that doesn't exist, it will be created with default configuration. Set this to false to require the room to exist beforehand.
enable_room_previewsbooleanOptionalDefaults to false
Whether to generate a video with a preview of the content of the room. This parameter has effect only if this token auto-creates the room, thus it will be ignored if the room already exists.
room_display_namestringOptional<=200 characters
Display name used if a room is auto-created when the token joins. Maximum of 200 characters. Defaults to the value of room_name.
end_room_session_on_leavebooleanOptionalDefaults to false
Whether to end the room session when the member using this token leaves the room.
join_asenumOptional
Whether the user should join as a member or as a non-interactive audience participant. Audience participants cannot send audio or video.
Allowed values:
media_allowedenumOptional
Indicates what media the user is allowed to receive.
Allowed values:
room_metaobjectOptional
Set the room meta. Maximum of 2000 characters when serialized to JSON.
metaobjectOptional
Set the member meta. Maximum of 2000 characters when serialized to JSON.
sync_audio_videobooleanOptionalDefaults to false
Enable/disable jitter buffer audio-video sync.

Response

tokenstringRequired
A Room Token to be used by clients to connect to the Room.

Response Example

Response
1{
2 "token": "eyJ0eXAiOiJWUlQiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2MjIxMjAxMjMsImp0aSI6ImRmMzFjYTQ4LWRiZGMtNGJjZi1hYWU2LTQ1NWEwOGM5NDg2YSIsInN1YiI6IjBjOTdmNjM1LTFjMTMtNGZjMS04NmY3LWJiMmJlODU5ZDhiOSIsInUiOiJKb2huIERvZSIsInIiOiJteV9zdXBlcl9hd2Vzb21lX3Jvb20iLCJzIjpbInJvb20uc2VsZi5hdWRpb191bm11dGUiXSwiYWNyIjp0cnVlLCJqZiI6MTYyMDg5NjQwMCwianUiOjE2MjA5MDU5NjgsInJhdCI6MTYyMDkwMDAwMCwicnNlIjo5MDB9.5mu_H2PjQLtNBbMsBlS0c91EgsDjJzvZUFgj5-tP4VA0VoHZPIGgV_DLRGKt-BqG-DqC5LhpsdMWEFjhVkTBpQ"
3}

Example

1from signalwire.rest import RestClient
2
3client = RestClient(
4 project="your-project-id",
5 token="your-api-token",
6 host="your-space.signalwire.com",
7)
8
9token = client.video.room_tokens.create(
10 room_name="standup",
11 user_name="Alice",
12 permissions=[
13 "room.self.audio_mute",
14 "room.self.audio_unmute",
15 "room.self.video_mute",
16 "room.self.video_unmute",
17 ]
18)
19print(token["token"]) # JWT string for the client SDK