Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/telnyx:telnyx-rooms-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Telnyx Rooms API
version: 2.0.0
contact:
email: support@telnyx.com
x-endpoint-cost: light
x-refined-note:
- x-latency-category differs across the merged source definitions and was not carried
description: 'Operations tagged Rooms across 3 of this provider''s published API definitions: telnyx-openapi.json, telnyx-openapi.yml, telnyx-openapi_2.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.telnyx.com/v2
description: Version 2.0.0 of the Telnyx API
security:
- bearerAuth: []
tags:
- name: Rooms
description: Rooms operations.
paths:
/rooms:
get:
summary: View a list of rooms
description: Returns a paginated list of rooms. Filter the results by creation or update date and unique name, and use `include_sessions` to include each room’s sessions.
operationId: ListRooms
x-endpoint-cost: medium
tags:
- Rooms
parameters:
- name: include_sessions
in: query
description: To decide if room sessions should be included in the response.
schema:
type: boolean
example: true
- name: filter
in: query
style: deepObject
explode: true
required: false
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]'
schema:
type: object
properties:
date_created_at:
type: object
properties:
eq:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering rooms created on that date.
gte:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering rooms created on or after that date.
lte:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering rooms created on or before that date.
date_updated_at:
type: object
properties:
eq:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering rooms updated on that date.
gte:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering rooms updated on or after that date.
lte:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering rooms updated on or before that date.
unique_name:
type: string
example: my_video_room
description: Unique_name for filtering rooms.
- $ref: '#/components/parameters/video_PageConsolidated'
responses:
'200':
description: List rooms response.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Room'
meta:
$ref: '#/components/schemas/PaginationMeta'
4XX:
$ref: '#/components/responses/video_GenericErrorResponse'
post:
summary: Create a room
description: Synchronously creates a new video room with the provided configuration and returns the created room.
operationId: CreateRoom
tags:
- Rooms
x-endpoint-cost: medium
requestBody:
description: Parameters that can be defined during room creation.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateRoomRequest'
responses:
'201':
description: Create room response.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Room'
'422':
$ref: '#/components/responses/UnprocessableEntity'
servers:
- url: https://api.telnyx.com/v2
description: Version 2.0.0 of the Telnyx API
/rooms/{room_id}:
delete:
summary: Delete a room
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
tags:
- Rooms
x-endpoint-cost: medium
parameters:
- name: room_id
in: path
description: The unique identifier of a room.
required: true
schema:
type: string
format: uuid
example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0
responses:
'204':
description: The resource was deleted successfully.
'404':
$ref: '#/components/responses/video_ResourceNotFound'
get:
summary: View a room
operationId: ViewRoom
tags:
- Rooms
x-endpoint-cost: light
parameters:
- name: room_id
in: path
description: The unique identifier of a room.
required: true
schema:
type: string
format: uuid
example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0
- name: include_sessions
in: query
description: To decide if room sessions should be included in the response.
schema:
type: boolean
example: true
responses:
'200':
description: Get room response.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Room'
'404':
$ref: '#/components/responses/video_ResourceNotFound'
description: Returns the room identified by `room_id`, including its participant limit, recording and webhook configuration, and active session identifier. Use `include_sessions` to include its sessions.
patch:
summary: Update a room
description: Synchronously updates the specified video room's configuration and returns the updated room.
operationId: UpdateRoom
tags:
- Rooms
x-endpoint-cost: medium
parameters:
- name: room_id
in: path
description: The unique identifier of a room.
required: true
schema:
type: string
format: uuid
example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0
requestBody:
description: Parameters that can be defined during room update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchRoomRequest'
responses:
'200':
description: Update room response.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Room'
'401':
$ref: '#/components/responses/video_UnauthorizedResponse'
'404':
$ref: '#/components/responses/video_ResourceNotFound'
'422':
description: Bad request
servers:
- url: https://api.telnyx.com/v2
description: Version 2.0.0 of the Telnyx API
/rooms/{room_id}/sessions:
get:
summary: View a list of room sessions
description: Returns a paginated list of sessions for the specified room. Filter sessions by creation, update, or end date and active status, and use `include_participants` to include participant records.
operationId: RetrieveListRoomSessions
x-endpoint-cost: medium
tags:
- Rooms
parameters:
- name: room_id
in: path
description: The unique identifier of a room.
required: true
schema:
type: string
format: uuid
example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0
- name: include_participants
in: query
description: To decide if room participants should be included in the response.
schema:
type: boolean
example: true
- name: filter
in: query
style: deepObject
explode: true
required: false
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]'
schema:
type: object
properties:
date_created_at:
type: object
properties:
eq:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering room sessions created on that date.
gte:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering room sessions created on or after that date.
lte:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering room sessions created on or before that date.
date_updated_at:
type: object
properties:
eq:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering room sessions updated on that date.
gte:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering room sessions updated on or after that date.
lte:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering room sessions updated on or before that date.
date_ended_at:
type: object
properties:
eq:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering room sessions ended on that date.
gte:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering room sessions ended on or after that date.
lte:
type: string
format: date
example: '2021-04-25'
description: ISO 8601 date for filtering room sessions ended on or before that date.
active:
type: boolean
example: true
description: Filter active or inactive room sessions.
- $ref: '#/components/parameters/video_PageConsolidated'
responses:
'200':
description: List room sessions response.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/RoomSession'
meta:
$ref: '#/components/schemas/PaginationMeta'
4XX:
$ref: '#/components/responses/video_GenericErrorResponse'
servers:
- url: https://api.telnyx.com/v2
description: Version 2.0.0 of the Telnyx API
components:
schemas:
PatchRoomRequest:
type: object
properties:
unique_name:
description: The unique (within the Telnyx account scope) name of the room.
type: string
example: My room
max_participants:
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.
type: integer
example: 10
default: 10
minimum: 2
maximum: 50
enable_recording:
description: Enable or disable recording for that room.
type: boolean
example: true
default: false
webhook_event_url:
type: string
format: uri
description: The URL where webhooks related to this room will be sent. Must include a scheme, such as 'https'.
example: https://example.com
webhook_event_failover_url:
type: string
format: uri
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
default: ''
webhook_timeout_secs:
type: integer
minimum: 0
maximum: 30
description: Specifies how many seconds to wait before timing out a webhook.
example: 25
default: null
CreateRoomRequest:
type: object
properties:
unique_name:
description: The unique (within the Telnyx account scope) name of the room.
type: string
example: My room
max_participants:
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.
type: integer
example: 10
default: 10
minimum: 2
maximum: 50
enable_recording:
description: Enable or disable recording for that room.
type: boolean
example: true
default: false
webhook_event_url:
type: string
format: uri
description: The URL where webhooks related to this room will be sent. Must include a scheme, such as 'https'.
example: https://example.com
webhook_event_failover_url:
type: string
format: uri
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
default: ''
webhook_timeout_secs:
type: integer
minimum: 0
maximum: 30
description: Specifies how many seconds to wait before timing out a webhook.
example: 25
default: null
RoomSession:
type: object
properties:
id:
description: A unique identifier for the room session.
type: string
format: uuid
example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0
room_id:
description: Identify the room hosting that room session.
type: string
format: uuid
example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777b0
active:
description: Shows if the room session is active or not.
type: boolean
example: false
created_at:
description: ISO 8601 timestamp when the room session was created.
type: string
format: date-time
example: '2021-03-26T17:51:59.588408Z'
updated_at:
description: ISO 8601 timestamp when the room session was updated.
type: string
format: date-time
example: '2021-03-26T17:51:59.588408Z'
ended_at:
description: ISO 8601 timestamp when the room session has ended.
type: string
format: date-time
example: '2021-03-26T17:51:59.588408Z'
participants:
type: array
items:
$ref: '#/components/schemas/RoomParticipant'
record_type:
type: string
example: room_session
readOnly: true
example:
id: 7b61621f-62e0-4aad-ab11-9fd19e272e73
room_id: 7b61621f-5fe4-4aad-ab11-9fd19e272e73
active: false
created_at: '2021-04-16T09:46:20.954863Z'
updated_at: '2021-04-16T10:24:55.962200Z'
ended_at: '2021-04-16T10:24:55.962200Z'
participants: []
record_type: room_session
RoomParticipant:
type: object
properties:
id:
description: A unique identifier for the room participant.
type: string
format: uuid
example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0
session_id:
description: Identify the room session that participant is part of.
type: string
format: uuid
example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777b0
context:
description: Context provided to the given participant through the client SDK
type: string
example: Alice
joined_at:
description: ISO 8601 timestamp when the participant joined the session.
type: string
format: date-time
example: '2021-03-26T17:51:59.588408Z'
updated_at:
description: ISO 8601 timestamp when the participant was updated.
type: string
format: date-time
example: '2021-03-26T17:51:59.588408Z'
left_at:
description: ISO 8601 timestamp when the participant left the session.
type: string
format: date-time
example: '2021-03-26T17:51:59.588408Z'
record_type:
type: string
example: room_participant
readOnly: true
example:
id: 7b61621f-62e0-4aad-ab11-9fd19e272e73
session_id: 7b61621f-5fe4-4aad-ab11-9fd19e272e73
context: Alice
joined_at: '2021-04-16T09:46:20.954863Z'
updated_at: '2021-04-16T10:24:55.962200Z'
left_at: '2021-04-16T10:24:55.962200Z'
record_type: room_participant
billing-group_Error:
type: object
required:
- code
- title
properties:
code:
type: integer
format: int32
title:
type: string
detail:
type: string
source:
type: object
properties:
pointer:
description: JSON pointer (RFC6901) to the offending entity.
type: string
parameter:
description: Indicates which query parameter caused the error.
type: string
meta:
type: object
properties: {}
additionalProperties: true
video_Error:
required:
- code
- title
properties:
code:
type: string
title:
type: string
detail:
type: string
source:
type: object
properties:
pointer:
description: JSON pointer (RFC6901) to the offending entity.
type: string
parameter:
description: Indicates which query parameter caused the error.
type: string
meta:
type: object
additionalProperties: true
type: object
Errors:
properties:
errors:
type: array
items:
$ref: '#/components/schemas/billing-group_Error'
type: object
Room:
type: object
properties:
id:
description: A unique identifier for the room.
type: string
format: uuid
example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0
max_participants:
description: Maximum participants allowed in the room.
type: integer
example: 50
unique_name:
description: The unique (within the Telnyx account scope) name of the room.
type: string
example: My room
created_at:
description: ISO 8601 timestamp when the room was created.
type: string
format: date-time
example: '2021-03-26T17:51:59.588408Z'
updated_at:
description: ISO 8601 timestamp when the room was updated.
type: string
format: date-time
example: '2021-03-26T17:51:59.588408Z'
active_session_id:
description: The identifier of the active room session if any.
type: string
format: uuid
example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0
sessions:
type: array
items:
$ref: '#/components/schemas/RoomSession'
enable_recording:
description: Enable or disable recording for that room.
type: boolean
example: true
default: false
webhook_event_url:
type: string
format: uri
description: The URL where webhooks related to this room will be sent. Must include a scheme, such as 'https'.
example: https://example.com
webhook_event_failover_url:
type: string
format: uri
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
default: ''
webhook_timeout_secs:
type: integer
minimum: 0
maximum: 30
description: Specifies how many seconds to wait before timing out a webhook.
example: 25
default: null
record_type:
type: string
example: room
readOnly: true
example:
id: 7b61621f-62e0-4aad-ab11-9fd19e272e73
max_participants: 50
unique_name: My Room
created_at: '2021-04-16T09:46:20.954863Z'
updated_at: '2021-04-16T10:24:55.962200Z'
active_session_id: 7b61621f-62e0-4aad-ab11-9fd19e272e74
enable_recording: true
webhook_event_failover_url: https://failover.example.com
webhook_timeout_secs: 25
webhook_event_url: https://www.example.com
sessions:
- id: 7b61621f-62e0-4aad-ab11-9fd19e272e74
room_id: 7b61621f-62e0-4aad-ab11-9fd19e272e73
active: true
created_at: '2021-04-16T09:46:20.954863Z'
updated_at: '2021-04-16T10:24:55.962200Z'
participants: []
record_type: room_session
record_type: room
PaginationMeta:
type: object
properties:
total_pages:
type: integer
example: 3
total_results:
type: integer
example: 55
page_number:
type: integer
example: 2
page_size:
type: integer
example: 25
video_Errors:
properties:
errors:
items:
$ref: '#/components/schemas/video_Error'
type: array
type: object
Errors_2:
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Error'
type: object
Error:
required:
- code
- title
properties:
code:
type: string
x-format: int64
title:
type: string
detail:
type: string
description: A human-readable explanation of the error.
description:
type: string
source:
type: object
properties:
pointer:
description: JSON pointer (RFC6901) to the offending entity.
type: string
format: json-pointer
parameter:
description: Indicates which query parameter caused the error.
type: string
meta:
type: object
additionalProperties: true
example:
title: Invalid street address
source:
pointer: /street_address
code: '20207'
description: The street address provided is invalid.
type: object
responses:
video_UnauthorizedResponse:
description: Unauthorized
video_GenericErrorResponse:
description: Unexpected error
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: false
message:
type: string
example: Error
video_ResourceNotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/video_Error'
example:
code: string
title: string
detail: string
source:
pointer: string
parameter: string
UnprocessableEntity:
description: Unprocessable entity. Check the 'detail' field in response for details.
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
example:
errors:
- code: '10027'
title: Unprocessable Entity
detail: The server understood the syntax of the request but was unable to process the instructions.
PatchRoomResponse:
content:
application/json:
schema:
properties:
data:
$ref: '#/components/schemas/Room'
type: object
description: Update room response.
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.
GetRoomResponse:
content:
application/json:
schema:
properties:
data:
$ref: '#/components/schemas/Room'
type: object
description: Get room response.
video_ResourceNotFound_2:
content:
application/json:
schema:
$ref: '#/components/schemas/video_Error'
description: Resource not found
video_UnprocessableEntity:
content:
application/json:
schema:
$ref: '#/components/schemas/video_Errors'
description: Unprocessable entity. Check the 'detail' field in response for details.
CreateRoomResponse:
content:
application/json:
schema:
properties:
data:
$ref: '#/components/schemas/Room'
type: object
description: Create room response.
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_UnprocessableEntity_2:
description: Unprocessable entity. Check the 'detail' field in response for details.
content:
application/json:
schema:
$ref: '#/components/schemas/Errors_2'
example:
errors:
- code: '10027'
title: Unprocessable Entity
detail: The server understood the syntax of the request but was unable to process the instructions.
parameters:
video_PageConsolidated:
name: page
in: query
style: deepObject
explode: true
description: 'Consolidated page parameter (deepObject style). Originally: page[size], page[number]'
schema:
type: object
properties:
size:
type: integer
minimum: 1
maximum: 250
default: 20
description: The size of the page.
number:
type: integer
minimum: 1
default: 1
description: The page number to load.
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: API key
description: 'Telnyx API key supplied as `Authorization: Bearer <token>`. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.'
Payment:
type: apiKey
in: header
name: Authorization
description: 'Machine Payment Protocol credential used on paid retries, sent as `Authorization: Payment ...`. Obtained by paying a challenge returned in the `WWW-Authenticate` header of a 402 response. This is not a Telnyx API key; initial challenge requests use standard bearer authentication instead.'
agent-memory_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key
bearerAuth:
type: http
scheme: bearer
branded-calling_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
collections_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key. Collections and results are automatically scoped to the authenticated user's organization.
number-reputation_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
oauthClientAuth:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://api.telnyx.com/v2/oauth/token
scopes:
admin: Administrative access to Telnyx resources
authorizationCode:
authorizationUrl: https://api.telnyx.com/v2/oauth/authorize
tokenUrl: https://api.telnyx.com/v2/oauth/token
refreshUrl: https://api.telnyx.com/v2/oauth/token
scopes:
admin: Administrative access to Telnyx resources
description: OAuth 2.0 authentication for Telnyx API and MCP integrations
outbound-voice-profiles_bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
pronunciation-dicts_bearerAuth:
type: http
scheme: bearer
description: Telnyx API v2 key. Obtain from https://portal.telnyx.com
rcs-registration_bearerAuth:
type: http
scheme: bearer
bearerFormat: API key
stored-payment-transactions_bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
transcriptions-search_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key. Results are automatically scoped to the authenticated user's organization.
web-search_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key
pay-connectors_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key, not the processor bearer token.
telnyxApiKey:
type: http
scheme: bearer
description: Management-only Telnyx account credential.
x-refined-from:
- telnyx-openapi.json
- telnyx-openapi.yml
- telnyx-openapi_2.json
x-service-info:
categories:
- communication
- developer-tools
docs:
apiReference: https://developers.telnyx.com
homepage: https://telnyx.com
llms: https://telnyx.com/llms.txt