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 Rooms 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 operations. name: Rooms paths: /rooms: get: description: '' operationId: ListRooms parameters: - description: To decide if room sessions should be included in the response. in: query name: include_sessions schema: example: true type: boolean - description: 'Consolidated filter parameter (deepObject style). Originally: filter[date_created_at][eq], filter[date_created_at][gte], filter[date_created_at][lte], filter[date_updated_at][eq], filter[date_updated_at][gte], filter[date_updated_at][lte], filter[unique_name]' explode: true in: query name: filter required: false schema: properties: date_created_at: properties: eq: description: ISO 8601 date for filtering rooms created on that date. example: '2021-04-25' format: date type: string gte: description: ISO 8601 date for filtering rooms created on or after that date. example: '2021-04-25' format: date type: string lte: description: ISO 8601 date for filtering rooms created on or before that date. example: '2021-04-25' format: date type: string type: object date_updated_at: properties: eq: description: ISO 8601 date for filtering rooms updated on that date. example: '2021-04-25' format: date type: string gte: description: ISO 8601 date for filtering rooms updated on or after that date. example: '2021-04-25' format: date type: string lte: description: ISO 8601 date for filtering rooms updated on or before that date. example: '2021-04-25' format: date type: string type: object unique_name: description: Unique_name for filtering rooms. example: my_video_room type: string type: object style: deepObject - $ref: '#/components/parameters/video_PageConsolidated' responses: '200': $ref: '#/components/responses/ListRoomsResponse' 4XX: $ref: '#/components/responses/video_GenericErrorResponse' summary: View a list of rooms. tags: - Rooms x-endpoint-cost: medium x-latency-category: responsive post: description: Synchronously create a Room. operationId: CreateRoom requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateRoomRequest' description: Parameters that can be defined during room creation. required: true responses: '201': $ref: '#/components/responses/CreateRoomResponse' '422': $ref: '#/components/responses/video_UnprocessableEntity' summary: Create a room. tags: - Rooms x-endpoint-cost: medium x-latency-category: responsive /rooms/{room_id}: delete: description: Synchronously delete a Room. Participants from that room will be kicked out, they won't be able to join that room anymore, and you won't be charged anymore for that room. operationId: DeleteRoom parameters: - description: The unique identifier of a room. in: path name: room_id required: true schema: example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0 format: uuid type: string responses: '204': description: The resource was deleted successfully. '404': $ref: '#/components/responses/video_ResourceNotFound' summary: Delete a room. tags: - Rooms x-endpoint-cost: medium x-latency-category: responsive get: operationId: ViewRoom parameters: - description: The unique identifier of a room. in: path name: room_id required: true schema: example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0 format: uuid type: string - description: To decide if room sessions should be included in the response. in: query name: include_sessions schema: example: true type: boolean responses: '200': $ref: '#/components/responses/GetRoomResponse' '404': $ref: '#/components/responses/video_ResourceNotFound' summary: View a room. tags: - Rooms x-endpoint-cost: light x-latency-category: responsive patch: description: Synchronously update a Room. operationId: UpdateRoom parameters: - description: The unique identifier of a room. in: path name: room_id required: true schema: example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0 format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchRoomRequest' description: Parameters that can be defined during room update. required: true responses: '200': $ref: '#/components/responses/PatchRoomResponse' '401': $ref: '#/components/responses/video_UnauthorizedResponse' '404': $ref: '#/components/responses/video_ResourceNotFound' '422': description: Bad request summary: Update a room. tags: - Rooms x-endpoint-cost: medium x-latency-category: responsive /rooms/{room_id}/sessions: get: description: '' operationId: RetrieveListRoomSessions parameters: - description: The unique identifier of a room. in: path name: room_id required: true schema: example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0 format: uuid type: string - description: To decide if room participants should be included in the response. in: query name: include_participants schema: example: true type: boolean - description: 'Consolidated filter parameter (deepObject style). Originally: filter[date_created_at][eq], filter[date_created_at][gte], filter[date_created_at][lte], filter[date_updated_at][eq], filter[date_updated_at][gte], filter[date_updated_at][lte], filter[date_ended_at][eq], filter[date_ended_at][gte], filter[date_ended_at][lte], filter[active]' explode: true in: query name: filter required: false schema: properties: active: description: Filter active or inactive room sessions. example: true type: boolean date_created_at: properties: eq: description: ISO 8601 date for filtering room sessions created on that date. example: '2021-04-25' format: date type: string gte: description: ISO 8601 date for filtering room sessions created on or after that date. example: '2021-04-25' format: date type: string lte: description: ISO 8601 date for filtering room sessions created on or before that date. example: '2021-04-25' format: date type: string type: object date_ended_at: properties: eq: description: ISO 8601 date for filtering room sessions ended on that date. example: '2021-04-25' format: date type: string gte: description: ISO 8601 date for filtering room sessions ended on or after that date. example: '2021-04-25' format: date type: string lte: description: ISO 8601 date for filtering room sessions ended on or before that date. example: '2021-04-25' format: date type: string type: object date_updated_at: properties: eq: description: ISO 8601 date for filtering room sessions updated on that date. example: '2021-04-25' format: date type: string gte: description: ISO 8601 date for filtering room sessions updated on or after that date. example: '2021-04-25' format: date type: string lte: description: ISO 8601 date for filtering room sessions updated on or before that date. example: '2021-04-25' format: date type: string type: object type: object style: deepObject - $ref: '#/components/parameters/video_PageConsolidated' responses: '200': $ref: '#/components/responses/ListRoomSessionsResponse' 4XX: $ref: '#/components/responses/video_GenericErrorResponse' summary: View a list of room sessions. tags: - Rooms x-endpoint-cost: medium x-latency-category: responsive components: responses: CreateRoomResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/Room' type: object description: Create room response. PatchRoomResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/Room' type: object description: Update room response. video_ResourceNotFound: content: application/json: schema: $ref: '#/components/schemas/video_Error' description: Resource not found ListRoomsResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Room' type: array meta: $ref: '#/components/schemas/PaginationMeta' type: object description: List rooms response. video_GenericErrorResponse: content: application/json: schema: properties: message: example: Error type: string success: example: false type: boolean type: object description: Unexpected error ListRoomSessionsResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/RoomSession' type: array meta: $ref: '#/components/schemas/PaginationMeta' type: object description: List room sessions response. video_UnauthorizedResponse: description: Unauthorized video_UnprocessableEntity: content: application/json: schema: $ref: '#/components/schemas/video_Errors' description: Unprocessable entity. Check the 'detail' field in response for details. GetRoomResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/Room' type: object description: Get room response. schemas: PatchRoomRequest: properties: enable_recording: default: false description: Enable or disable recording for that room. example: true type: boolean max_participants: default: 10 description: The maximum amount of participants allowed in a room. If new participants try to join after that limit is reached, their request will be rejected. example: 10 maximum: 50 minimum: 2 type: integer unique_name: description: The unique (within the Telnyx account scope) name of the room. example: My room type: string webhook_event_failover_url: default: '' description: The failover URL where webhooks related to this room 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 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 video_Errors: properties: errors: items: $ref: '#/components/schemas/video_Error' type: array type: object RoomParticipant: example: context: Alice id: 7b61621f-62e0-4aad-ab11-9fd19e272e73 joined_at: '2021-04-16T09:46:20.954863Z' left_at: '2021-04-16T10:24:55.962200Z' record_type: room_participant session_id: 7b61621f-5fe4-4aad-ab11-9fd19e272e73 updated_at: '2021-04-16T10:24:55.962200Z' properties: context: description: Context provided to the given participant through the client SDK example: Alice type: string id: description: A unique identifier for the room participant. example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0 format: uuid type: string joined_at: description: ISO 8601 timestamp when the participant joined the session. example: '2021-03-26T17:51:59.588408Z' format: date-time type: string left_at: description: ISO 8601 timestamp when the participant left the session. example: '2021-03-26T17:51:59.588408Z' format: date-time type: string record_type: example: room_participant readOnly: true type: string session_id: description: Identify the room session that participant is part of. example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777b0 format: uuid type: string updated_at: description: ISO 8601 timestamp when the participant was updated. example: '2021-03-26T17:51:59.588408Z' format: date-time type: string 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 Room: example: active_session_id: 7b61621f-62e0-4aad-ab11-9fd19e272e74 created_at: '2021-04-16T09:46:20.954863Z' enable_recording: true id: 7b61621f-62e0-4aad-ab11-9fd19e272e73 max_participants: 50 record_type: room sessions: - active: true created_at: '2021-04-16T09:46:20.954863Z' id: 7b61621f-62e0-4aad-ab11-9fd19e272e74 participants: [] record_type: room_session room_id: 7b61621f-62e0-4aad-ab11-9fd19e272e73 updated_at: '2021-04-16T10:24:55.962200Z' unique_name: My Room updated_at: '2021-04-16T10:24:55.962200Z' webhook_event_failover_url: https://failover.example.com webhook_event_url: https://www.example.com webhook_timeout_secs: 25 properties: active_session_id: description: The identifier of the active room session if any. example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0 format: uuid type: string created_at: description: ISO 8601 timestamp when the room was created. example: '2021-03-26T17:51:59.588408Z' format: date-time type: string enable_recording: default: false description: Enable or disable recording for that room. example: true type: boolean id: description: A unique identifier for the room. example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0 format: uuid type: string max_participants: description: Maximum participants allowed in the room. example: 50 type: integer record_type: example: room readOnly: true type: string sessions: items: $ref: '#/components/schemas/RoomSession' type: array unique_name: description: The unique (within the Telnyx account scope) name of the room. example: My room type: string updated_at: description: ISO 8601 timestamp when the room was updated. example: '2021-03-26T17:51:59.588408Z' format: date-time type: string webhook_event_failover_url: default: '' description: The failover URL where webhooks related to this room 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 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 CreateRoomRequest: properties: enable_recording: default: false description: Enable or disable recording for that room. example: true type: boolean max_participants: default: 10 description: The maximum amount of participants allowed in a room. If new participants try to join after that limit is reached, their request will be rejected. example: 10 maximum: 50 minimum: 2 type: integer unique_name: description: The unique (within the Telnyx account scope) name of the room. example: My room type: string webhook_event_failover_url: default: '' description: The failover URL where webhooks related to this room 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 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 RoomSession: example: active: false created_at: '2021-04-16T09:46:20.954863Z' ended_at: '2021-04-16T10:24:55.962200Z' id: 7b61621f-62e0-4aad-ab11-9fd19e272e73 participants: [] record_type: room_session room_id: 7b61621f-5fe4-4aad-ab11-9fd19e272e73 updated_at: '2021-04-16T10:24:55.962200Z' properties: active: description: Shows if the room session is active or not. example: false type: boolean created_at: description: ISO 8601 timestamp when the room session was created. example: '2021-03-26T17:51:59.588408Z' format: date-time type: string ended_at: description: ISO 8601 timestamp when the room session has ended. example: '2021-03-26T17:51:59.588408Z' format: date-time type: string id: description: A unique identifier for the room session. example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0 format: uuid type: string participants: items: $ref: '#/components/schemas/RoomParticipant' type: array record_type: example: room_session readOnly: true type: string room_id: description: Identify the room hosting that room session. example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777b0 format: uuid type: string updated_at: description: ISO 8601 timestamp when the room session was updated. example: '2021-03-26T17:51:59.588408Z' format: date-time type: string type: object 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