# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Twilio Rooms API version: 1.0.0 extends: openapi/twilio-rooms-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 23 - target: $.paths['/Rooms'].get update: x-apievangelist-phrasing: intent: List video rooms (older unversioned endpoint) effect: read questions: - Which video rooms are on my account, using the older unversioned Rooms list? - Can the legacy room listing filter rooms by status and creation date range? instructions: - text: Using the unversioned Rooms endpoint, list my video rooms with status {status}. slots: status: query.Status - text: On the legacy Rooms list, find rooms created after {created_after}. slots: created_after: query.DateCreatedAfter method: generated generated: '2026-09-26' - target: $.paths['/Rooms'].post update: x-apievangelist-phrasing: intent: Create a video room (older unversioned endpoint) effect: write questions: - Can I pick between group, small group and peer-to-peer when creating a room on the older unversioned endpoint? - What is the participant cap for a group room made through the legacy create-room call? instructions: - text: Via the unversioned Rooms endpoint, create a {room_type} video room named {unique_name}. slots: room_type: requestBody.Type unique_name: requestBody.UniqueName - text: Using the legacy create call, open an audio-only room named {unique_name} in media region {region}. slots: unique_name: requestBody.UniqueName region: requestBody.MediaRegion method: generated generated: '2026-09-26' - target: $.paths['/Rooms/{RoomSid}'].get update: x-apievangelist-phrasing: intent: Look up a video room (older unversioned endpoint) effect: read questions: - Can I look up a room by its unique name instead of its SID on the older unversioned endpoint? - Where do I see the details of one video room through the legacy Rooms path? instructions: - text: Using the unversioned Rooms path, show details for room {room}. slots: room: path.RoomSid - text: Pull up the legacy record for the video room called {room}. slots: room: path.RoomSid method: generated generated: '2026-09-26' - target: $.paths['/Rooms/{RoomSid}'].post update: x-apievangelist-phrasing: intent: End an in-progress video room (older unversioned endpoint) effect: destructive questions: - Can I force a live video call to end through the older unversioned Rooms endpoint? - What status do I set on the legacy room update to close a room that is still in progress? instructions: - text: Through the legacy Rooms path, end room {room} by setting its status to {status}. slots: room: path.RoomSid status: requestBody.Status - text: Shut down the in-progress room {room} using the unversioned endpoint, marking it {status}. slots: room: path.RoomSid status: requestBody.Status method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{Sid}'].get update: x-apievangelist-phrasing: intent: Fetch a video room by SID (v1) effect: read questions: - What does the v1 Rooms API return when I fetch a single room by its SID? - Where can I check a v1 room's current status and settings? instructions: - text: Fetch v1 room {room_sid}. slots: room_sid: path.Sid - text: Show me the v1 Rooms record for {room_sid}, including its type and status. slots: room_sid: path.Sid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{Sid}'].post update: x-apievangelist-phrasing: intent: Complete a video room (v1) effect: destructive questions: - Can I mark a room completed through the v1 Rooms API to kick everyone out? - Is ending a room with the v1 update call reversible? instructions: - text: Set v1 room {room_sid} to status {status}. slots: room_sid: path.Sid status: requestBody.Status - text: End the call in v1 room {room_sid} by updating its status to {status}. slots: room_sid: path.Sid status: requestBody.Status method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms'].get update: x-apievangelist-phrasing: intent: List video rooms (v1) effect: read questions: - Can the v1 room list show only completed rooms instead of in-progress ones? - Which rooms started before a given date, per the v1 Rooms API? - How many rooms can one page of the v1 room list return? instructions: - text: List v1 rooms with status {status}. slots: status: query.Status - text: Find the v1 room whose unique name is {unique_name}. slots: unique_name: query.UniqueName - text: List v1 rooms that started between {after} and {before}. slots: after: query.DateCreatedAfter before: query.DateCreatedBefore method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms'].post update: x-apievangelist-phrasing: intent: Create a video room with recording rules (v1) effect: write questions: - Can I set recording rules or make a large room when creating a room on v1? - Which video codecs can a v1 room be created with? - How long does a v1 room stay open after the last participant leaves? instructions: - text: Create a v1 {room_type} room named {unique_name}. slots: room_type: requestBody.Type unique_name: requestBody.UniqueName - text: Create a v1 room named {unique_name} with recording rules {rules}. slots: unique_name: requestBody.UniqueName rules: requestBody.RecordingRules - text: Create a v1 room capped at {max} participants that sends status events to {callback}. slots: max: requestBody.MaxParticipants callback: requestBody.StatusCallback method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Participants/{Sid}'].get update: x-apievangelist-phrasing: intent: Fetch one participant in a room effect: read questions: - Can I see when a specific participant joined and whether they are still connected? - Which details does the Rooms API keep about a single participant? instructions: - text: Fetch participant {participant_sid} in room {room_sid}. slots: participant_sid: path.Sid room_sid: path.RoomSid - text: Show the connection status of participant {participant_sid} in room {room_sid}. slots: participant_sid: path.Sid room_sid: path.RoomSid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Participants/{Sid}'].post update: x-apievangelist-phrasing: intent: Disconnect a participant from a room effect: write questions: - Can I kick someone out of a live video room from the server side? - What status do I update a room participant to so they are disconnected? instructions: - text: Disconnect participant {participant_sid} from room {room_sid}. slots: participant_sid: path.Sid room_sid: path.RoomSid - text: Set participant {participant_sid} in room {room_sid} to status {status}. slots: participant_sid: path.Sid room_sid: path.RoomSid status: requestBody.Status method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Participants'].get update: x-apievangelist-phrasing: intent: List participants in a room effect: read questions: - Who is connected to a given video room right now? - Can I list only the disconnected participants of a room, or filter by identity? instructions: - text: List the participants in room {room_sid}. slots: room_sid: path.RoomSid - text: List participants in room {room_sid} with status {status}. slots: room_sid: path.RoomSid status: query.Status - text: Find the participant with identity {identity} in room {room_sid}. slots: identity: query.Identity room_sid: path.RoomSid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Participants/{Sid}/Anonymize'].post update: x-apievangelist-phrasing: intent: Anonymize a room participant effect: destructive questions: - Can I strip personal identity from a participant record after a video call? - Is there a way to anonymize someone who took part in a room? instructions: - text: Anonymize participant {participant_sid} in room {room_sid}. slots: participant_sid: path.Sid room_sid: path.RoomSid - text: Remove identifying details for participant {participant_sid} of room {room_sid}. slots: participant_sid: path.Sid room_sid: path.RoomSid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks/{Sid}'].get update: x-apievangelist-phrasing: intent: Fetch one track a participant published effect: read questions: - Can I look up a single published track by its track name or SID? - What does one audio or video track a participant is publishing look like? instructions: - text: Fetch published track {track} from participant {participant_sid} in room {room_sid}. slots: track: path.Sid participant_sid: path.ParticipantSid room_sid: path.RoomSid - text: Show the published track {track} for participant {participant_sid} in room {room_sid}. slots: track: path.Sid participant_sid: path.ParticipantSid room_sid: path.RoomSid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks'].get update: x-apievangelist-phrasing: intent: List tracks a participant is publishing effect: read questions: - Which audio and video tracks is a participant currently publishing? - Does the published tracks list include tracks a participant already stopped sharing? instructions: - text: List the tracks participant {participant_sid} is publishing in room {room_sid}. slots: participant_sid: path.ParticipantSid room_sid: path.RoomSid - text: Show everything participant {participant_sid} currently shares in room {room_sid}. slots: participant_sid: path.ParticipantSid room_sid: path.RoomSid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules'].get update: x-apievangelist-phrasing: intent: Get a participant's subscribe rules effect: read questions: - What subscribe rules currently control which tracks a participant receives? - Where can I read the track subscription rules set for one participant? instructions: - text: Get the subscribe rules for participant {participant_sid} in room {room_sid}. slots: participant_sid: path.ParticipantSid room_sid: path.RoomSid - text: Show which tracks participant {participant_sid} in room {room_sid} is set to receive. slots: participant_sid: path.ParticipantSid room_sid: path.RoomSid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules'].post update: x-apievangelist-phrasing: intent: Change a participant's subscribe rules effect: write questions: - Can I stop a participant from receiving someone else's video from the server? - What format do subscribe rules take when I change them for a participant? instructions: - text: Replace the subscribe rules for participant {participant_sid} in room {room_sid} with {rules}. slots: participant_sid: path.ParticipantSid room_sid: path.RoomSid rules: requestBody.Rules - text: Update participant {participant_sid} in room {room_sid} so they only receive tracks per {rules}. slots: participant_sid: path.ParticipantSid room_sid: path.RoomSid rules: requestBody.Rules method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks/{Sid}'].get update: x-apievangelist-phrasing: intent: Fetch one track a participant is subscribed to effect: read questions: - Why do I need a track SID rather than a name to look up a subscribed track? - Can I inspect a single track that a participant is receiving? instructions: - text: Fetch subscribed track {track_sid} for participant {participant_sid} in room {room_sid}. slots: track_sid: path.Sid participant_sid: path.ParticipantSid room_sid: path.RoomSid - text: Show details of track {track_sid} that participant {participant_sid} receives in room {room_sid}. slots: track_sid: path.Sid participant_sid: path.ParticipantSid room_sid: path.RoomSid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks'].get update: x-apievangelist-phrasing: intent: List tracks a participant is subscribed to effect: read questions: - Which tracks is a participant receiving from others in the room? - Can I see every subscribed track for one person on a video call? instructions: - text: List the tracks participant {participant_sid} is subscribed to in room {room_sid}. slots: participant_sid: path.ParticipantSid room_sid: path.RoomSid - text: Show what participant {participant_sid} is receiving in room {room_sid}. slots: participant_sid: path.ParticipantSid room_sid: path.RoomSid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Recordings/{Sid}'].get update: x-apievangelist-phrasing: intent: Fetch one recording from a room effect: read questions: - Can I check whether a specific room recording has finished processing? - What details does a single room recording expose? instructions: - text: Fetch recording {recording_sid} from room {room_sid}. slots: recording_sid: path.Sid room_sid: path.RoomSid - text: Show the status of room recording {recording_sid} in room {room_sid}. slots: recording_sid: path.Sid room_sid: path.RoomSid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Recordings/{Sid}'].delete update: x-apievangelist-phrasing: intent: Delete a room recording effect: destructive questions: - Can I permanently remove a recorded track from a finished video room? - What happens to a room recording once I delete it? instructions: - text: Delete recording {recording_sid} from room {room_sid}. slots: recording_sid: path.Sid room_sid: path.RoomSid - text: Remove room {room_sid}'s recording {recording_sid} for good. slots: recording_sid: path.Sid room_sid: path.RoomSid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/Recordings'].get update: x-apievangelist-phrasing: intent: List recordings made in a room effect: read questions: - Which recordings were captured in a given video room? - Can I list only the recordings still processing, or those from one source track? instructions: - text: List the recordings for room {room_sid}. slots: room_sid: path.RoomSid - text: List recordings in room {room_sid} with status {status}. slots: room_sid: path.RoomSid status: query.Status - text: Find recordings in room {room_sid} made from source {source_sid}. slots: room_sid: path.RoomSid source_sid: query.SourceSid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/RecordingRules'].get update: x-apievangelist-phrasing: intent: Get a room's recording rules effect: read questions: - Which tracks is a room currently set to record? - Where can I read the recording rules applied to a room? instructions: - text: Get the recording rules for room {room_sid}. slots: room_sid: path.RoomSid - text: Show which tracks room {room_sid} is configured to include or exclude from recording. slots: room_sid: path.RoomSid method: generated generated: '2026-09-26' - target: $.paths['/v1/Rooms/{RoomSid}/RecordingRules'].post update: x-apievangelist-phrasing: intent: Change a room's recording rules effect: write questions: - Can I start or stop recording certain tracks while a room is live? - What do recording rules look like when I change them mid-call? instructions: - text: Set the recording rules for room {room_sid} to {rules}. slots: room_sid: path.RoomSid rules: requestBody.Rules - text: Update room {room_sid} so it records tracks according to {rules}. slots: room_sid: path.RoomSid rules: requestBody.Rules method: generated generated: '2026-09-26'