Reference / API catalog

API catalog

Find an operation and its arguments, then call canvas_read.

Your agent can browse the same catalog with canvas_discover. Tool guide.

All operations are shown. Use your browser’s Find command to search this page.

Courses 5

user_coursesCourses for a visible user.
GET

GET /api/v1/users/{user_id}/courses

Path parameters: user_id

Query parameters: include[], enrollment_state, enrollment_type, state[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "user_courses",
  "path": {
    "user_id": "self"
  }
}
coursesList accessible courses, including concluded courses when requested.
GET

GET /api/v1/courses

Path parameters: None

Query parameters: include[], enrollment_type, enrollment_state, state[], enrollment_role, enrollment_role_id

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "courses"
}
courseCourse detail and syllabus (include[]=syllabus_body).
GET

GET /api/v1/courses/{course_id}

Path parameters: course_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "course",
  "path": {
    "course_id": "101"
  }
}
course_settingsRead course settings when permitted.
GET

GET /api/v1/courses/{course_id}/settings

Path parameters: course_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "course_settings",
  "path": {
    "course_id": "101"
  }
}
course_tabsVisible navigation tabs.
GET

GET /api/v1/courses/{course_id}/tabs

Path parameters: course_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "course_tabs",
  "path": {
    "course_id": "101"
  }
}

Assignments & feedback 23

assignmentsList assignments with instructions and dates; filter assignment_ids[] for one assignment.
GET

GET /api/v1/courses/{course_id}/assignments

Path parameters: course_id

Query parameters: include[], search_term, bucket, assignment_ids[], order_by, needs_grading_count, include_integration_data

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "assignments",
  "path": {
    "course_id": "101"
  }
}
assignment_groupsAssignment groups and grading weights.
GET

GET /api/v1/courses/{course_id}/assignment_groups

Path parameters: course_id

Query parameters: include[], assignment_ids[], exclude_assignment_submission_types[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "assignment_groups",
  "path": {
    "course_id": "101"
  }
}
assignment_groupAssignment group detail.
GET

GET /api/v1/courses/{course_id}/assignment_groups/{group_id}

Path parameters: course_id, group_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "assignment_group",
  "path": {
    "course_id": "101",
    "group_id": "1"
  }
}
assignment_overridesVisible differentiated assignment due dates.
GET

GET /api/v1/courses/{course_id}/assignments/{assignment_id}/overrides

Path parameters: course_id, assignment_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "assignment_overrides",
  "path": {
    "course_id": "101",
    "assignment_id": "1"
  }
}
assignment_overrideA visible assignment override.
GET

GET /api/v1/courses/{course_id}/assignments/{assignment_id}/overrides/{override_id}

Path parameters: course_id, assignment_id, override_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "assignment_override",
  "path": {
    "course_id": "101",
    "assignment_id": "1",
    "override_id": "1"
  }
}
submissionSubmission detail including feedback, history and rubric; use self as user_id.
GET

GET /api/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}

Path parameters: course_id, assignment_id, user_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "submission",
  "path": {
    "course_id": "101",
    "assignment_id": "1",
    "user_id": "self"
  }
}
submissionsVisible assignment submissions (teacher permissions may be required).
GET

GET /api/v1/courses/{course_id}/assignments/{assignment_id}/submissions

Path parameters: course_id, assignment_id

Query parameters: include[], grouped

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "submissions",
  "path": {
    "course_id": "101",
    "assignment_id": "1"
  }
}
student_submissionsBatch submissions across assignments; students can request self.
GET

GET /api/v1/courses/{course_id}/students/submissions

Path parameters: course_id

Query parameters: student_ids[], assignment_ids[], grouped, include[], submitted_since, graded_since, workflow_state, enrollment_state, state

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "student_submissions",
  "path": {
    "course_id": "101"
  }
}
section_submissionSubmission detail including feedback, history and rubric; use self as user_id.
GET

GET /api/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}

