Canvas Files API
The Files API from Canvas — 43 operation(s) for files.
Operations 53
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
Ask an LLM
“How do I see every file uploaded to a Canvas course?”
“Can I search a course's files by name or filter them to only PDFs?”
Tell an agent
List all files in course {course_id}.
Search course {course_id}'s files for {search_term}.
GET
/v1/courses/{course_id}/files/quota
Check a course's file storage quota · Get quota information
#
Ask an LLM
“How much file storage has a course used out of its quota?”
“Is a course close to running out of file space?”
Tell an agent
Show the storage quota and usage for course {course_id}.
Check how much file space course {course_id} has left.
Ask an LLM
“How much file storage is a student group using?”
“What is the storage limit for a group's files?”
Tell an agent
Show the storage quota and usage for group {group_id}.
Check how much file space group {group_id} has left.
GET
/v1/users/{user_id}/files/quota
Check a user's personal file storage quota · Get quota information
#
Ask an LLM
“How much of a user's personal file quota is used?”
“Is a student running out of space in their personal files?”
Tell an agent
Show the personal storage quota and usage for user {user_id}.
Check how much personal file space user {user_id} has left.
Ask an LLM
“How do I list the files in a user's personal files area?”
“Can I search a student's personal files for a document name?”
Tell an agent
List the personal files of user {user_id}.
Search user {user_id}'s personal files for {search_term}.
Ask an LLM
“What files has a student group uploaded?”
“Can I filter a group's files by content type?”
Tell an agent
List all files in group {group_id}.
Search group {group_id}'s files for {search_term}.
Ask an LLM
“How do I see just the files inside one specific folder?”
“Can I sort the files in a folder by name or date?”
Tell an agent
List the files in folder {id}.
Search folder {id} for files matching {search_term}.
Ask an LLM
“How do I get the URL used to preview a file inline?”
“Can I get a preview link for a file attached to a submission?”
Tell an agent
Get the inline preview URL for file {id}.
Get the preview URL for file {id} from submission {submission_id}.
Ask an LLM
“How do I look up a file's details when I only have its file ID?”
“What metadata does Canvas return for a single file?”
Tell an agent
Get the details of file {id}.
Look up file {id} directly by its ID.
Ask an LLM
“How do I rename a file or move it to another folder?”
“Can I hide a file or lock it until a certain date?”
Tell an agent
Rename file {id} to {name}.
Move file {id} into folder {parent_folder_id}.
Ask an LLM
“How do I permanently delete a file from Canvas?”
“Is deleting a file reversible, or is it destroyed for good?”
Tell an agent destructive · confirm first
Permanently delete file {id}.
Destroy file {id} and replace it with a placeholder.
Ask an LLM
“How do I fetch a specific file in the context of a course?”
“Can I get a course file's details along with its usage rights?”
Tell an agent
Get file {id} from course {course_id}.
Show the details of course {course_id}'s file {id}.
Ask an LLM
“How do I fetch a specific file that belongs to a group?”
“What details can I see about a file in a group's files area?”
Tell an agent
Get file {id} from group {group_id}.
Show the details of group {group_id}'s file {id}.
Ask an LLM
“How do I fetch a specific file from a user's personal files?”
“Can I see details of a file a student stored in their own files?”
Tell an agent
Get file {id} from user {user_id}'s personal files.
Show the details of user {user_id}'s file {id}.
GET
/v1/courses/{course_id}/files/file_ref/{migration_id}
Resolve a course-copy file reference · Translate file reference
#
Ask an LLM
“How do I find the file a course copy migration reference points to?”
“Can I translate a file migration ID into the copied file in my course?”
Tell an agent
Translate file reference {migration_id} in course {course_id}.
Find which file in course {course_id} came from migration reference {migration_id}.
Ask an LLM
“How do I read the Icon Maker settings stored on an icon file?”
“Can I see what shape and colors an Icon Maker icon was built with?”
Tell an agent
Get the Icon Maker metadata for file {id}.
Show how icon file {id} was configured in Icon Maker.
Ask an LLM
“How do I stop old shared links to a file from granting access?”
“What permissions do I need to reset a file's verifier?”
Tell an agent destructive · confirm first
Reset the link verifier on file {id}.
Invalidate existing verifier links to file {id}.
Ask an LLM
“How does a document viewer report a submission's word count back?”
“Can an external viewer update the word count on a submitted attachment?”
Tell an agent
Set the word count to {word_count} for attachment token {attachment_jwt}.
Report {word_count} words for the submission attachment identified by {attachment_jwt}.
Ask an LLM
“How do I see the folders nested one level inside a folder?”
“What subfolders does a given folder contain?”
Tell an agent
List the subfolders inside folder {id}.
Show the immediate child folders of folder {id}.
Ask an LLM
“How do I get a flat list of all folders in a course, subfolders included?”
“Which folders exist anywhere in a course's files?”
Tell an agent
List every folder in course {course_id}.
Give me a flat list of all of course {course_id}'s folders.
Ask an LLM
“How do I create a new folder in a course's files?”
“Can I create a course folder that stays hidden or locked until a date?”
Tell an agent
Create a folder named {name} in course {course_id}.
Create course {course_id} folder {name} under {parent_folder_path}.
Ask an LLM
“How do I list all the folders in a user's personal files?”
“What folder structure does a student have in their own files?”
Tell an agent
List every folder in user {user_id}'s personal files.
Give me a flat list of user {user_id}'s folders.
Ask an LLM
“How do I add a folder to a user's personal files?”
“Can I create a personal folder at a specific path?”
Tell an agent
Create a folder named {name} in user {user_id}'s files.
Create personal folder {name} for user {user_id} under {parent_folder_path}.
Ask an LLM
“How do I list all the folders in a group's files?”
“What folders has a student group set up?”
Tell an agent
List every folder in group {group_id}.
Give me a flat list of group {group_id}'s folders.
Ask an LLM
“How do I create a folder in a group's files area?”
“Can I make a group folder hidden from members?”
Tell an agent
Create a folder named {name} in group {group_id}.
Create group {group_id} folder {name} under {parent_folder_path}.
GET
/v1/courses/{course_id}/folders/by_path/*full_path
Resolve a full folder path in a course · Resolve path
#
Ask an LLM
“How do I turn a course folder path like 'Week 1/Readings' into its folder chain?”
“Can I get every folder from the course root down to a nested path?”
Tell an agent
Resolve a nested folder path in course {course_id} into its folder hierarchy.
Walk the folder chain from the root to a given path in course {course_id}.
GET
/v1/courses/{course_id}/folders/by_path
Get a course's root folder via path resolution · Resolve path
#
Ask an LLM
“How do I resolve the root of a course's folder path with no subpath?”
“What does path resolution return for a course when no path is given?”
Tell an agent
Resolve the root folder path for course {course_id}.
Run folder path resolution on course {course_id} without a subpath.
GET
/v1/users/{user_id}/folders/by_path/*full_path
Resolve a full folder path in a user's files · Resolve path
#
Ask an LLM
“How do I find the folders along a nested path in a user's personal files?”
“Can I resolve a personal folder path into each folder on the way down?”
Tell an agent
Resolve a nested folder path in user {user_id}'s files into its hierarchy.
Walk the folder chain to a given path in user {user_id}'s personal files.
GET
/v1/users/{user_id}/folders/by_path
Get a user's root folder via path resolution · Resolve path
#
Ask an LLM
“How do I resolve the root of a user's personal folder path?”
“What does path resolution return for a user's files with no path?”
Tell an agent
Resolve the root folder path for user {user_id}.
Run folder path resolution on user {user_id}'s files without a subpath.
GET
/v1/groups/{group_id}/folders/by_path/*full_path
Resolve a full folder path in a group · Resolve path
#
Ask an LLM
“How do I resolve a nested folder path inside a group's files?”
“Can I get each folder on the path to a deep group folder?”
Tell an agent
Resolve a nested folder path in group {group_id} into its hierarchy.
Walk the folder chain to a given path in group {group_id}.
GET
/v1/groups/{group_id}/folders/by_path
Get a group's root folder via path resolution · Resolve path
#
Ask an LLM
“How do I resolve the root of a group's folder path?”
“What does path resolution return for a group with no path given?”
Tell an agent
Resolve the root folder path for group {group_id}.
Run folder path resolution on group {group_id} without a subpath.
Ask an LLM
“How do I get a course folder's details, including the root folder?”
“Can I use 'root' to fetch a course's top-level folder?”
Tell an agent
Get folder {id} in course {course_id}.
Show the root folder of course {course_id}.
Ask an LLM
“How do I get details of a folder in a user's personal files?”
“Can I fetch the root of a student's personal files?”
Tell an agent
Get folder {id} in user {user_id}'s files.
Show the root personal folder of user {user_id}.
Ask an LLM
“How do I get details of a folder in a group's files?”
“Can I fetch a group's root folder?”
Tell an agent
Get folder {id} in group {group_id}.
Show the root folder of group {group_id}.
Ask an LLM
“How do I look up a folder when I only know its folder ID?”
“What details does Canvas return about a single folder?”
Tell an agent
Get folder {id} by its ID.
Look up the details of folder {id} directly.
Ask an LLM
“How do I rename a folder or move it under another folder?”
“Can I hide a folder or lock it until a set date?”
Tell an agent
Rename folder {id} to {name}.
Move folder {id} under folder {parent_folder_id}.
Ask an LLM
“How do I delete a folder from Canvas files?”
“Can I delete a folder that still has files in it?”
Tell an agent destructive · confirm first
Delete empty folder {id}.
Force-delete folder {id} and everything inside it.
Ask an LLM
“How do I create a subfolder inside an existing folder?”
“Can I set a position for a new subfolder within its parent?”
Tell an agent
Create subfolder {name} inside folder {folder_id}.
Add a locked subfolder {name} to folder {folder_id}.
Ask an LLM
“How do I create a folder in an account's files?”
“Can admins create folders for a whole account?”
Tell an agent
Create a folder named {name} in account {account_id}.
Create account {account_id} folder {name} under {parent_folder_path}.
Ask an LLM
“How do I upload a file into a specific Canvas folder?”
“What is the first step of the file upload workflow for a folder?”
Tell an agent
Start a file upload into folder {folder_id}.
Upload a new file to folder {folder_id}.
Ask an LLM
“How do I copy a file from one course into another course's folder?”
“What happens if a copied file has the same name as an existing one?”
Tell an agent
Copy file {source_file_id} into folder {dest_folder_id}.
Copy file {source_file_id} into folder {dest_folder_id} and {on_duplicate} on a name clash.
Ask an LLM
“How do I copy a whole folder with its contents into another folder?”
“Can I copy a folder between courses in the same institution?”
Tell an agent
Copy folder {source_folder_id} into folder {dest_folder_id}.
Duplicate folder {source_folder_id} with all its files under {dest_folder_id}.
GET
/v1/courses/{course_id}/folders/media
Get my media upload folder in a course · Get uploaded media folder for user
#
Ask an LLM
“Where do my uploaded media files go in a course?”
“Does Canvas create a course media upload folder if one doesn't exist?”
Tell an agent
Get my uploaded media folder in course {course_id}.
Find the course {course_id} folder I can upload media to.
GET
/v1/groups/{group_id}/folders/media
Get my media upload folder in a group · Get uploaded media folder for user
#
Ask an LLM
“Where do my uploaded media files go in a group?”
“Which group folder am I allowed to upload media into?”
Tell an agent
Get my uploaded media folder in group {group_id}.
Find the group {group_id} folder I can upload media to.
Ask an LLM
“How do I set copyright and license info on files in a course?”
“Can I apply a Creative Commons license to several course files at once?”
Tell an agent
Mark files {file_ids} in course {course_id} as {justification}.
License course {course_id} files {file_ids} under {license} with justification {justification}.
DELETE
/v1/courses/{course_id}/usage_rights
Remove copyright info from course files · Remove usage rights
#
Ask an LLM
“How do I clear the copyright and license info from course files?”
“Can I remove usage rights from a whole folder in a course?”
Tell an agent destructive · confirm first
Remove usage rights from files {file_ids} in course {course_id}.
Clear the license info on course {course_id} files {file_ids}.
Ask an LLM
“How do I set copyright and license info on a group's files?”
“Can I record a legal copyright holder for group files?”
Tell an agent
Mark files {file_ids} in group {group_id} as {justification}.
License group {group_id} files {file_ids} under {license} with justification {justification}.
DELETE
/v1/groups/{group_id}/usage_rights
Remove copyright info from group files · Remove usage rights
#
Ask an LLM
“How do I clear usage rights from files in a group?”
“Can I remove license info from a group's folder in one call?”
Tell an agent destructive · confirm first
Remove usage rights from files {file_ids} in group {group_id}.
Clear the license info on group {group_id} files {file_ids}.
Ask an LLM
“How do I set copyright info on files in a user's personal files?”
“Can I license my own personal files under Creative Commons?”
Tell an agent
Mark files {file_ids} in user {user_id}'s files as {justification}.
License user {user_id}'s files {file_ids} under {license} with justification {justification}.
DELETE
/v1/users/{user_id}/usage_rights
Remove copyright info from a user's files · Remove usage rights
#
Ask an LLM
“How do I clear usage rights from a user's personal files?”
“Can I strip license info from files in my own personal folder?”
Tell an agent destructive · confirm first
Remove usage rights from files {file_ids} in user {user_id}'s files.
Clear the license info on user {user_id}'s files {file_ids}.
Ask an LLM
“Which content licenses can I apply to files in a course?”
“What Creative Commons options are available for course files?”
Tell an agent
List the content licenses available in course {course_id}.
Show which licenses I can apply to course {course_id}'s files.
Ask an LLM
“Which content licenses can be applied to a group's files?”
“What license options does a group have for its uploads?”
Tell an agent
List the content licenses available in group {group_id}.
Show which licenses I can apply to group {group_id}'s files.
GET
/v1/users/{user_id}/content_licenses
List licenses available for a user's files · List licenses
#
Ask an LLM
“Which content licenses can a user apply to personal files?”
“What license choices do I have for my own uploaded files?”
Tell an agent
List the content licenses available to user {user_id}.
Show which licenses user {user_id} can apply to personal files.
Documentation
📖
Documentation
https://canvas.instructure.com/doc/api/
📖
Authentication
https://canvas.instructure.com/doc/api/file.oauth.html
📖
APIReference
https://canvas.instructure.com/doc/api/
📖
RateLimits
https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/rate-limits/canvas-rate-limits.yml
Specifications
SDKs
Other Resources
🔗
Pagination
https://canvas.instructure.com/doc/api/file.pagination.html
🔗
Swagger
https://canvas.instructure.com/doc/api/api-docs.json
🔗
OAuthScopes
https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/scopes/canvas-scopes.yml
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/errors/canvas-problem-types.yml
🔗
DataModel
https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/data-model/canvas-data-model.yml