Twilio Rooms API

Create and manage video rooms

Operations 23

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /Rooms List video rooms (older unversioned endpoint) · Twilio List Rooms #
Ask an LLM
“Which video rooms are on my account, using the older unversioned Rooms list?”
“Can the legacy room listing filter rooms by status and creation date range?”
Tell an agent
Using the unversioned Rooms endpoint, list my video rooms with status {status}.
On the legacy Rooms list, find rooms created after {created_after}.
POST /Rooms Create a video room (older unversioned endpoint) · Twilio Create a Room #
Ask an LLM
“Can I pick between group, small group and peer-to-peer when creating a room on the older unversioned endpoint?”
“What is the participant cap for a group room made through the legacy create-room call?”
Tell an agent
Via the unversioned Rooms endpoint, create a {room_type} video room named {unique_name}.
Using the legacy create call, open an audio-only room named {unique_name} in media region {region}.
GET /Rooms/{RoomSid} Look up a video room (older unversioned endpoint) · Twilio Fetch a Room #
Ask an LLM
“Can I look up a room by its unique name instead of its SID on the older unversioned endpoint?”
“Where do I see the details of one video room through the legacy Rooms path?”
Tell an agent
Using the unversioned Rooms path, show details for room {room}.
Pull up the legacy record for the video room called {room}.
POST /Rooms/{RoomSid} End an in-progress video room (older unversioned endpoint) · Twilio Update a Room #
Ask an LLM
“Can I force a live video call to end through the older unversioned Rooms endpoint?”
“What status do I set on the legacy room update to close a room that is still in progress?”
Tell an agent destructive · confirm first
Through the legacy Rooms path, end room {room} by setting its status to {status}.
Shut down the in-progress room {room} using the unversioned endpoint, marking it {status}.
GET /v1/Rooms/{Sid} Fetch a video room by SID (v1) · Fetch room #
Ask an LLM
“What does the v1 Rooms API return when I fetch a single room by its SID?”
“Where can I check a v1 room's current status and settings?”
Tell an agent
Fetch v1 room {room_sid}.
Show me the v1 Rooms record for {room_sid}, including its type and status.
POST /v1/Rooms/{Sid} Complete a video room (v1) · Update room #
Ask an LLM
“Can I mark a room completed through the v1 Rooms API to kick everyone out?”
“Is ending a room with the v1 update call reversible?”
Tell an agent destructive · confirm first
Set v1 room {room_sid} to status {status}.
End the call in v1 room {room_sid} by updating its status to {status}.
POST /v1/Rooms Create a video room with recording rules (v1) · Create room #
Ask an LLM
“Can I set recording rules or make a large room when creating a room on v1?”
“Which video codecs can a v1 room be created with?”
Tell an agent
Create a v1 {room_type} room named {unique_name}.
Create a v1 room named {unique_name} with recording rules {rules}.
GET /v1/Rooms List video rooms (v1) · List room #
Ask an LLM
“Can the v1 room list show only completed rooms instead of in-progress ones?”
“Which rooms started before a given date, per the v1 Rooms API?”
Tell an agent
List v1 rooms with status {status}.
Find the v1 room whose unique name is {unique_name}.
GET /v1/Rooms/{RoomSid}/Participants/{Sid} Fetch one participant in a room · Fetch room participant #
Ask an LLM
“Can I see when a specific participant joined and whether they are still connected?”
“Which details does the Rooms API keep about a single participant?”
Tell an agent
Fetch participant {participant_sid} in room {room_sid}.
Show the connection status of participant {participant_sid} in room {room_sid}.
POST /v1/Rooms/{RoomSid}/Participants/{Sid} Disconnect a participant from a room · Update room participant #
Ask an LLM
“Can I kick someone out of a live video room from the server side?”
“What status do I update a room participant to so they are disconnected?”
Tell an agent
Disconnect participant {participant_sid} from room {room_sid}.
Set participant {participant_sid} in room {room_sid} to status {status}.
GET /v1/Rooms/{RoomSid}/Participants List participants in a room · List room participant #
Ask an LLM
“Who is connected to a given video room right now?”
“Can I list only the disconnected participants of a room, or filter by identity?”
Tell an agent
List the participants in room {room_sid}.
List participants in room {room_sid} with status {status}.
POST /v1/Rooms/{RoomSid}/Participants/{Sid}/Anonymize Anonymize a room participant · Update room participant anonymize #
Ask an LLM
“Can I strip personal identity from a participant record after a video call?”
“Is there a way to anonymize someone who took part in a room?”
Tell an agent destructive · confirm first
Anonymize participant {participant_sid} in room {room_sid}.
Remove identifying details for participant {participant_sid} of room {room_sid}.
GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks/{Sid} Fetch one track a participant published · Fetch room participant published track #
Ask an LLM
“Can I look up a single published track by its track name or SID?”
“What does one audio or video track a participant is publishing look like?”
Tell an agent
Fetch published track {track} from participant {participant_sid} in room {room_sid}.
Show the published track {track} for participant {participant_sid} in room {room_sid}.
GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks List tracks a participant is publishing · List room participant published track #
Ask an LLM
“Which audio and video tracks is a participant currently publishing?”
“Does the published tracks list include tracks a participant already stopped sharing?”
Tell an agent
List the tracks participant {participant_sid} is publishing in room {room_sid}.
Show everything participant {participant_sid} currently shares in room {room_sid}.
GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules Get a participant's subscribe rules · Fetch room participant subscribe rule #
Ask an LLM
“What subscribe rules currently control which tracks a participant receives?”
“Where can I read the track subscription rules set for one participant?”
Tell an agent
Get the subscribe rules for participant {participant_sid} in room {room_sid}.
Show which tracks participant {participant_sid} in room {room_sid} is set to receive.
POST /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules Change a participant's subscribe rules · Update room participant subscribe rule #
Ask an LLM
“Can I stop a participant from receiving someone else's video from the server?”
“What format do subscribe rules take when I change them for a participant?”
Tell an agent
Replace the subscribe rules for participant {participant_sid} in room {room_sid} with {rules}.
Update participant {participant_sid} in room {room_sid} so they only receive tracks per {rules}.
GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks/{Sid} Fetch one track a participant is subscribed to · Fetch room participant subscribed track #
Ask an LLM
“Why do I need a track SID rather than a name to look up a subscribed track?”
“Can I inspect a single track that a participant is receiving?”
Tell an agent
Fetch subscribed track {track_sid} for participant {participant_sid} in room {room_sid}.
Show details of track {track_sid} that participant {participant_sid} receives in room {room_sid}.
GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks List tracks a participant is subscribed to · List room participant subscribed track #
Ask an LLM
“Which tracks is a participant receiving from others in the room?”
“Can I see every subscribed track for one person on a video call?”
Tell an agent
List the tracks participant {participant_sid} is subscribed to in room {room_sid}.
Show what participant {participant_sid} is receiving in room {room_sid}.
GET /v1/Rooms/{RoomSid}/Recordings/{Sid} Fetch one recording from a room · Fetch room recording #
Ask an LLM
“Can I check whether a specific room recording has finished processing?”
“What details does a single room recording expose?”
Tell an agent
Fetch recording {recording_sid} from room {room_sid}.
Show the status of room recording {recording_sid} in room {room_sid}.
DELETE /v1/Rooms/{RoomSid}/Recordings/{Sid} Delete a room recording · Delete room recording #
Ask an LLM
“Can I permanently remove a recorded track from a finished video room?”
“What happens to a room recording once I delete it?”
Tell an agent destructive · confirm first
Delete recording {recording_sid} from room {room_sid}.
Remove room {room_sid}'s recording {recording_sid} for good.
GET /v1/Rooms/{RoomSid}/Recordings List recordings made in a room · List room recording #
Ask an LLM
“Which recordings were captured in a given video room?”
“Can I list only the recordings still processing, or those from one source track?”
Tell an agent
List the recordings for room {room_sid}.
List recordings in room {room_sid} with status {status}.
GET /v1/Rooms/{RoomSid}/RecordingRules Get a room's recording rules · Fetch room recording rule #
Ask an LLM
“Which tracks is a room currently set to record?”
“Where can I read the recording rules applied to a room?”
Tell an agent
Get the recording rules for room {room_sid}.
Show which tracks room {room_sid} is configured to include or exclude from recording.
POST /v1/Rooms/{RoomSid}/RecordingRules Change a room's recording rules · Update room recording rule #
Ask an LLM
“Can I start or stop recording certain tracks while a room is live?”
“What do recording rules look like when I change them mid-call?”
Tell an agent
Set the recording rules for room {room_sid} to {rules}.
Update room {room_sid} so it records tracks according to {rules}.

Documentation

Specifications

Other Resources

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/twilio-rooms-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

twilio-rooms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Twilio Rooms API
  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
  termsOfService: https://www.twilio.com/legal/tos
  version: '1.0'
  description: 'Operations tagged Rooms across 2 of this provider''s published API definitions: twilio-video-openapi.yml, video-openapi-original.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://video.twilio.com/v1
  description: Twilio Video API v1
- url: https://video.twilio.com
tags:


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