Path parameters: section_id, assignment_id, user_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "section_submission",
  "path": {
    "section_id": "1",
    "assignment_id": "1",
    "user_id": "self"
  }
}
section_submissionsVisible assignment submissions (teacher permissions may be required).
GET

GET /api/v1/sections/{section_id}/assignments/{assignment_id}/submissions

Path parameters: section_id, assignment_id

Query parameters: include[], grouped

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "section_submissions",
  "path": {
    "section_id": "1",
    "assignment_id": "1"
  }
}
section_student_submissionsBatch submissions across assignments; students can request self.
GET

GET /api/v1/sections/{section_id}/students/submissions

Path parameters: section_id

Query parameters: student_ids[], assignment_ids[], grouped, include[], submitted_since, graded_since, workflow_state, enrollment_state, state

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "section_student_submissions",
  "path": {
    "section_id": "1"
  }
}
submission_summaryCounts of graded, ungraded and unsubmitted work.
GET

GET /api/v1/courses/{course_id}/assignments/{assignment_id}/submission_summary

Path parameters: course_id, assignment_id

Query parameters: grouped, include_deactivated

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "submission_summary",
  "path": {
    "course_id": "101",
    "assignment_id": "1"
  }
}
rubric_read_stateRead rubric read-state without marking it read.
GET

GET /api/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/rubric_assessments/read

Path parameters: course_id, assignment_id, user_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "rubric_read_state",
  "path": {
    "course_id": "101",
    "assignment_id": "1",
    "user_id": "self"
  }
}
annotation_read_stateRead document annotation state without viewing the annotation UI.
GET

GET /api/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/document_annotations/read

Path parameters: course_id, assignment_id, user_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "annotation_read_state",
  "path": {
    "course_id": "101",
    "assignment_id": "1",
    "user_id": "self"
  }
}
rubricsVisible course rubrics.
GET

GET /api/v1/courses/{course_id}/rubrics

Path parameters: course_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "rubrics",
  "path": {
    "course_id": "101"
  }
}
rubricRubric criteria and permitted assessments.
GET

GET /api/v1/courses/{course_id}/rubrics/{rubric_id}

Path parameters: course_id, rubric_id

Query parameters: include, style

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "rubric",
  "path": {
    "course_id": "101",
    "rubric_id": "1"
  }
}
grading_standardsVisible course grading standards.
GET

GET /api/v1/courses/{course_id}/grading_standards

Path parameters: course_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "grading_standards",
  "path": {
    "course_id": "101"
  }
}
grading_standardGrading scale detail.
GET

GET /api/v1/courses/{course_id}/grading_standards/{standard_id}

Path parameters: course_id, standard_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "grading_standard",
  "path": {
    "course_id": "101",
    "standard_id": "1"
  }
}
outcome_groupsCourse learning outcome groups.
GET

GET /api/v1/courses/{course_id}/outcome_groups

Path parameters: course_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "outcome_groups",
  "path": {
    "course_id": "101"
  }
}
outcome_groupLearning outcome group detail.
GET

GET /api/v1/courses/{course_id}/outcome_groups/{group_id}

Path parameters: course_id, group_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "outcome_group",
  "path": {
    "course_id": "101",
    "group_id": "1"
  }
}
outcomesLinked learning outcomes.
GET

GET /api/v1/courses/{course_id}/outcome_groups/{group_id}/outcomes

Path parameters: course_id, group_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "outcomes",
  "path": {
    "course_id": "101",
    "group_id": "1"
  }
}
outcomeLearning outcome criteria.
GET

GET /api/v1/outcomes/{outcome_id}

Path parameters: outcome_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "outcome",
  "path": {
    "outcome_id": "1"
  }
}
my_missingMissing submissions for the current user.
GET

GET /api/v1/users/self/missing_submissions

Path parameters: None

Query parameters: observed_user_id, include[], filter[], course_ids[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "my_missing"
}

Course content 23

modulesObserve module progress; reads may refresh derived server state. Inline items may be incomplete; use module_items.
GET

GET /api/v1/courses/{course_id}/modules

Path parameters: course_id

