For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Log inSign up
Support
GuidesReference
GuidesReference
    • Core
      • Overview
    • Agents
      • Overview
      • AgentBase
      • AgentServer
      • BedrockAgent
      • CLI Tools
      • Configuration
      • ContextBuilder
      • DataMap
      • FunctionResult
      • Helper Functions
      • LiveWire
      • MCP Gateway
      • PomBuilder
      • Prefabs
      • Search
      • SkillBase
      • Skills
      • SWAIGFunction
      • SWMLBuilder
      • SWMLService
      • WebService
    • RELAY
      • Overview
      • Actions
      • Call
      • Constants
      • Events
      • Message
      • RelayClient
      • RelayError
    • REST Client
      • Overview
      • Addresses
      • Calling
      • Chat
      • Compat
      • Datasphere
      • Fabric
      • Imported Numbers
      • Logs
      • Lookup
      • MFA
      • Number Groups
      • Phone Numbers
      • Project
      • PubSub
      • Queues
      • Recordings
      • Registry
      • RestClient
      • Short Codes
      • SignalWireRestError
      • SIP Profile
      • Verified Callers
      • Video
        • VideoConferences
        • VideoConferenceTokens
        • VideoRoomRecordings
        • VideoRooms
        • VideoRoomSessions
        • VideoRoomTokens
          • create
        • VideoStreams
LogoLogoSignalWire Docs
Log inSign up
Support
On this page
  • Response Example
  • Example
REST ClientVideoVideoRoomTokens

create

|View as Markdown|Open in Claude|
Was this page helpful?
Edit this page
Previous

VideoStreams

Next
Built with

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 enumsOptionalDefaults to ["room.self.audio_mute","room.self.audio_unmute","room.self.video_mute","room.self.video_unmute","room.self.deaf","room.self.undeaf","room.self.set_input_volume","room.self.set_output_volume","room.self.set_input_sensitivity","room.self.screenshare","room.self.additional_source"]
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_asenumOptionalDefaults to member
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_allowedenumOptionalDefaults to all
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