Canvas LMS REST API
The Canvas LMS REST API provides programmatic access to courses, assignments, quizzes, grades, users, enrollments, accounts, discussions, files, modules, rubrics, submissions, SIS imports, and account administration. It uses OAuth 2.0 access tokens and returns JSON with ISO 8601 timestamps, supporting pagination, request throttling, masquerading, and compound documents.
Operations 1117
Showing the first 250 of 1117. The full set is in the contract, and via get_provider_operations.
GET
/v1/users/{user_id}/educator_accessibility_course_statistics
List accessibility course statistics
#
GET
/v1/users/{user_id}/educator_accessibility_course_terms
List accessibility course statistic terms
#
GET
/v1/accounts/{account_id}/account_notifications
Index of active global notification for the user
#
DELETE
/v1/accounts/{account_id}/account_notifications/{id}
Close notification for user. Destroy notification for admin
#
GET
/v1/manually_created_courses_account
Get the manually-created courses sub-account for the domain root account
#
GET
/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}
Show conversation
#
DELETE
/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}
Delete AI conversation
#
GET
/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations
Get active conversation
#
POST
/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations
Create AI conversation
#
POST
/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/messages
Post message to conversation
#
GET
/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/evaluation
Get conversation evaluation
#
POST
/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/evaluation
Generate conversation evaluation
#
POST
/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/messages/{message_id}/feedback
Create feedback on a conversation message
#
DELETE
/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/messages/{message_id}/feedback/{feedback_id}
Delete feedback on a conversation message
#
GET
/v1/courses/{course_id}/ai_experiences/{id}/ai_conversations/{conversation_id}
Show student AI conversation
#
GET
/v1/accounts/{account_id}/analytics/terms/{term_id}/activity
Get department-level participation data
#
GET
/v1/accounts/{account_id}/analytics/completed/activity
Get department-level participation data
#
GET
/v1/accounts/{account_id}/analytics/terms/{term_id}/statistics
Get department-level statistics
#
GET
/v1/accounts/{account_id}/analytics/terms/{term_id}/statistics_by_subaccount
Get department-level statistics, broken down by subaccount
#
GET
/v1/accounts/{account_id}/analytics/current/statistics_by_subaccount
Get department-level statistics, broken down by subaccount
#
GET
/v1/accounts/{account_id}/analytics/completed/statistics_by_subaccount
Get department-level statistics, broken down by subaccount
#
GET
/v1/courses/{course_id}/analytics/users/{student_id}/activity
Get user-in-a-course-level participation data
#
GET
/v1/courses/{course_id}/analytics/users/{student_id}/assignments
Get user-in-a-course-level assignment data
#
GET
/v1/courses/{course_id}/analytics/users/{student_id}/communication
Get user-in-a-course-level messaging data
#
PUT
/lti/asset_processor_eulas/{context_external_tool_id}/deployment
Update Eula Deployment Configuration
#
DELETE
/lti/asset_processor_eulas/{context_external_tool_id}/user
Delete Eula Acceptances for deployment
#
POST
/v1/courses/{course_id}/assignments/{assignment_id}/extensions
Set extensions for student assignment submissions
#
DELETE
/v1/courses/{course_id}/assignment_groups/{assignment_group_id}
Destroy an Assignment Group
#
GET
/v1/courses/{course_id}/assignments/{assignment_id}/users/{user_id}/group_members
List group members for a student on an assignment
#
GET
/v1/courses/{course_id}/assignments/{assignment_id}/overrides/{id}
Get a single assignment override
#
PUT
/v1/courses/{course_id}/assignments/{assignment_id}/overrides/{id}
Update an assignment override
#
DELETE
/v1/courses/{course_id}/assignments/{assignment_id}/overrides/{id}
Delete an assignment override
#
GET
/v1/groups/{group_id}/assignments/{assignment_id}/override
Redirect to the assignment override for a group
#
GET
/v1/sections/{course_section_id}/assignments/{assignment_id}/override
Redirect to the assignment override for a section
#
PUT
/v1/accounts/{account_id}/authentication_providers/{id}/restore
Restore a deleted authentication provider
#
GET
/v1/courses/{course_id}/blueprint_templates/{template_id}/associated_courses
Get associated course information
#
PUT
/v1/courses/{course_id}/blueprint_templates/{template_id}/update_associations
Update associated courses
#
POST
/v1/courses/{course_id}/blueprint_templates/{template_id}/migrations
Begin a migration to push to associated courses
#
GET
/v1/courses/{course_id}/blueprint_templates/{template_id}/migrations
List blueprint migrations
#
PUT
/v1/courses/{course_id}/blueprint_templates/{template_id}/restrict_item
Set or remove restrictions on a blueprint course object
#
GET
/v1/courses/{course_id}/blueprint_templates/{template_id}/unsynced_changes
Get unsynced changes
#
GET
/v1/courses/{course_id}/blueprint_templates/{template_id}/migrations/{id}
Show a blueprint migration
#
GET
/v1/courses/{course_id}/blueprint_templates/{template_id}/migrations/{id}/details
Get migration details
#
GET
/v1/courses/{course_id}/blueprint_subscriptions/{subscription_id}/migrations
List blueprint imports
#
GET
/v1/courses/{course_id}/blueprint_subscriptions/{subscription_id}/migrations/{id}
Show a blueprint import
#
GET
/v1/courses/{course_id}/blueprint_subscriptions/{subscription_id}/migrations/{id}/details
Get import details
#
GET
/v1/accounts/{account_id}/brand_variables
Get the brand config variables for a sub-account or course
#
GET
/v1/courses/{course_id}/brand_variables
Get the brand config variables for a sub-account or course
#
POST
/v1/courses/{course_id}/calendar_events/timetable_events
Create or update events directly for a course timetable
#
GET
/v1/accounts/{account_id}/content_migrations/{content_migration_id}/migration_issues
List migration issues
#
GET
/v1/courses/{course_id}/content_migrations/{content_migration_id}/migration_issues
List migration issues
#
GET
/v1/groups/{group_id}/content_migrations/{content_migration_id}/migration_issues
List migration issues
#
GET
/v1/users/{user_id}/content_migrations/{content_migration_id}/migration_issues
List migration issues
#
GET
/v1/accounts/{account_id}/content_migrations/{content_migration_id}/migration_issues/{id}
Get a migration issue
#
PUT
/v1/accounts/{account_id}/content_migrations/{content_migration_id}/migration_issues/{id}
Update a migration issue
#
GET
/v1/courses/{course_id}/content_migrations/{content_migration_id}/migration_issues/{id}
Get a migration issue
#
PUT
/v1/courses/{course_id}/content_migrations/{content_migration_id}/migration_issues/{id}
Update a migration issue
#
GET
/v1/groups/{group_id}/content_migrations/{content_migration_id}/migration_issues/{id}
Get a migration issue
#
PUT
/v1/groups/{group_id}/content_migrations/{content_migration_id}/migration_issues/{id}
Update a migration issue
#
GET
/v1/users/{user_id}/content_migrations/{content_migration_id}/migration_issues/{id}
Get a migration issue
#
PUT
/v1/users/{user_id}/content_migrations/{content_migration_id}/migration_issues/{id}
Update a migration issue
#
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
🔗
AgentSkill
https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/skills/_index.yml
🔗
APIsJSON
https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/apis.yml