Query parameters: include[], search_term, student_id

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "modules",
  "path": {
    "course_id": "101"
  }
}
moduleObserve module structure/progress; reads may refresh derived server state.
GET

GET /api/v1/courses/{course_id}/modules/{module_id}

Path parameters: course_id, module_id

Query parameters: include[], student_id

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "module",
  "path": {
    "course_id": "101",
    "module_id": "1"
  }
}
module_itemsObserve module items/progress; reads may refresh derived server state. Select an item by id in the returned list.
GET

GET /api/v1/courses/{course_id}/modules/{module_id}/items

Path parameters: course_id, module_id

Query parameters: include[], search_term, student_id

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "module_items",
  "path": {
    "course_id": "101",
    "module_id": "1"
  }
}
module_overridesVisible module assignment overrides.
GET

GET /api/v1/courses/{course_id}/modules/{module_id}/assignment_overrides

Path parameters: course_id, module_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "module_overrides",
  "path": {
    "course_id": "101",
    "module_id": "1"
  }
}
pagesList visible pages; include[]=body requests bodies on supported Canvas versions. Requires the Pages tab to be enabled.
GET

GET /api/v1/courses/{course_id}/pages

Path parameters: course_id

Query parameters: sort, order, search_term, published, include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "pages",
  "path": {
    "course_id": "101"
  }
}
page_revisionsList page revision metadata where permissions allow; revision bodies are excluded.
GET

GET /api/v1/courses/{course_id}/pages/{page_url}/revisions

Path parameters: course_id, page_url

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "page_revisions",
  "path": {
    "course_id": "101",
    "page_url": "reading-notes"
  }
}
discussionsDiscussion topics or announcements.
GET

GET /api/v1/courses/{course_id}/discussion_topics

Path parameters: course_id

Query parameters: include[], order_by, scope, only_announcements, filter_by, search_term, exclude_context_module_locked_topics

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "discussions",
  "path": {
    "course_id": "101"
  }
}
discussionA discussion topic's initial post and metadata.
GET

GET /api/v1/courses/{course_id}/discussion_topics/{topic_id}

Path parameters: course_id, topic_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "discussion",
  "path": {
    "course_id": "101",
    "topic_id": "1"
  }
}
discussion_viewDiscussion tree and read-state, subject to initial-post rules.
GET

GET /api/v1/courses/{course_id}/discussion_topics/{topic_id}/view

Path parameters: course_id, topic_id

Query parameters: include_new_entries

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "discussion_view",
  "path": {
    "course_id": "101",
    "topic_id": "1"
  }
}
discussion_entriesPaginated top-level discussion entries.
GET

GET /api/v1/courses/{course_id}/discussion_topics/{topic_id}/entries

Path parameters: course_id, topic_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "discussion_entries",
  "path": {
    "course_id": "101",
    "topic_id": "1"
  }
}
discussion_repliesReplies to a visible discussion entry.
GET

GET /api/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{entry_id}/replies

Path parameters: course_id, topic_id, entry_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "discussion_replies",
  "path": {
    "course_id": "101",
    "topic_id": "1",
    "entry_id": "1"
  }
}
discussion_entry_listFetch selected visible discussion entries.
GET

GET /api/v1/courses/{course_id}/discussion_topics/{topic_id}/entry_list

Path parameters: course_id, topic_id

Query parameters: ids[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "discussion_entry_list",
  "path": {
    "course_id": "101",
    "topic_id": "1"
  }
}
group_pagesList visible pages; include[]=body requests bodies on supported Canvas versions. Requires the Pages tab to be enabled.
GET

GET /api/v1/groups/{group_id}/pages

Path parameters: group_id

Query parameters: sort, order, search_term, published, include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group_pages",
  "path": {
    "group_id": "1"
  }
}
group_page_revisionsList page revision metadata where permissions allow; revision bodies are excluded.
GET

GET /api/v1/groups/{group_id}/pages/{page_url}/revisions

Path parameters: group_id, page_url

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group_page_revisions",
  "path": {
    "group_id": "1",
    "page_url": "reading-notes"
  }
}
group_discussionsDiscussion topics or announcements.
GET

