Twilio Rooms API

Create and manage video rooms

Documentation

Specifications

Other Resources

OpenAPI Specification

twilio-rooms-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Twilio - Accounts A2p Rooms API
  description: This is the public Twilio REST API.
  termsOfService: https://www.twilio.com/legal/tos
  contact:
    name: Twilio Support
    url: https://support.twilio.com
    email: support@twilio.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.52.0
servers:
- url: https://accounts.twilio.com
tags:
- name: Rooms
  description: Create and manage video rooms
paths:
  /Rooms:
    get:
      operationId: listRooms
      summary: Twilio List Rooms
      description: Retrieve a list of video rooms in your account.
      tags:
      - Rooms
      parameters:
      - name: Status
        in: query
        description: Filter by room status
        schema:
          type: string
          enum:
          - in-progress
          - completed
      - name: UniqueName
        in: query
        description: Filter by unique room name
        schema:
          type: string
      - name: DateCreatedAfter
        in: query
        schema:
          type: string
          format: date-time
      - name: DateCreatedBefore
        in: query
        schema:
          type: string
          format: date-time
      - name: PageSize
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 100
      responses:
        '200':
          description: List of rooms
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoomList'
        '401':
          description: Unauthorized
    post:
      operationId: createRoom
      summary: Twilio Create a Room
      description: Create a new video room. Rooms can be configured as group rooms (up to 50 participants), small group rooms (up to 4), or peer-to-peer rooms (up to 10).
      tags:
      - Rooms
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateRoomRequest'
      responses:
        '201':
          description: Room created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Room'
        '400':
          description: Invalid request
        '401':
          description: Unauthorized
  /Rooms/{RoomSid}:
    get:
      operationId: fetchRoom
      summary: Twilio Fetch a Room
      description: Retrieve details of a specific video room.
      tags:
      - Rooms
      parameters:
      - $ref: '#/components/parameters/RoomSid'
      responses:
        '200':
          description: Room details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Room'
        '404':
          description: Room not found
    post:
      operationId: updateRoom
      summary: Twilio Update a Room
      description: End an in-progress room by setting its status to completed.
      tags:
      - Rooms
      parameters:
      - $ref: '#/components/parameters/RoomSid'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - Status
              properties:
                Status:
                  type: string
                  enum:
                  - completed
                  description: Set to completed to end the room
      responses:
        '200':
          description: Room updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Room'
        '404':
          description: Room not found
  /v1/Rooms/{Sid}:
    servers:
    - url: https://video.twilio.com
    description: Video rooms with one or more participants
    x-twilio:
      defaultOutputProperties:
      - sid
      - unique_name
      - status
      pathType: instance
      dependentProperties:
        recordings:
          mapping:
            room_sid: sid
          resource_url: /v1/Rooms/{room_sid}/Recordings
        participants:
          mapping:
            room_sid: sid
          resource_url: /v1/Rooms/{room_sid}/Participants
        recording_rules:
          mapping:
            room_sid: sid
          resource_url: /v1/Rooms/{room_sid}/RecordingRules
    get:
      description: ''
      tags:
      - Rooms
      parameters:
      - name: Sid
        in: path
        description: The SID of the Room resource to fetch.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: FetchRoom
      x-maturity:
      - GA
    post:
      description: ''
      tags:
      - Rooms
      parameters:
      - name: Sid
        in: path
        description: The SID of the Room resource to update.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: UpdateRoom
      x-maturity:
      - GA
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateRoomRequest'
  /v1/Rooms:
    servers:
    - url: https://video.twilio.com
    description: Video rooms with one or more participants
    x-twilio:
      defaultOutputProperties:
      - sid
      - unique_name
      - status
      pathType: list
      dependentProperties:
        recordings:
          mapping:
            room_sid: sid
          resource_url: /v1/Rooms/{room_sid}/Recordings
        participants:
          mapping:
            room_sid: sid
          resource_url: /v1/Rooms/{room_sid}/Participants
        recording_rules:
          mapping:
            room_sid: sid
          resource_url: /v1/Rooms/{room_sid}/RecordingRules
    post:
      description: ''
      tags:
      - Rooms
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room'
          description: Created
      security:
      - accountSid_authToken: []
      operationId: CreateRoom
      x-maturity:
      - GA
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateRoomRequest_2'
    get:
      description: ''
      tags:
      - Rooms
      parameters:
      - name: Status
        in: query
        description: 'Read only the rooms with this status. Can be: `in-progress` (default) or `completed`'
        schema:
          type: string
          $ref: '#/components/schemas/room_enum_room_status'
      - name: UniqueName
        in: query
        description: Read only rooms with the this `unique_name`.
        schema:
          type: string
      - name: DateCreatedAfter
        in: query
        description: Read only rooms that started on or after this date, given as `YYYY-MM-DD`.
        schema:
          type: string
          format: date-time
      - name: DateCreatedBefore
        in: query
        description: Read only rooms that started before this date, given as `YYYY-MM-DD`.
        schema:
          type: string
          format: date-time
      - name: PageSize
        in: query
        description: How many resources to return in each list page. The default is 50, and the maximum is 1000.
        schema:
          type: integer
          minimum: 1
          maximum: 1000
      - name: Page
        in: query
        description: The page index. This value is simply for client state.
        schema:
          type: integer
          minimum: 0
      - name: PageToken
        in: query
        description: The page token. This is provided by the API.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRoomResponse'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: ListRoom
      x-maturity:
      - GA
  /v1/Rooms/{RoomSid}/Participants/{Sid}:
    servers:
    - url: https://video.twilio.com
    description: Participants in video rooms
    x-twilio:
      defaultOutputProperties:
      - sid
      - identity
      - status
      pathType: instance
      dependentProperties:
        published_tracks:
          mapping:
            room_sid: room_sid
            participant_sid: sid
          resource_url: /v1/Rooms/{room_sid}/Participants/{participant_sid}/PublishedTracks
        subscribed_tracks:
          mapping:
            room_sid: room_sid
            participant_sid: sid
          resource_url: /v1/Rooms/{room_sid}/Participants/{participant_sid}/SubscribedTracks
        subscribe_rules:
          mapping:
            room_sid: room_sid
            participant_sid: sid
          resource_url: /v1/Rooms/{room_sid}/Participants/{participant_sid}/SubscribeRules
        anonymize:
          mapping:
            room_sid: room_sid
            sid: sid
          resource_url: /v1None
      parent: /Rooms/{Sid}
    get:
      description: ''
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the room with the Participant resource to fetch.
        schema:
          type: string
        required: true
      - name: Sid
        in: path
        description: The SID of the RoomParticipant resource to fetch.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room.room_participant'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: FetchRoomParticipant
      x-maturity:
      - GA
    post:
      description: ''
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the room with the participant to update.
        schema:
          type: string
        required: true
      - name: Sid
        in: path
        description: The SID of the RoomParticipant resource to update.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room.room_participant'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: UpdateRoomParticipant
      x-maturity:
      - GA
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateRoomParticipantRequest'
  /v1/Rooms/{RoomSid}/Participants:
    servers:
    - url: https://video.twilio.com
    description: Participants in video rooms
    x-twilio:
      defaultOutputProperties:
      - sid
      - identity
      - status
      pathType: list
      dependentProperties:
        published_tracks:
          mapping:
            room_sid: room_sid
            participant_sid: sid
          resource_url: /v1/Rooms/{room_sid}/Participants/{participant_sid}/PublishedTracks
        subscribed_tracks:
          mapping:
            room_sid: room_sid
            participant_sid: sid
          resource_url: /v1/Rooms/{room_sid}/Participants/{participant_sid}/SubscribedTracks
        subscribe_rules:
          mapping:
            room_sid: room_sid
            participant_sid: sid
          resource_url: /v1/Rooms/{room_sid}/Participants/{participant_sid}/SubscribeRules
        anonymize:
          mapping:
            room_sid: room_sid
            sid: sid
          resource_url: /v1None
      parent: /Rooms/{Sid}
    get:
      description: ''
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the room with the Participant resources to read.
        schema:
          type: string
        required: true
      - name: Status
        in: query
        description: 'Read only the participants with this status. Can be: `connected` or `disconnected`. For `in-progress` Rooms the default Status is `connected`, for `completed` Rooms only `disconnected` Participants are returned.'
        schema:
          type: string
          $ref: '#/components/schemas/room_participant_enum_status'
      - name: Identity
        in: query
        description: Read only the Participants with this [User](https://www.twilio.com/docs/chat/rest/user-resource) `identity` value.
        schema:
          type: string
      - name: DateCreatedAfter
        in: query
        description: Read only Participants that started after this date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#UTC) format.
        schema:
          type: string
          format: date-time
      - name: DateCreatedBefore
        in: query
        description: Read only Participants that started before this date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#UTC) format.
        schema:
          type: string
          format: date-time
      - name: PageSize
        in: query
        description: How many resources to return in each list page. The default is 50, and the maximum is 1000.
        schema:
          type: integer
          minimum: 1
          maximum: 1000
      - name: Page
        in: query
        description: The page index. This value is simply for client state.
        schema:
          type: integer
          minimum: 0
      - name: PageToken
        in: query
        description: The page token. This is provided by the API.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRoomParticipantResponse'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: ListRoomParticipant
      x-maturity:
      - GA
  /v1/Rooms/{RoomSid}/Participants/{Sid}/Anonymize:
    servers:
    - url: https://video.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
      - sid
      - identity
      - status
      pathType: instance
      parent: /Rooms/{RoomSid}/Participants/{Sid}
    post:
      description: ''
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the room with the participant to update.
        schema:
          type: string
        required: true
      - name: Sid
        in: path
        description: The SID of the RoomParticipant resource to update.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room.room_participant.room_participant_anonymize'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: UpdateRoomParticipantAnonymize
      x-maturity:
      - GA
  /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks/{Sid}:
    servers:
    - url: https://video.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
      - sid
      - name
      - enabled
      - kind
      pathType: instance
      parent: /Rooms/{RoomSid}/Participants/{Sid}
    get:
      description: Returns a single Track resource represented by TrackName or SID.
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the Room resource where the Track resource to fetch is published.
        schema:
          type: string
        required: true
      - name: ParticipantSid
        in: path
        description: The SID of the Participant resource with the published track to fetch.
        schema:
          type: string
        required: true
      - name: Sid
        in: path
        description: The SID of the RoomParticipantPublishedTrack resource to fetch.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room.room_participant.room_participant_published_track'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: FetchRoomParticipantPublishedTrack
      x-maturity:
      - GA
  /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks:
    servers:
    - url: https://video.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
      - sid
      - name
      - enabled
      - kind
      pathType: list
      parent: /Rooms/{RoomSid}/Participants/{Sid}
    get:
      description: Returns a list of tracks associated with a given Participant. Only `currently` Published Tracks are in the list resource.
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the Room resource where the Track resources to read are published.
        schema:
          type: string
        required: true
      - name: ParticipantSid
        in: path
        description: The SID of the Participant resource with the published tracks to read.
        schema:
          type: string
        required: true
      - name: PageSize
        in: query
        description: How many resources to return in each list page. The default is 50, and the maximum is 1000.
        schema:
          type: integer
          minimum: 1
          maximum: 1000
      - name: Page
        in: query
        description: The page index. This value is simply for client state.
        schema:
          type: integer
          minimum: 0
      - name: PageToken
        in: query
        description: The page token. This is provided by the API.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRoomParticipantPublishedTrackResponse'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: ListRoomParticipantPublishedTrack
      x-maturity:
      - GA
  /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules:
    servers:
    - url: https://video.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
      - participant_sid
      - room_sid
      - rules
      pathType: list
      parent: /Rooms/{RoomSid}/Participants/{Sid}
      className: subscribe_rules
    get:
      description: Returns a list of Subscribe Rules for the Participant.
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the Room resource where the subscribe rules to fetch apply.
        schema:
          type: string
        required: true
      - name: ParticipantSid
        in: path
        description: The SID of the Participant resource with the subscribe rules to fetch.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room.room_participant.room_participant_subscribe_rule'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: FetchRoomParticipantSubscribeRule
      x-maturity:
      - GA
    post:
      description: Update the Subscribe Rules for the Participant
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the Room resource where the subscribe rules to update apply.
        schema:
          type: string
        required: true
      - name: ParticipantSid
        in: path
        description: The SID of the Participant resource to update the Subscribe Rules.
        schema:
          type: string
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room.room_participant.room_participant_subscribe_rule'
          description: Accepted
      security:
      - accountSid_authToken: []
      operationId: UpdateRoomParticipantSubscribeRule
      x-maturity:
      - GA
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateRoomParticipantSubscribeRuleRequest'
  /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks/{Sid}:
    servers:
    - url: https://video.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
      - sid
      - name
      - enabled
      - kind
      pathType: instance
      parent: /Rooms/{RoomSid}/Participants/{Sid}
    get:
      description: 'Returns a single Track resource represented by `track_sid`.  Note: This is one resource with the Video API that requires a SID, be Track Name on the subscriber side is not guaranteed to be unique.'
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the Room where the Track resource to fetch is subscribed.
        schema:
          type: string
        required: true
      - name: ParticipantSid
        in: path
        description: The SID of the participant that subscribes to the Track resource to fetch.
        schema:
          type: string
        required: true
      - name: Sid
        in: path
        description: The SID of the RoomParticipantSubscribedTrack resource to fetch.
        schema:
          type: string
          minLength: 34
          maxLength: 34
          pattern: ^MT[0-9a-fA-F]{32}$
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room.room_participant.room_participant_subscribed_track'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: FetchRoomParticipantSubscribedTrack
      x-maturity:
      - GA
  /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks:
    servers:
    - url: https://video.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
      - sid
      - name
      - enabled
      - kind
      pathType: list
      parent: /Rooms/{RoomSid}/Participants/{Sid}
    get:
      description: Returns a list of tracks that are subscribed for the participant.
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the Room resource with the Track resources to read.
        schema:
          type: string
        required: true
      - name: ParticipantSid
        in: path
        description: The SID of the participant that subscribes to the Track resources to read.
        schema:
          type: string
        required: true
      - name: PageSize
        in: query
        description: How many resources to return in each list page. The default is 50, and the maximum is 1000.
        schema:
          type: integer
          minimum: 1
          maximum: 1000
      - name: Page
        in: query
        description: The page index. This value is simply for client state.
        schema:
          type: integer
          minimum: 0
      - name: PageToken
        in: query
        description: The page token. This is provided by the API.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRoomParticipantSubscribedTrackResponse'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: ListRoomParticipantSubscribedTrack
      x-maturity:
      - GA
  /v1/Rooms/{RoomSid}/Recordings/{Sid}:
    servers:
    - url: https://video.twilio.com
    description: Single-track, single-media room recordings
    x-twilio:
      defaultOutputProperties:
      - sid
      - date_created
      - status
      - type
      - duration
      - codec
      pathType: instance
      dependentProperties:
        media:
          mapping:
            room_sid: room_sid
            sid: sid
          resource_url: /v1None
      parent: /Rooms/{Sid}
      className: room_recording
    get:
      description: ''
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the Room resource with the recording to fetch.
        schema:
          type: string
          minLength: 34
          maxLength: 34
          pattern: ^RM[0-9a-fA-F]{32}$
        required: true
      - name: Sid
        in: path
        description: The SID of the RoomRecording resource to fetch.
        schema:
          type: string
          minLength: 34
          maxLength: 34
          pattern: ^RT[0-9a-fA-F]{32}$
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room.room_recording'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: FetchRoomRecording
      x-maturity:
      - GA
    delete:
      description: ''
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the room with the RoomRecording resource to delete.
        schema:
          type: string
          minLength: 34
          maxLength: 34
          pattern: ^RM[0-9a-fA-F]{32}$
        required: true
      - name: Sid
        in: path
        description: The SID of the RoomRecording resource to delete.
        schema:
          type: string
          minLength: 34
          maxLength: 34
          pattern: ^RT[0-9a-fA-F]{32}$
        required: true
      responses:
        '204':
          description: The resource was deleted successfully.
      security:
      - accountSid_authToken: []
      operationId: DeleteRoomRecording
      x-maturity:
      - GA
  /v1/Rooms/{RoomSid}/Recordings:
    servers:
    - url: https://video.twilio.com
    description: Single-track, single-media room recordings
    x-twilio:
      defaultOutputProperties:
      - sid
      - date_created
      - status
      - type
      - duration
      - codec
      pathType: list
      dependentProperties:
        media:
          mapping:
            room_sid: room_sid
            sid: sid
          resource_url: /v1None
      parent: /Rooms/{Sid}
      className: room_recording
    get:
      description: ''
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the room with the RoomRecording resources to read.
        schema:
          type: string
          minLength: 34
          maxLength: 34
          pattern: ^RM[0-9a-fA-F]{32}$
        required: true
      - name: Status
        in: query
        description: 'Read only the recordings with this status. Can be: `processing`, `completed`, or `deleted`.'
        schema:
          type: string
          $ref: '#/components/schemas/room_recording_enum_status'
      - name: SourceSid
        in: query
        description: Read only the recordings that have this `source_sid`.
        schema:
          type: string
          minLength: 34
          maxLength: 34
          pattern: ^[a-zA-Z]{2}[0-9a-fA-F]{32}$
      - name: DateCreatedAfter
        in: query
        description: Read only recordings that started on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone.
        schema:
          type: string
          format: date-time
      - name: DateCreatedBefore
        in: query
        description: Read only Recordings that started before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone.
        schema:
          type: string
          format: date-time
      - name: PageSize
        in: query
        description: How many resources to return in each list page. The default is 50, and the maximum is 1000.
        schema:
          type: integer
          minimum: 1
          maximum: 1000
      - name: Page
        in: query
        description: The page index. This value is simply for client state.
        schema:
          type: integer
          minimum: 0
      - name: PageToken
        in: query
        description: The page token. This is provided by the API.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRoomRecordingResponse'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: ListRoomRecording
      x-maturity:
      - GA
  /v1/Rooms/{RoomSid}/RecordingRules:
    servers:
    - url: https://video.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
      - room_sid
      - rules
      pathType: list
      parent: /Rooms/{Sid}
      className: recording_rules
    get:
      description: Returns a list of Recording Rules for the Room.
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the Room resource where the recording rules to fetch apply.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room.room_recording_rule'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: FetchRoomRecordingRule
      x-maturity:
      - GA
    post:
      description: Update the Recording Rules for the Room
      tags:
      - Rooms
      parameters:
      - name: RoomSid
        in: path
        description: The SID of the Room resource where the recording rules to update apply.
        schema:
          type: string
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video.v1.room.room_recording_rule'
          description: Accepted
      security:
      - accountSid_authToken: []
      operationId: UpdateRoomRecordingRule
      x-maturity:
      - GA
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateRoomRecordingRuleRequest'
components:
  schemas:
    UpdateRoomParticipantSubscribeRuleRequest:
      type: object
      properties:
        Rules:
          description: A JSON-encoded array of subscribe rules. See the [Specifying Subscribe Rules](https://www.twilio.com/docs/video/api/track-subscriptions#specifying-sr) section for further information.
    RoomList:
      type: object
      properties:
        rooms:
          type: array
          items:
            $ref: '#/components/schemas/Room'
        meta:
          $ref: '#/components/schemas/PaginationMeta'
    UpdateRoomRecordingRuleRequest:
      type: object
      properties:
        Rules:
          description: A JSON-encoded array of recording rules.
    ListRoomRecordingResponse:
      type: object
      properties:
        recordings:
          type: array
          items:
            $ref: '#/components/schemas/video.v1.room.room_recording'
        meta:
          type: object
          properties:
            first_page_url:
              type: string
              format: uri
            next_page_url:
              type: string
              format: uri
              nullable: true
            page:
              type: integer
            page_size:
              type: integer
            previous_page_url:
              type: string
              format: uri
              nullable: true
            url:
              type: string
              format: uri
            key:
              typ

# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/twilio/refs/heads/main/openapi/twilio-rooms-api-openapi.yml