How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Canvas Files API

The Files API from Canvas — 43 operation(s) for files.

Canvas Files API is one of 145 APIs that Canvas publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include File. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, authentication docs, a GitHub repository, an API reference, and rate-limit docs.

This API exposes 53 operations across 43 paths, and defines 4 schemas. It is described by OpenAPI 3.2.0, at version v1.

Requests are made against 2 base URLs: https://canvas.instructure.com/api, https://{canvas_host}/api.

53 operations 43 paths 4 schemas 5 DELETE33 GET10 POST5 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
v1
Base URL
https://canvas.instructure.com/api/v1
Authentication
HTTP Bearer, OAuth 2.0
License
Resource Areas
1

Authentication & Security 2

Canvas Files API declares 2 security schemes for authenticating requests. It accepts HTTP bearer tokens (bearerAuth). It supports OAuth 2.0 (oauth2) using the authorizationCode flow. By default, every request must be authenticated.

  • bearerAuth — Canvas OAuth2 access token sent as "Authorization: Bearer ". See https://canvas.instructure.com/doc/api/file.oauth.html
  • oauth2 — Canvas OAuth2. See https://canvas.instructure.com/doc/api/file.oauth.html and https://canvas.instructure.com/doc/api/file.oauthendpoints.html

Paths & Operations 53

Across 43 paths, the API surfaces 53 operations — 5 DELETE, 33 GET, 10 POST, 5 PUT. Each is listed below with its method, path, parameters, and response codes.

