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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'