Telnyx Room Compositions API

Rooms Compositions operations.

OpenAPI Specification

telnyx-room-compositions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: support@telnyx.com
  description: Telnyx provides global communications and connectivity APIs for developers — including SIP trunking, programmable voice, SMS, MMS, WhatsApp Business Messaging, Call Control, Fax, Wireless (IoT & eSIM), Phone Numbers (DID provisioning & porting), Emergency Services, and Network APIs for private interconnects and edge connectivity. Build, scale, and manage voice, messaging, and data networks with Telnyx's carrier-grade global infrastructure and API-first platform.
  title: Telnyx Access Tokens Room Compositions API
  version: 2.0.0
  x-endpoint-cost: light
servers:
- description: Version 2.0.0 of the Telnyx API
  url: https://api.telnyx.com/v2
security:
- bearerAuth: []
tags:
- description: Rooms Compositions operations.
  name: Room Compositions
paths:
  /room_compositions:
    get:
      description: ''
      operationId: ListRoomCompositions
      parameters:
      - description: 'Consolidated filter parameter (deepObject style). Originally: filter[date_created_at][eq], filter[date_created_at][gte], filter[date_created_at][lte], filter[session_id], filter[status]'
        explode: true
        in: query
        name: filter
        required: false
        schema:
          properties:
            date_created_at:
              properties:
                eq:
                  description: ISO 8601 date for filtering room compositions created on that date.
                  example: '2021-04-25'
                  format: date
                  type: string
                gte:
                  description: ISO 8601 date for filtering room compositions created on or after that date.
                  example: '2021-04-25'
                  format: date
                  type: string
                lte:
                  description: ISO 8601 date for filtering room compositions created on or before that date.
                  example: '2021-04-25'
                  format: date
                  type: string
              type: object
            session_id:
              description: The session_id for filtering room compositions.
              example: 92e7d459-bcc5-4386-9f5f-6dd14a82588d
              format: uuid
              type: string
            status:
              description: The status for filtering room compositions.
              enum:
              - completed
              - processing
              - enqueued
              example: completed
              type: string
          type: object
        style: deepObject
      - $ref: '#/components/parameters/video_PageConsolidated'
      responses:
        '200':
          $ref: '#/components/responses/ListRoomCompositionsResponse'
        4XX:
          $ref: '#/components/responses/video_GenericErrorResponse'
      summary: View a list of room compositions.
      tags:
      - Room Compositions
      x-endpoint-cost: medium
      x-latency-category: responsive
    post:
      description: Asynchronously create a room composition.
      operationId: CreateRoomComposition
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRoomCompositionRequest'
        description: Parameters that can be defined during room composition creation.
        required: true
      responses:
        '202':
          $ref: '#/components/responses/CreateRoomCompositionResponse'
        '422':
          $ref: '#/components/responses/video_UnprocessableEntity'
      summary: Create a room composition.
      tags:
      - Room Compositions
      x-endpoint-cost: heavy
      x-latency-category: responsive
  /room_compositions/{room_composition_id}:
    delete:
      description: Synchronously delete a room composition.
      operationId: DeleteRoomComposition
      parameters:
      - description: The unique identifier of a room composition.
        in: path
        name: room_composition_id
        required: true
        schema:
          example: 5219b3af-87c6-4c08-9b58-5a533d893e21
          format: uuid
          type: string
      responses:
        '204':
          description: The resource was deleted successfully.
        '404':
          $ref: '#/components/responses/video_ResourceNotFound'
      summary: Delete a room composition.
      tags:
      - Room Compositions
      x-endpoint-cost: medium
      x-latency-category: responsive
    get:
      operationId: ViewRoomComposition
      parameters:
      - description: The unique identifier of a room composition.
        in: path
        name: room_composition_id
        required: true
        schema:
          example: 5219b3af-87c6-4c08-9b58-5a533d893e21
          format: uuid
          type: string
      responses:
        '200':
          $ref: '#/components/responses/GetRoomCompositionResponse'
        '404':
          $ref: '#/components/responses/video_ResourceNotFound'
      summary: View a room composition.
      tags:
      - Room Compositions
      x-endpoint-cost: light
      x-latency-category: responsive
