Twilio · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Twilio Compositions API
11 actions
11 updates
phrasing
extends
openapi/twilio-compositions-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Twilio's API. It is a proposal applied on top of the contract, not a document Twilio publishes.
What the actions change
x-apievangelist-phrasing
Targets 11
$.info
$.paths['/Compositions'].get
$.paths['/Compositions'].post
$.paths['/Compositions/{CompositionSid}'].get
$.paths['/Compositions/{CompositionSid}'].delete
$.paths['/CompositionSettings/Default'].get
$.paths['/CompositionSettings/Default'].post
$.paths['/v1/Compositions/{Sid}'].get
$.paths['/v1/Compositions/{Sid}'].delete
$.paths['/v1/Compositions'].get
$.paths['/v1/Compositions'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Twilio Compositions API
version: 1.0.0
extends: openapi/twilio-compositions-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 10
- target: $.paths['/Compositions'].get
update:
x-apievangelist-phrasing:
intent: List compositions (legacy unversioned endpoint)
effect: read
questions:
- Using the older unversioned compositions path, which video compositions are still processing?
- Can the legacy compositions list be narrowed to one video room?
instructions:
- text: Via the legacy unversioned endpoint, list compositions with status {status}.
slots:
status: query.Status
- text: Via the legacy unversioned endpoint, list compositions made from room {room}.
slots:
room: query.RoomSid
method: generated
generated: '2026-09-26'
- target: $.paths['/Compositions'].post
update:
x-apievangelist-phrasing:
intent: Compose room recordings (legacy unversioned endpoint)
effect: write
questions:
- On the older unversioned endpoint, how do I merge a room's recordings into one media file?
- Can the legacy create endpoint set a layout and resolution like 1280x720?
instructions:
- text: Via the legacy unversioned endpoint, compose the recordings of room {room}.
slots:
room: requestBody.RoomSid
- text: Via the legacy unversioned endpoint, compose room {room} at {resolution} in {format}.
slots:
room: requestBody.RoomSid
resolution: requestBody.Resolution
format: requestBody.Format
method: generated
generated: '2026-09-26'
- target: $.paths['/Compositions/{CompositionSid}'].get
update:
x-apievangelist-phrasing:
intent: Get a composition (legacy unversioned endpoint)
effect: read
questions:
- Through the older unversioned path, what is the status of one composition?
- Can I fetch a single composition from the legacy endpoint?
instructions:
- text: Via the legacy unversioned endpoint, get composition {composition}.
slots:
composition: path.CompositionSid
- text: Using the older unversioned path, show composition {composition}.
slots:
composition: path.CompositionSid
method: generated
generated: '2026-09-26'
- target: $.paths['/Compositions/{CompositionSid}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a composition (legacy unversioned endpoint)
effect: destructive
questions:
- Through the older unversioned path, how do I delete a composition?
- Can the legacy endpoint remove a composition I no longer need?
instructions:
- text: Via the legacy unversioned endpoint, delete composition {composition}.
slots:
composition: path.CompositionSid
- text: Using the older unversioned path, remove composition {composition}.
slots:
composition: path.CompositionSid
method: generated
generated: '2026-09-26'
- target: $.paths['/CompositionSettings/Default'].get
update:
x-apievangelist-phrasing:
intent: Read default composition storage settings
effect: read
questions:
- Where are my compositions being stored by default, and is encryption on?
- Which S3 bucket and AWS credentials do my composition settings point to?
instructions:
- text: Show my default composition settings.
- text: Check whether external S3 storage and encryption are enabled for compositions.
method: generated
generated: '2026-09-26'
- target: $.paths['/CompositionSettings/Default'].post
update:
x-apievangelist-phrasing:
intent: Configure where compositions are stored
effect: write
questions:
- How do I send finished compositions to my own S3 bucket?
- Can I turn on encryption for stored compositions with my own key?
instructions:
- text: Save composition settings {name} storing to {s3_url} with AWS credentials {aws_credentials}.
slots:
name: requestBody.FriendlyName
s3_url: requestBody.AwsS3Url
aws_credentials: requestBody.AwsCredentialsSid
- text: Set composition settings {name} to encrypt with key {encryption_key}.
slots:
name: requestBody.FriendlyName
encryption_key: requestBody.EncryptionKeySid
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/Compositions/{Sid}'].get
update:
x-apievangelist-phrasing:
intent: Get a recording composition
effect: read
questions:
- What is the status and duration of a specific recording composition?
- Is a given v1 composition finished and ready to download?
instructions:
- text: Get v1 composition {composition}.
slots:
composition: path.Sid
- text: Show the details of recording composition {composition} from the v1 API.
slots:
composition: path.Sid
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/Compositions/{Sid}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a recording composition
effect: destructive
questions:
- How do I permanently delete a v1 recording composition?
- Can I free storage by removing a composition I have already downloaded?
instructions:
- text: Delete v1 composition {composition}.
slots:
composition: path.Sid
- text: Permanently remove recording composition {composition} using the v1 API.
slots:
composition: path.Sid
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/Compositions'].get
update:
x-apievangelist-phrasing:
intent: List recording compositions
effect: read
questions:
- Which compositions were created in a given date range?
- What recording compositions exist for one room, filtered by status?
instructions:
- text: List v1 compositions created after {after} and before {before}.
slots:
after: query.DateCreatedAfter
before: query.DateCreatedBefore
- text: List v1 compositions for room {room} with status {status}.
slots:
room: query.RoomSid
status: query.Status
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/Compositions'].post
update:
x-apievangelist-phrasing:
intent: Create a recording composition
effect: write
questions:
- With the v1 API, how do I turn a video room's recordings into a single file?
- Is it possible to exclude certain audio tracks from a v1 composition?
instructions:
- text: Create a v1 composition of room {room}.
slots:
room: requestBody.RoomSid
- text: Create a v1 composition of room {room} in {format}, notifying {callback_url} when done.
slots:
room: requestBody.RoomSid
format: requestBody.Format
callback_url: requestBody.StatusCallback
- text: Compose room {room} with the v1 API, leaving out audio sources {excluded}.
slots:
room: requestBody.RoomSid
excluded: requestBody.AudioSourcesExcluded
method: generated
generated: '2026-09-26'