GET /api/v1/groups/{group_id}/discussion_topics

Path parameters: group_id

Query parameters: include[], order_by, scope, only_announcements, filter_by, search_term, exclude_context_module_locked_topics

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group_discussions",
  "path": {
    "group_id": "1"
  }
}
group_discussionA discussion topic's initial post and metadata.
GET

GET /api/v1/groups/{group_id}/discussion_topics/{topic_id}

Path parameters: group_id, topic_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group_discussion",
  "path": {
    "group_id": "1",
    "topic_id": "1"
  }
}
group_discussion_viewDiscussion tree and read-state, subject to initial-post rules.
GET

GET /api/v1/groups/{group_id}/discussion_topics/{topic_id}/view

Path parameters: group_id, topic_id

Query parameters: include_new_entries

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group_discussion_view",
  "path": {
    "group_id": "1",
    "topic_id": "1"
  }
}
group_discussion_entriesPaginated top-level discussion entries.
GET

GET /api/v1/groups/{group_id}/discussion_topics/{topic_id}/entries

Path parameters: group_id, topic_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group_discussion_entries",
  "path": {
    "group_id": "1",
    "topic_id": "1"
  }
}
group_discussion_repliesReplies to a visible discussion entry.
GET

GET /api/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{entry_id}/replies

Path parameters: group_id, topic_id, entry_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group_discussion_replies",
  "path": {
    "group_id": "1",
    "topic_id": "1",
    "entry_id": "1"
  }
}
group_discussion_entry_listFetch selected visible discussion entries.
GET

GET /api/v1/groups/{group_id}/discussion_topics/{topic_id}/entry_list

Path parameters: group_id, topic_id

Query parameters: ids[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group_discussion_entry_list",
  "path": {
    "group_id": "1",
    "topic_id": "1"
  }
}
announcementsAnnouncements across selected courses or groups.
GET

GET /api/v1/announcements

Path parameters: None

Query parameters: context_codes[], start_date, end_date, active_only, latest_only

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "announcements"
}
quizzesClassic quiz metadata; never starts or takes a quiz.
GET

GET /api/v1/courses/{course_id}/quizzes

Path parameters: course_id

Query parameters: search_term

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "quizzes",
  "path": {
    "course_id": "101"
  }
}
quizClassic quiz instructions and settings visible to the caller.
GET

GET /api/v1/courses/{course_id}/quizzes/{quiz_id}

Path parameters: course_id, quiz_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "quiz",
  "path": {
    "course_id": "101",
    "quiz_id": "1"
  }
}

Files & folders 13

course_filesList accessible files and attachment metadata.
GET

GET /api/v1/courses/{course_id}/files

Path parameters: course_id

Query parameters: content_types[], exclude_content_types[], search_term, include[], only[], sort, order

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "course_files",
  "path": {
    "course_id": "101"
  }
}
course_foldersList child folders.
GET

GET /api/v1/courses/{course_id}/folders

Path parameters: course_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "course_folders",
  "path": {
    "course_id": "101"
  }
}
group_filesList accessible files and attachment metadata.
GET

GET /api/v1/groups/{group_id}/files

Path parameters: group_id

Query parameters: content_types[], exclude_content_types[], search_term, include[], only[], sort, order

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group_files",
  "path": {
    "group_id": "1"
  }
}
group_foldersList child folders.
GET

GET /api/v1/groups/{group_id}/folders

Path parameters: group_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group_folders",
  "path": {
    "group_id": "1"
  }
}
user_filesList accessible files and attachment metadata.
GET

GET /api/v1/users/{user_id}/files

Path parameters: user_id

Query parameters: content_types[], exclude_content_types[], search_term, include[], only[], sort, order

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "user_files",
  "path": {
    "user_id": "self"
  }
}
user_foldersList child folders.
GET

GET /api/v1/users/{user_id}/folders

