Twilio · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Twilio Rooms API
24 actions
24 updates
phrasing
extends
openapi/twilio-rooms-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Twilio's API. It is a proposal applied on top of the contract, not a document Twilio publishes.
What the actions change
x-apievangelist-phrasing
Targets 24 · first 16 shown; the file carries all of them
$.info
$.paths['/Rooms'].get
$.paths['/Rooms'].post
$.paths['/Rooms/{RoomSid}'].get
$.paths['/Rooms/{RoomSid}'].post
$.paths['/v1/Rooms/{Sid}'].get
$.paths['/v1/Rooms/{Sid}'].post
$.paths['/v1/Rooms'].get
$.paths['/v1/Rooms'].post
$.paths['/v1/Rooms/{RoomSid}/Participants/{Sid}'].get
$.paths['/v1/Rooms/{RoomSid}/Participants/{Sid}'].post
$.paths['/v1/Rooms/{RoomSid}/Participants'].get
$.paths['/v1/Rooms/{RoomSid}/Participants/{Sid}/Anonymize'].post
$.paths['/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks/{Sid}'].get
$.paths['/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks'].get
$.paths['/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules'].get
OpenAPI Overlay
# 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'