Files 53
GET
/v1/courses/{course_id}/files
List files
list_files_courses 8 params → 200
GET
/v1/courses/{course_id}/files/quota
Get quota information
get_quota_information_courses 1 param → 200
GET
/v1/groups/{group_id}/files/quota
Get quota information
get_quota_information_groups 1 param → 200
GET
/v1/users/{user_id}/files/quota
Get quota information
get_quota_information_users 1 param → 200
GET
/v1/users/{user_id}/files
List files
list_files_users 8 params → 200
GET
/v1/groups/{group_id}/files
List files
list_files_groups 8 params → 200
GET
/v1/folders/{id}/files
List files
list_files_folders 8 params → 200
GET
/v1/files/{id}/public_url
Get public inline preview url
get_public_inline_preview_url 2 params → 200
GET
/v1/files/{id}
Get file
get_file_files 4 params → 200
PUT
/v1/files/{id}
Update file
update_file 1 param body → 200
DELETE
/v1/files/{id}
Delete file
delete_file 2 params → 200
GET
/v1/courses/{course_id}/files/{id}
Get file
get_file_courses 5 params → 200
GET
/v1/groups/{group_id}/files/{id}
Get file
get_file_groups 5 params → 200
GET
/v1/users/{user_id}/files/{id}
Get file
get_file_users 5 params → 200
GET
/v1/courses/{course_id}/files/file_ref/{migration_id}
Translate file reference
translate_file_reference 2 params → 200
GET
/v1/files/{id}/icon_metadata
Get icon metadata
get_icon_metadata 1 param → 200
POST
/v1/files/{id}/reset_verifierdeprecated
Reset link verifier
reset_link_verifier 1 param → 200
POST
/v1/files/update_word_count
Update word count
update_word_count body → 200
GET
/v1/folders/{id}/folders
List folders
list_folders 1 param → 200
GET
/v1/courses/{course_id}/folders
List all folders
list_all_folders_courses 1 param → 200
POST
/v1/courses/{course_id}/folders
Create folder
create_folder_courses 1 param body → 200
GET
/v1/users/{user_id}/folders
List all folders
list_all_folders_users 1 param → 200
POST
/v1/users/{user_id}/folders
Create folder
create_folder_users 1 param body → 200
GET
/v1/groups/{group_id}/folders
List all folders
list_all_folders_groups 1 param → 200
POST
/v1/groups/{group_id}/folders
Create folder
create_folder_groups 1 param body → 200
GET
/v1/courses/{course_id}/folders/by_path/*full_path
Resolve path
resolve_path_courses_full_path 1 param → 200
GET
/v1/courses/{course_id}/folders/by_path
Resolve path
resolve_path_courses 1 param → 200
GET
/v1/users/{user_id}/folders/by_path/*full_path
Resolve path
resolve_path_users_full_path 1 param → 200
GET
/v1/users/{user_id}/folders/by_path
Resolve path
resolve_path_users 1 param → 200
GET
/v1/groups/{group_id}/folders/by_path/*full_path
Resolve path
resolve_path_groups_full_path 1 param → 200
GET
/v1/groups/{group_id}/folders/by_path
Resolve path
resolve_path_groups 1 param → 200
GET
/v1/courses/{course_id}/folders/{id}
Get folder
get_folder_courses 2 params → 200
GET
/v1/users/{user_id}/folders/{id}
Get folder
get_folder_users 2 params → 200
GET
/v1/groups/{group_id}/folders/{id}
Get folder
get_folder_groups 2 params → 200
GET
/v1/folders/{id}
Get folder
get_folder_folders 1 param → 200
PUT
/v1/folders/{id}
Update folder
update_folder 1 param body → 200
DELETE
/v1/folders/{id}
Delete folder
delete_folder 2 params → 200
POST
/v1/folders/{folder_id}/folders
Create folder
create_folder_folders 1 param body → 200
POST
/v1/accounts/{account_id}/folders
Create folder
create_folder_accounts 1 param body → 200
POST
/v1/folders/{folder_id}/files
Upload a file
upload_file_files 1 param → 200
POST
/v1/folders/{dest_folder_id}/copy_file
Copy a file
copy_file 1 param body → 200
POST
/v1/folders/{dest_folder_id}/copy_folder
Copy a folder
copy_folder 1 param body → 200
GET
/v1/courses/{course_id}/folders/media
Get uploaded media folder for user
get_uploaded_media_folder_for_user_courses 1 param → 200
GET
/v1/groups/{group_id}/folders/media
Get uploaded media folder for user
get_uploaded_media_folder_for_user_groups 1 param → 200
PUT
/v1/courses/{course_id}/usage_rights
Set usage rights
set_usage_rights_courses 1 param body → 200
DELETE
/v1/courses/{course_id}/usage_rights
Remove usage rights
remove_usage_rights_courses 3 params → 200
PUT
/v1/groups/{group_id}/usage_rights
Set usage rights
set_usage_rights_groups 1 param body → 200
DELETE
/v1/groups/{group_id}/usage_rights
Remove usage rights
remove_usage_rights_groups 3 params → 200
PUT
/v1/users/{user_id}/usage_rights
Set usage rights
set_usage_rights_users 1 param body → 200
DELETE
/v1/users/{user_id}/usage_rights
Remove usage rights
remove_usage_rights_users 3 params → 200
GET
/v1/courses/{course_id}/content_licenses
List licenses
list_licenses_courses 1 param → 200
GET
/v1/groups/{group_id}/content_licenses
List licenses
list_licenses_groups 1 param → 200
GET
/v1/users/{user_id}/content_licenses
List licenses
list_licenses_users 1 param → 200

Schemas 4

The contract defines 4 schemas that model the data the API accepts and returns. The most detailed are File__files (23 properties), Folder (20 properties), UsageRights (6 properties), License (3 properties). Each schema is shown below with its type and property counts.

License
object
3 properties
Folder
object
20 properties
UsageRights
object
Describes the copyright and license information for a File
6 properties
File__files
object
23 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

canvas-files-api-openapi.yml Raw ↑

Other APIs Canvas publishes across the network.

Canvas LMS GraphQL API
Canvas LTI Integrations
Canvas Courses API
Canvas Access Tokens API
Canvas Accessibility Course Scans API
Canvas Accessibility Course Statistics API
Canvas Account Calendars API
Canvas Account Domain Lookups API
Canvas Account Notifications API
Canvas Account Reports API
Canvas Accounts API
Canvas Accounts (Lti) API
Where this information came from

This is an independent, third-party profile of Canvas Files API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.