components:
  schemas:
    video_Errors:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/video_Error'
          type: array
      type: object
    PaginationMeta:
      properties:
        page_number:
          example: 2
          type: integer
        page_size:
          example: 25
          type: integer
        total_pages:
          example: 3
          type: integer
        total_results:
          example: 55
          type: integer
      type: object
    video_Error:
      properties:
        code:
          type: string
        detail:
          type: string
        meta:
          additionalProperties: true
          type: object
        source:
          properties:
            parameter:
              description: Indicates which query parameter caused the error.
              type: string
            pointer:
              description: JSON pointer (RFC6901) to the offending entity.
              type: string
          type: object
        title:
          type: string
      required:
      - code
      - title
      type: object
    RoomComposition:
      example:
        completed_at: '2022-02-25T05:39:56.377426Z'
        download_url: https://example.com
        duration_secs: 84
        ended_at: '2022-02-24T23:22:24.577677Z'
        format: mp4
        id: 7103dc53-ee59-4b54-a58b-c77d99ceb037
        record_type: composition
        resolution: 1280x720
        room_id: f981dbb3-228a-44e9-ac54-e87f0e2658b0
        session_id: 8f728d7b-00e2-4c59-8c27-f564b828df87
        size_mb: 6
        started_at: '2022-02-24T23:21:00.077209Z'
        status: enqueued
        user_id: 12a04ec9-0f91-4a91-9f3a-a19d9931182e
        video_layout:
          first:
            height: 720
            video_sources:
            - 7b61621f-62e0-4aad-ab11-9fd19e272e73
            width: 1280
            x_pos: 0
            y_pos: 0
            z_pos: 0
        webhook_event_url: https://webhook.site/544663ce-b692-4f9c-80ed-e5ad97cd5c02
      properties:
        completed_at:
          description: ISO 8601 timestamp when the room composition has completed.
          example: '2021-03-26T17:51:59.588408Z'
          format: date-time
          type: string
        created_at:
          description: ISO 8601 timestamp when the room composition was created.
          example: '2021-03-26T17:51:59.588408Z'
          format: date-time
          type: string
        download_url:
          description: Url to download the composition.
          example: https://www.example.com
          type: string
        duration_secs:
          description: Shows the room composition duration in seconds.
          example: 67
          type: integer
        ended_at:
          description: ISO 8601 timestamp when the room composition has ended.
          example: '2021-03-26T17:51:59.588408Z'
          format: date-time
          type: string
        format:
          description: Shows format of the room composition.
          enum:
          - mp4
          example: mp4
          type: string
        id:
          description: A unique identifier for the room composition.
          example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0
          format: uuid
          type: string
        record_type:
          example: room_composition
          readOnly: true
          type: string
        resolution:
          description: The resolution of the room composition.
          example: 1280x720
          type: string
        room_id:
          description: Identify the room associated with the room composition.
          example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777b0
          format: uuid
          type: string
        session_id:
          description: Identify the room session associated with the room composition.
          example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777b0
          format: uuid
          type: string
        size_mb:
          description: Shows the room composition size in MB.
          example: 10.5
          format: float
          type: number
        started_at:
          description: ISO 8601 timestamp when the room composition has stated.
          example: '2021-03-26T17:51:59.588408Z'
          format: date-time
          type: string
        status:
          description: Shows the room composition status.
          enum:
          - completed
          - enqueued
          - processing
          example: completed
          type: string
        updated_at:
          description: ISO 8601 timestamp when the room composition was updated.
          example: '2021-03-26T17:51:59.588408Z'
          format: date-time
          type: string
        user_id:
          description: Identify the user associated with the room composition.
          example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777b0
          format: uuid
          type: string
        video_layout:
          additionalProperties:
            $ref: '#/components/schemas/VideoRegion'
          description: Describes the video layout of the room composition in terms of regions. Limited to 2 regions.
          type: object
        webhook_event_failover_url:
          default: ''
          description: The failover URL where webhooks related to this room composition will be sent if sending to the primary URL fails. Must include a scheme, such as 'https'.
          example: https://failover.example.com
          format: uri
          type: string
        webhook_event_url:
          description: The URL where webhooks related to this room composition will be sent. Must include a scheme, such as 'https'.
          example: https://example.com
          format: uri
          type: string
        webhook_timeout_secs:
          default: null
          description: Specifies how many seconds to wait before timing out a webhook.
          example: 25
          maximum: 30
          minimum: 0
          type: integer
      type: object
    CreateRoomCompositionRequest:
      properties:
        format:
          default: mp4
          description: The desired format of the room composition.
          example: mp4
          type: string
        resolution:
          default: 1280x720
          description: The desired resolution (width/height in pixels) of the resulting video of the room composition. Both width and height are required to be between 16 and 1280; and width * height should not exceed 1280 * 720
          example: 800x600
          type: string
        session_id:
          description: id of the room session associated with the room composition.
          example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777b0
          format: uuid
          type: string
        video_layout:
          additionalProperties:
            $ref: '#/components/schemas/VideoRegion'
          description: Describes the video layout of the room composition in terms of regions.
          type: object
        webhook_event_failover_url:
          default: ''
          description: The failover URL where webhooks related to this room composition will be sent if sending to the primary URL fails. Must include a scheme, such as 'https'.
          example: https://failover.example.com
          format: uri
          type: string
        webhook_event_url:
          description: The URL where webhooks related to this room composition will be sent. Must include a scheme, such as 'https'.
          example: https://example.com
          format: uri
          type: string
        webhook_timeout_secs:
          default: null
          description: Specifies how many seconds to wait before timing out a webhook.
          example: 25
          maximum: 30
          minimum: 0
          type: integer
      type: object
    VideoRegion:
      properties:
        height:
          description: Height of the video region
          example: 360
          minimum: 16
          type: integer
        max_columns:
          description: Maximum number of columns of the region's placement grid. By default, the region has as many columns as needed to layout all the specified video sources.
          example: 3
          maximum: 1000
          minimum: 1
          type: integer
        max_rows:
          description: Maximum number of rows of the region's placement grid. By default, the region has as many rows as needed to layout all the specified video sources.
          example: 3
          maximum: 1000
          minimum: 1
          type: integer
        video_sources:
          description: Array of video recording ids to be composed in the region. Can be "*" to specify all video recordings in the session
          items:
            example: 7b61621f-62e0-4aad-ab11-9fd19e272e73
            format: uuid
            type: string
          type: array
        width:
          description: Width of the video region
          example: 480
          minimum: 16
          type: integer
        x_pos:
          default: 0
          description: X axis value (in pixels) of the region's upper left corner relative to the upper left corner of the whole room composition viewport.
          example: 100
          type: integer
        y_pos:
          default: 0
          description: Y axis value (in pixels) of the region's upper left corner relative to the upper left corner of the whole room composition viewport.
          example: 100
          type: integer
        z_pos:
          default: 0
          description: Regions with higher z_pos values are stacked on top of regions with lower z_pos values
          example: 1
          maximum: 99
          minimum: -99
          type: integer
      type: object
  responses:
    video_ResourceNotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/video_Error'
      description: Resource not found
    video_GenericErrorResponse:
      content:
        application/json:
          schema:
            properties:
              message:
                example: Error
                type: string
              success:
                example: false
                type: boolean
            type: object
      description: Unexpected error
    CreateRoomCompositionResponse:
      content:
        application/json:
          schema:
            properties:
              data:
                $ref: '#/components/schemas/RoomComposition'
            type: object
      description: Create room composition response.
    video_UnprocessableEntity:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/video_Errors'
      description: Unprocessable entity. Check the 'detail' field in response for details.
    GetRoomCompositionResponse:
      content:
        application/json:
          schema:
            properties:
              data:
                $ref: '#/components/schemas/RoomComposition'
            type: object
      description: Get room composition response.
    ListRoomCompositionsResponse:
      content:
        application/json:
          schema:
            properties:
              data:
                items:
                  $ref: '#/components/schemas/RoomComposition'
                type: array
              meta:
                $ref: '#/components/schemas/PaginationMeta'
            type: object
      description: List room compositions response.
  parameters:
    video_PageConsolidated:
      description: 'Consolidated page parameter (deepObject style). Originally: page[size], page[number]'
      explode: true
      in: query
      name: page
      schema:
        properties:
          number:
            default: 1
            description: The page number to load.
            minimum: 1
            type: integer
          size:
            default: 20
            description: The size of the page.
            maximum: 250
            minimum: 1
            type: integer
        type: object
      style: deepObject
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    branded-calling_bearerAuth:
      description: API key passed as a Bearer token in the Authorization header
      scheme: bearer
      type: http
    oauthClientAuth:
      description: OAuth 2.0 authentication for Telnyx API and MCP integrations
      flows:
        authorizationCode:
          authorizationUrl: https://api.telnyx.com/v2/oauth/authorize
          refreshUrl: https://api.telnyx.com/v2/oauth/token
          scopes:
            admin: Administrative access to Telnyx resources
          tokenUrl: https://api.telnyx.com/v2/oauth/token
        clientCredentials:
          scopes:
            admin: Administrative access to Telnyx resources
          tokenUrl: https://api.telnyx.com/v2/oauth/token
      type: oauth2
    outbound-voice-profiles_bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http
    pronunciation-dicts_bearerAuth:
      description: Telnyx API v2 key. Obtain from https://portal.telnyx.com
      scheme: bearer
      type: http
    stored-payment-transactions_bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http