Path parameters: user_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "user_folders",
  "path": {
    "user_id": "self"
  }
}
folder_filesList accessible files and attachment metadata.
GET

GET /api/v1/folders/{folder_id}/files

Path parameters: folder_id

Query parameters: content_types[], exclude_content_types[], search_term, include[], only[], sort, order

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "folder_files",
  "path": {
    "folder_id": "1"
  }
}
folder_foldersList child folders.
GET

GET /api/v1/folders/{folder_id}/folders

Path parameters: folder_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "folder_folders",
  "path": {
    "folder_id": "1"
  }
}
file_metadataFile metadata; use file tool for bounded download.
GET

GET /api/v1/files/{file_id}

Path parameters: file_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "file_metadata",
  "path": {
    "file_id": "1"
  }
}
file_download_urlRead a permitted storage URL; content tool accepts audited S3 REST URLs only.
GET

GET /api/v1/files/{file_id}/public_url

Path parameters: file_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "file_download_url",
  "path": {
    "file_id": "1"
  }
}
folderFolder metadata and permissions.
GET

GET /api/v1/folders/{folder_id}

Path parameters: folder_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "folder",
  "path": {
    "folder_id": "1"
  }
}
filesList accessible files and attachment metadata.
GET

GET /api/v1/courses/{course_id}/files

Path parameters: course_id

Query parameters: content_types[], exclude_content_types[], search_term, include[], only[], sort, order

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "files",
  "path": {
    "course_id": "101"
  }
}
fileFile metadata; use file tool for bounded download.
GET

GET /api/v1/files/{file_id}

Path parameters: file_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "file",
  "path": {
    "file_id": "1"
  }
}

Calendar & planning 14

calendarCalendar events or assignment deadlines; explicit contexts required for course calendars, max ten.
GET

GET /api/v1/calendar_events

Path parameters: None

Query parameters: type, start_date, end_date, undated, all_events, context_codes[], excludes[], important_dates, blackouts

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "calendar"
}
user_calendarVisible user's calendar events.
GET

GET /api/v1/users/{user_id}/calendar_events

Path parameters: user_id

Query parameters: type, start_date, end_date, undated, all_events, context_codes[], excludes[], important_dates, blackouts

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "user_calendar",
  "path": {
    "user_id": "self"
  }
}
calendar_eventSingle calendar event or assignment event.
GET

GET /api/v1/calendar_events/{event_id}

Path parameters: event_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "calendar_event",
  "path": {
    "event_id": "1"
  }
}
plannerStudent agenda with dates, submissions and planner overrides.
GET

GET /api/v1/planner/items

Path parameters: None

Query parameters: start_date, end_date, context_codes[], filter, include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "planner"
}
planner_notesOwn planner notes without creating or changing them.
GET

GET /api/v1/planner_notes

Path parameters: None

Query parameters: start_date, end_date, course_id

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "planner_notes"
}
planner_noteRead an existing planner note.
GET

GET /api/v1/planner_notes/{note_id}

Path parameters: note_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "planner_note",
  "path": {
    "note_id": "1"
  }
}
planner_overridesOwn planner completion and dismissal settings.
GET

GET /api/v1/planner/overrides

Path parameters: None

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "planner_overrides"
}
planner_overrideRead a planner override.
GET

GET /api/v1/planner/overrides/{override_id}

Path parameters: override_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "planner_override",
  "path": {
    "override_id": "1"
  }
}
my_todoCurrent user's to-do items.
GET

GET /api/v1/users/self/todo

Path parameters: None

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "my_todo"
}
my_activityOwn activity stream, without dismissing items.
GET

GET /api/v1/users/self/activity_stream

Path parameters: None

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "my_activity"
}
my_activity_summaryOwn activity counts.
GET

GET /api/v1/users/self/activity_stream/summary

Path parameters: None

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "my_activity_summary"
}
course_activityVisible course activity stream.
GET

GET /api/v1/courses/{course_id}/activity_stream

Path parameters: course_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "course_activity",
  "path": {
    "course_id": "101"
  }
}
planner_itemsStudent agenda with dates, submissions and planner overrides.
GET

