Canvas · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Canvas LMS REST Media Objects API
13 actions
13 updates
phrasing
extends
openapi/canvas-media-objects-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Canvas's API. It is a proposal applied on top of the contract, not a document Canvas publishes.
What the actions change
x-apievangelist-phrasing
Targets 13
$.info
$.paths['/v1/media_objects/{media_object_id}/media_tracks'].get
$.paths['/v1/media_objects/{media_object_id}/media_tracks'].put
$.paths['/v1/media_attachments/{attachment_id}/media_tracks'].get
$.paths['/v1/media_attachments/{attachment_id}/media_tracks'].put
$.paths['/v1/media_objects'].get
$.paths['/v1/courses/{course_id}/media_objects'].get
$.paths['/v1/groups/{group_id}/media_objects'].get
$.paths['/v1/media_attachments'].get
$.paths['/v1/courses/{course_id}/media_attachments'].get
$.paths['/v1/groups/{group_id}/media_attachments'].get
$.paths['/v1/media_objects/{media_object_id}'].put
$.paths['/v1/media_attachments/{attachment_id}'].put
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 Canvas LMS REST Media Objects API
version: 1.0.0
extends: openapi/canvas-media-objects-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 12
- target: $.paths['/v1/media_objects/{media_object_id}/media_tracks'].get
update:
x-apievangelist-phrasing:
intent: List captions on a media object
effect: read
questions:
- What caption or subtitle tracks does a media object have?
- Which languages of captions exist for a recorded video by media object ID?
instructions:
- text: List the media tracks for media object {media_object_id}.
slots:
media_object_id: path.media_object_id
- text: Show captions on media object {media_object_id} including {include}.
slots:
media_object_id: path.media_object_id
include: query.include
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/media_objects/{media_object_id}/media_tracks'].put
update:
x-apievangelist-phrasing:
intent: Replace caption tracks on a media object
effect: destructive
questions:
- How do I replace all the subtitles on a media object?
- Will tracks I leave out be deleted when I update a media object's captions?
instructions:
- text: Replace the media tracks on media object {media_object_id}.
slots:
media_object_id: path.media_object_id
- text: Update captions on media object {media_object_id} and return {include}.
slots:
media_object_id: path.media_object_id
include: requestBody.include
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/media_attachments/{attachment_id}/media_tracks'].get
update:
x-apievangelist-phrasing:
intent: List captions on a media attachment
effect: read
questions:
- What caption tracks are attached to an uploaded media file?
- Can I list subtitles for a media attachment by its attachment ID?
instructions:
- text: List the media tracks for attachment {attachment_id}.
slots:
attachment_id: path.attachment_id
- text: Show captions on media attachment {attachment_id} including {include}.
slots:
attachment_id: path.attachment_id
include: query.include
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/media_attachments/{attachment_id}/media_tracks'].put
update:
x-apievangelist-phrasing:
intent: Replace caption tracks on a media attachment
effect: destructive
questions:
- How do I swap out the subtitles on a media attachment?
- Does updating an attachment's tracks remove ones I don't list?
instructions:
- text: Replace the media tracks on attachment {attachment_id}.
slots:
attachment_id: path.attachment_id
- text: Update captions on media attachment {attachment_id} and return {include}.
slots:
attachment_id: path.attachment_id
include: requestBody.include
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/media_objects'].get
update:
x-apievangelist-phrasing:
intent: List media objects I created
effect: read
questions:
- Which videos and audio recordings have I uploaded?
- Can I sort my own media objects by title or date?
instructions:
- text: List the media objects I created.
- text: List my media objects sorted by {sort} in {order} order.
slots:
sort: query.sort
order: query.order
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/media_objects'].get
update:
x-apievangelist-phrasing:
intent: List media objects in a course
effect: read
questions:
- What recordings are associated with my course?
- Can I list a course's media objects without their source data?
instructions:
- text: List the media objects in course {course_id}.
slots:
course_id: path.course_id
- text: List course {course_id}'s media objects sorted by {sort}.
slots:
course_id: path.course_id
sort: query.sort
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/media_objects'].get
update:
x-apievangelist-phrasing:
intent: List media objects in a group
effect: read
questions:
- What videos have been added to a student group?
- Can I list a group's media objects in title order?
instructions:
- text: List the media objects in group {group_id}.
slots:
group_id: path.group_id
- text: List group {group_id}'s media objects sorted by {sort}.
slots:
group_id: path.group_id
sort: query.sort
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/media_attachments'].get
update:
x-apievangelist-phrasing:
intent: List my media attachments
effect: read
questions:
- Which media files have I uploaded as attachments?
- Can I list my media attachments while excluding source details?
instructions:
- text: List my media attachments.
- text: List my media attachments ordered {order} by {sort}.
slots:
order: query.order
sort: query.sort
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/media_attachments'].get
update:
x-apievangelist-phrasing:
intent: List media attachments in a course
effect: read
questions:
- What uploaded media attachments belong to a course?
- Can I sort a course's media attachments by creation date?
instructions:
- text: List the media attachments in course {course_id}.
slots:
course_id: path.course_id
- text: List course {course_id}'s media attachments ordered {order}.
slots:
course_id: path.course_id
order: query.order
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/media_attachments'].get
update:
x-apievangelist-phrasing:
intent: List media attachments in a group
effect: read
questions:
- Which media attachments has a group uploaded?
- Can I sort a group's media attachments?
instructions:
- text: List the media attachments in group {group_id}.
slots:
group_id: path.group_id
- text: List group {group_id}'s media attachments ordered {order}.
slots:
group_id: path.group_id
order: query.order
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/media_objects/{media_object_id}'].put
update:
x-apievangelist-phrasing:
intent: Rename a media object
effect: write
questions:
- How do I change the title of a recorded video by media object ID?
- Can I restrict whether viewers see the rolling transcript on a media object?
instructions:
- text: Rename media object {media_object_id} to {user_entered_title}.
slots:
media_object_id: path.media_object_id
user_entered_title: requestBody.user_entered_title
- text: Set viewer restrictions on media object {media_object_id} to {viewer_restrictions}.
slots:
media_object_id: path.media_object_id
viewer_restrictions: requestBody.viewer_restrictions
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/media_attachments/{attachment_id}'].put
update:
x-apievangelist-phrasing:
intent: Rename a media attachment
effect: write
questions:
- How do I retitle an uploaded media attachment?
- Can I set viewer restrictions on a media attachment?
instructions:
- text: Rename media attachment {attachment_id} to {user_entered_title}.
slots:
attachment_id: path.attachment_id
user_entered_title: requestBody.user_entered_title
- text: Set viewer restrictions on attachment {attachment_id} to {viewer_restrictions}.
slots:
attachment_id: path.attachment_id
viewer_restrictions: requestBody.viewer_restrictions
method: generated
generated: '2026-10-01'