{"note":"OpenAPI conversion -- returning structured metadata","name":"twilio-video","description":"Twilio - Video","version":"1.0.0","base_url":"https://video.twilio.com","endpoints":39,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Twilio - Video\n@base https://video.twilio.com\n@version 1.0.0\n@auth Bearer basic\n@endpoints 39\n@hint download_for_search\n@toc Compositions(4), CompositionHooks(5), CompositionSettings(2), Recordings(3), RecordingSettings(2), Rooms(23)\n\n@group Compositions\n@endpoint GET /v1/Compositions/{Sid}\n@desc Returns a single Composition resource identified by a Composition SID.\n@required {Sid: str # The SID of the Composition resource to fetch.}\n@returns(200) {account_sid: str?, status: str, date_created: str(date-time)?, date_completed: str(date-time)?, date_deleted: str(date-time)?, sid: str?, room_sid: str?, audio_sources: [str]?, audio_sources_excluded: [str]?, video_layout: any?, resolution: str?, trim: bool?, format: str, bitrate: int, size: int(int64)?, duration: int, media_external_location: str(uri)?, status_callback: str(uri)?, status_callback_method: str(http-method)?, url: str(uri)?, links: map?} # OK\n\n@endpoint DELETE /v1/Compositions/{Sid}\n@desc Delete a Recording Composition resource identified by a Composition SID.\n@required {Sid: str # The SID of the Composition resource to delete.}\n@returns(204) The resource was deleted successfully.\n\n@endpoint GET /v1/Compositions\n@desc List of all Recording compositions.\n@optional {Status: str # Read only Composition resources with this status. Can be: `enqueued`, `processing`, `completed`, `deleted`, or `failed`., DateCreatedAfter: str(date-time) # Read only Composition resources created on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time with time zone., DateCreatedBefore: str(date-time) # Read only Composition resources created before this ISO 8601 date-time with time zone., RoomSid: str # Read only Composition resources with this Room SID., PageSize: int(int64)=50 # How many resources to return in each list page., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {compositions: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint POST /v1/Compositions\n@returns(201) {account_sid: str?, status: str, date_created: str(date-time)?, date_completed: str(date-time)?, date_deleted: str(date-time)?, sid: str?, room_sid: str?, audio_sources: [str]?, audio_sources_excluded: [str]?, video_layout: any?, resolution: str?, trim: bool?, format: str, bitrate: int, size: int(int64)?, duration: int, media_external_location: str(uri)?, status_callback: str(uri)?, status_callback_method: str(http-method)?, url: str(uri)?, links: map?} # Created\n\n@endgroup\n\n@group CompositionHooks\n@endpoint GET /v1/CompositionHooks/{Sid}\n@desc Returns a single CompositionHook resource identified by a CompositionHook SID.\n@required {Sid: str # The SID of the CompositionHook resource to fetch.}\n@returns(200) {account_sid: str?, friendly_name: str?, enabled: bool?, date_created: str(date-time)?, date_updated: str(date-time)?, sid: str?, audio_sources: [str]?, audio_sources_excluded: [str]?, video_layout: any?, resolution: str?, trim: bool?, format: str, status_callback: str(uri)?, status_callback_method: str(http-method)?, url: str(uri)?} # OK\n\n@endpoint DELETE /v1/CompositionHooks/{Sid}\n@desc Delete a Recording CompositionHook resource identified by a `CompositionHook SID`.\n@required {Sid: str # The SID of the CompositionHook resource to delete.}\n@returns(204) The resource was deleted successfully.\n\n@endpoint POST /v1/CompositionHooks/{Sid}\n@required {Sid: str # The SID of the CompositionHook resource to update.}\n@returns(200) {account_sid: str?, friendly_name: str?, enabled: bool?, date_created: str(date-time)?, date_updated: str(date-time)?, sid: str?, audio_sources: [str]?, audio_sources_excluded: [str]?, video_layout: any?, resolution: str?, trim: bool?, format: str, status_callback: str(uri)?, status_callback_method: str(http-method)?, url: str(uri)?} # OK\n\n@endpoint GET /v1/CompositionHooks\n@desc List of all Recording CompositionHook resources.\n@optional {Enabled: bool # Read only CompositionHook resources with an `enabled` value that matches this parameter., DateCreatedAfter: str(date-time) # Read only CompositionHook resources created on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone., DateCreatedBefore: str(date-time) # Read only CompositionHook resources created before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone., FriendlyName: str # Read only CompositionHook resources with friendly names that match this string. The match is not case sensitive and can include asterisk `*` characters as wildcard match., PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {composition_hooks: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint POST /v1/CompositionHooks\n@returns(201) {account_sid: str?, friendly_name: str?, enabled: bool?, date_created: str(date-time)?, date_updated: str(date-time)?, sid: str?, audio_sources: [str]?, audio_sources_excluded: [str]?, video_layout: any?, resolution: str?, trim: bool?, format: str, status_callback: str(uri)?, status_callback_method: str(http-method)?, url: str(uri)?} # Created\n\n@endgroup\n\n@group CompositionSettings\n@endpoint GET /v1/CompositionSettings/Default\n@returns(200) {account_sid: str?, friendly_name: str?, aws_credentials_sid: str?, aws_s3_url: str(uri)?, aws_storage_enabled: bool?, encryption_key_sid: str?, encryption_enabled: bool?, url: str(uri)?} # OK\n\n@endpoint POST /v1/CompositionSettings/Default\n@returns(200) {account_sid: str?, friendly_name: str?, aws_credentials_sid: str?, aws_s3_url: str(uri)?, aws_storage_enabled: bool?, encryption_key_sid: str?, encryption_enabled: bool?, url: str(uri)?} # OK\n\n@endgroup\n\n@group Recordings\n@endpoint GET /v1/Recordings/{Sid}\n@desc Returns a single Recording resource identified by a Recording SID.\n@required {Sid: str # The SID of the Recording resource to fetch.}\n@returns(200) {account_sid: str?, status: str, date_created: str(date-time)?, sid: str?, source_sid: str?, size: int(int64)?, url: str(uri)?, type: str, duration: int?, container_format: str, codec: str, grouping_sids: any?, track_name: str?, offset: int(int64)?, media_external_location: str(uri)?, status_callback: str(uri)?, status_callback_method: str(http-method)?, links: map?} # OK\n\n@endpoint DELETE /v1/Recordings/{Sid}\n@desc Delete a Recording resource identified by a Recording SID.\n@required {Sid: str # The SID of the Recording resource to delete.}\n@returns(204) The resource was deleted successfully.\n\n@endpoint GET /v1/Recordings\n@desc List of all Track recordings.\n@optional {Status: str # Read only the recordings that have this status. Can be: `processing`, `completed`, or `deleted`., SourceSid: str # Read only the recordings that have this `source_sid`., GroupingSid: [str] # Read only recordings with this `grouping_sid`, which may include a `participant_sid` and/or a `room_sid`., DateCreatedAfter: str(date-time) # Read only recordings that started on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time with time zone., DateCreatedBefore: str(date-time) # Read only recordings that started before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time with time zone, given as `YYYY-MM-DDThh:mm:ss+|-hh:mm` or `YYYY-MM-DDThh:mm:ssZ`., MediaType: str # Read only recordings that have this media type. Can be either `audio` or `video`., PageSize: int(int64)=50 # How many resources to return in each list page., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {recordings: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endgroup\n\n@group RecordingSettings\n@endpoint GET /v1/RecordingSettings/Default\n@returns(200) {account_sid: str?, friendly_name: str?, aws_credentials_sid: str?, aws_s3_url: str(uri)?, aws_storage_enabled: bool?, encryption_key_sid: str?, encryption_enabled: bool?, url: str(uri)?} # OK\n\n@endpoint POST /v1/RecordingSettings/Default\n@returns(200) {account_sid: str?, friendly_name: str?, aws_credentials_sid: str?, aws_s3_url: str(uri)?, aws_storage_enabled: bool?, encryption_key_sid: str?, encryption_enabled: bool?, url: str(uri)?} # OK\n\n@endgroup\n\n@group Rooms\n@endpoint GET /v1/Rooms/{Sid}\n@required {Sid: str # The SID of the Room resource to fetch.}\n@returns(200) {sid: str?, status: str, date_created: str(date-time)?, date_updated: str(date-time)?, account_sid: str?, enable_turn: bool?, unique_name: str?, status_callback: str(uri)?, status_callback_method: str(http-method)?, end_time: str(date-time)?, duration: int?, type: str, max_participants: int, max_participant_duration: int, max_concurrent_published_tracks: int?, record_participants_on_connect: bool?, video_codecs: [str]?, media_region: str?, audio_only: bool?, empty_room_timeout: int, unused_room_timeout: int, large_room: bool?, url: str(uri)?, links: map?} # OK\n\n@endpoint POST /v1/Rooms/{Sid}\n@required {Sid: str # The SID of the Room resource to update.}\n@returns(202) {sid: str?, status: str, date_created: str(date-time)?, date_updated: str(date-time)?, account_sid: str?, enable_turn: bool?, unique_name: str?, status_callback: str(uri)?, status_callback_method: str(http-method)?, end_time: str(date-time)?, duration: int?, type: str, max_participants: int, max_participant_duration: int, max_concurrent_published_tracks: int?, record_participants_on_connect: bool?, video_codecs: [str]?, media_region: str?, audio_only: bool?, empty_room_timeout: int, unused_room_timeout: int, large_room: bool?, url: str(uri)?, links: map?} # Accepted\n\n@endpoint POST /v1/Rooms\n@returns(201) {sid: str?, status: str, date_created: str(date-time)?, date_updated: str(date-time)?, account_sid: str?, enable_turn: bool?, unique_name: str?, status_callback: str(uri)?, status_callback_method: str(http-method)?, end_time: str(date-time)?, duration: int?, type: str, max_participants: int, max_participant_duration: int, max_concurrent_published_tracks: int?, record_participants_on_connect: bool?, video_codecs: [str]?, media_region: str?, audio_only: bool?, empty_room_timeout: int, unused_room_timeout: int, large_room: bool?, url: str(uri)?, links: map?} # Created\n\n@endpoint GET /v1/Rooms\n@optional {Status: str # Read only the rooms with this status. Can be: `in-progress` (default) or `completed`, UniqueName: str # Read only rooms with the this `unique_name`., DateCreatedAfter: str(date-time) # Read only rooms that started on or after this date, given as `YYYY-MM-DD`., DateCreatedBefore: str(date-time) # Read only rooms that started before this date, given as `YYYY-MM-DD`., PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {rooms: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint GET /v1/Rooms/{RoomSid}/Participants/{Sid}\n@required {RoomSid: str # The SID of the room with the Participant resource to fetch., Sid: str # The SID of the RoomParticipant resource to fetch.}\n@returns(200) {sid: str?, room_sid: str?, account_sid: str?, status: str, identity: str?, date_created: str(date-time)?, date_updated: str(date-time)?, start_time: str(date-time)?, end_time: str(date-time)?, duration: int?, url: str(uri)?, links: map?} # OK\n\n@endpoint POST /v1/Rooms/{RoomSid}/Participants/{Sid}\n@required {RoomSid: str # The SID of the room with the participant to update., Sid: str # The SID of the RoomParticipant resource to update.}\n@returns(202) {sid: str?, room_sid: str?, account_sid: str?, status: str, identity: str?, date_created: str(date-time)?, date_updated: str(date-time)?, start_time: str(date-time)?, end_time: str(date-time)?, duration: int?, url: str(uri)?, links: map?} # Accepted\n\n@endpoint GET /v1/Rooms/{RoomSid}/Participants\n@required {RoomSid: str # The SID of the room with the Participant resources to read.}\n@optional {Status: str # 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., Identity: str # Read only the Participants with this [User](https://www.twilio.com/docs/chat/rest/user-resource) `identity` value., DateCreatedAfter: str(date-time) # Read only Participants that started after this date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#UTC) format., DateCreatedBefore: str(date-time) # Read only Participants that started before this date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#UTC) format., PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {participants: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint POST /v1/Rooms/{RoomSid}/Participants/{Sid}/Anonymize\n@required {RoomSid: str # The SID of the room with the participant to update., Sid: str # The SID of the RoomParticipant resource to update.}\n@returns(200) {sid: str?, room_sid: str?, account_sid: str?, status: str, identity: str?, date_created: str(date-time)?, date_updated: str(date-time)?, start_time: str(date-time)?, end_time: str(date-time)?, duration: int?, url: str(uri)?} # OK\n\n@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks/{Sid}\n@desc Returns a single Track resource represented by TrackName or SID.\n@required {RoomSid: str # The SID of the Room resource where the Track resource to fetch is published., ParticipantSid: str # The SID of the Participant resource with the published track to fetch., Sid: str # The SID of the RoomParticipantPublishedTrack resource to fetch.}\n@returns(200) {sid: str?, participant_sid: str?, room_sid: str?, name: str?, date_created: str(date-time)?, date_updated: str(date-time)?, enabled: bool?, kind: str, url: str(uri)?} # OK\n\n@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks\n@desc Returns a list of tracks associated with a given Participant. Only `currently` Published Tracks are in the list resource.\n@required {RoomSid: str # The SID of the Room resource where the Track resources to read are published., ParticipantSid: str # The SID of the Participant resource with the published tracks to read.}\n@optional {PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {published_tracks: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules\n@desc Returns a list of Subscribe Rules for the Participant.\n@required {RoomSid: str # The SID of the Room resource where the subscribe rules to fetch apply., ParticipantSid: str # The SID of the Participant resource with the subscribe rules to fetch.}\n@returns(200) {participant_sid: str?, room_sid: str?, rules: [map]?, date_created: str(date-time)?, date_updated: str(date-time)?} # OK\n\n@endpoint POST /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules\n@desc Update the Subscribe Rules for the Participant\n@required {RoomSid: str # The SID of the Room resource where the subscribe rules to update apply., ParticipantSid: str # The SID of the Participant resource to update the Subscribe Rules.}\n@returns(200) {participant_sid: str?, room_sid: str?, rules: [map]?, date_created: str(date-time)?, date_updated: str(date-time)?} # OK\n\n@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks/{Sid}\n@desc 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.\n@required {RoomSid: str # The SID of the Room where the Track resource to fetch is subscribed., ParticipantSid: str # The SID of the participant that subscribes to the Track resource to fetch., Sid: str # The SID of the RoomParticipantSubscribedTrack resource to fetch.}\n@returns(200) {sid: str?, participant_sid: str?, publisher_sid: str?, room_sid: str?, name: str?, date_created: str(date-time)?, date_updated: str(date-time)?, enabled: bool?, kind: str, url: str(uri)?} # OK\n\n@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks\n@desc Returns a list of tracks that are subscribed for the participant.\n@required {RoomSid: str # The SID of the Room resource with the Track resources to read., ParticipantSid: str # The SID of the participant that subscribes to the Track resources to read.}\n@optional {PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {subscribed_tracks: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint GET /v1/Rooms/{RoomSid}/Recordings/{Sid}\n@required {RoomSid: str # The SID of the Room resource with the recording to fetch., Sid: str # The SID of the RoomRecording resource to fetch.}\n@returns(200) {account_sid: str?, status: str, date_created: str(date-time)?, sid: str?, source_sid: str?, size: int(int64)?, url: str(uri)?, type: str, duration: int?, container_format: str, codec: str, grouping_sids: any?, track_name: str?, offset: int(int64)?, media_external_location: str(uri)?, room_sid: str?, links: map?} # OK\n\n@endpoint DELETE /v1/Rooms/{RoomSid}/Recordings/{Sid}\n@required {RoomSid: str # The SID of the room with the RoomRecording resource to delete., Sid: str # The SID of the RoomRecording resource to delete.}\n@returns(204) The resource was deleted successfully.\n\n@endpoint GET /v1/Rooms/{RoomSid}/Recordings\n@required {RoomSid: str # The SID of the room with the RoomRecording resources to read.}\n@optional {Status: str # Read only the recordings with this status. Can be: `processing`, `completed`, or `deleted`., SourceSid: str # Read only the recordings that have this `source_sid`., DateCreatedAfter: str(date-time) # Read only recordings that started on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone., DateCreatedBefore: str(date-time) # Read only Recordings that started before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone., PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {recordings: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint GET /v1/Rooms/{RoomSid}/RecordingRules\n@desc Returns a list of Recording Rules for the Room.\n@required {RoomSid: str # The SID of the Room resource where the recording rules to fetch apply.}\n@returns(200) {room_sid: str?, rules: [map]?, date_created: str(date-time)?, date_updated: str(date-time)?} # OK\n\n@endpoint POST /v1/Rooms/{RoomSid}/RecordingRules\n@desc Update the Recording Rules for the Room\n@required {RoomSid: str # The SID of the Room resource where the recording rules to update apply.}\n@returns(200) {room_sid: str?, rules: [map]?, date_created: str(date-time)?, date_updated: str(date-time)?} # OK\n\n@endpoint GET /v1/Rooms/{RoomSid}/Transcriptions/{Ttid}\n@required {RoomSid: str # The SID of the room with the transcriptions resource to fetch., Ttid: str # The Twilio type id of the transcriptions resource to fetch.}\n@returns(200) {ttid: str?, account_sid: str?, room_sid: str?, source_sid: str?, status: str, date_created: str(date-time)?, date_updated: str(date-time)?, start_time: str(date-time)?, end_time: str(date-time)?, duration: int?, url: str(uri)?, configuration: map?} # OK\n\n@endpoint POST /v1/Rooms/{RoomSid}/Transcriptions/{Ttid}\n@required {RoomSid: str # The SID of the room with the transcriptions resource to update., Ttid: str # The Twilio type id of the transcriptions resource to update.}\n@returns(202) {ttid: str?, account_sid: str?, room_sid: str?, source_sid: str?, status: str, date_created: str(date-time)?, date_updated: str(date-time)?, start_time: str(date-time)?, end_time: str(date-time)?, duration: int?, url: str(uri)?, configuration: map?} # Accepted\n\n@endpoint GET /v1/Rooms/{RoomSid}/Transcriptions\n@required {RoomSid: str # The SID of the room with the transcriptions resources to read.}\n@optional {PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {transcriptions: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint POST /v1/Rooms/{RoomSid}/Transcriptions\n@required {RoomSid: str # The SID of the room new transcriptions resource to be created.}\n@returns(202) {ttid: str?, account_sid: str?, room_sid: str?, source_sid: str?, status: str, date_created: str(date-time)?, date_updated: str(date-time)?, start_time: str(date-time)?, end_time: str(date-time)?, duration: int?, url: str(uri)?, configuration: map?} # Accepted\n\n@endgroup\n\n@end\n"}