GET /api/v1/planner/items

Path parameters: None

Query parameters: start_date, end_date, context_codes[], filter, include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "planner_items"
}
calendar_eventsCalendar events or assignment deadlines; explicit contexts required for course calendars, max ten.
GET

GET /api/v1/calendar_events

Path parameters: None

Query parameters: type, start_date, end_date, undated, all_events, context_codes[], excludes[], important_dates, blackouts

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "calendar_events"
}

People & groups 13

profileCurrent user's profile and Canvas identity.
GET

GET /api/v1/users/self/profile

Path parameters: None

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "profile"
}
userRead a user visible to your account.
GET

GET /api/v1/users/{user_id}

Path parameters: user_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "user",
  "path": {
    "user_id": "self"
  }
}
course_usersVisible course roster; permissions apply.
GET

GET /api/v1/courses/{course_id}/users

Path parameters: course_id

Query parameters: search_term, enrollment_type[], enrollment_role[], enrollment_role_id[], include[], user_ids[], enrollment_state[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "course_users",
  "path": {
    "course_id": "101"
  }
}
course_userVisible course user detail.
GET

GET /api/v1/courses/{course_id}/users/{user_id}

Path parameters: course_id, user_id

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "course_user",
  "path": {
    "course_id": "101",
    "user_id": "self"
  }
}
enrollmentsCourse enrollments and visible grades.
GET

GET /api/v1/courses/{course_id}/enrollments

Path parameters: course_id

Query parameters: type[], role[], role_id[], state[], include[], user_id

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "enrollments",
  "path": {
    "course_id": "101"
  }
}
my_enrollmentsOwn enrollments and available course grades.
GET

GET /api/v1/users/self/enrollments

Path parameters: None

Query parameters: type[], role[], role_id[], state[], include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "my_enrollments"
}
sectionsVisible sections of a course.
GET

GET /api/v1/courses/{course_id}/sections

Path parameters: course_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "sections",
  "path": {
    "course_id": "101"
  }
}
sectionVisible section detail.
GET

GET /api/v1/sections/{section_id}

Path parameters: section_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "section",
  "path": {
    "section_id": "1"
  }
}
my_groupsOwn group memberships.
GET

GET /api/v1/users/self/groups

Path parameters: None

Query parameters: context_type, include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "my_groups"
}
course_groupsVisible course groups.
GET

GET /api/v1/courses/{course_id}/groups

Path parameters: course_id

Query parameters: only_own_groups, include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "course_groups",
  "path": {
    "course_id": "101"
  }
}
groupGroup detail.
GET

GET /api/v1/groups/{group_id}

Path parameters: group_id

Query parameters: include[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group",
  "path": {
    "group_id": "1"
  }
}
group_usersVisible group roster.
GET

GET /api/v1/groups/{group_id}/users

Path parameters: group_id

Query parameters: search_term, include[], exclude_inactive

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group_users",
  "path": {
    "group_id": "1"
  }
}
group_membershipsVisible group memberships.
GET

GET /api/v1/groups/{group_id}/memberships

Path parameters: group_id

Query parameters: filter_states[]

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "group_memberships",
  "path": {
    "group_id": "1"
  }
}

Messages 3

conversationsOwn inbox list, including archived via scope.
GET

GET /api/v1/conversations

Path parameters: None

Query parameters: scope, filter[], filter_mode, interleave_submissions

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "conversations"
}
conversationConversation body; always disables automatic marking as read.
GET

GET /api/v1/conversations/{conversation_id}

Path parameters: conversation_id

Query parameters: scope, filter[], filter_mode, auto_mark_as_read

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "conversation",
  "path": {
    "conversation_id": "1"
  }
}
unread_countOwn unread conversation count.
GET

GET /api/v1/conversations/unread_count

Path parameters: None

Query parameters: No operation-specific parameters

Common pagination: page, per_page, bookmark, cursor. Permissions and token scopes still apply. Canvas endpoint documentation

{
  "operation": "unread_count"
}