Canvas · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canvas LMS REST Submissions API

47 actions 47 updates phrasing extends openapi/canvas-submissions-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.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 47 · first 16 shown; the file carries all of them

$.info
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions'].get
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions'].post
$.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions'].get
$.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions'].post
$.paths['/v1/courses/{course_id}/students/submissions'].get
$.paths['/v1/sections/{section_id}/students/submissions'].get
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}'].get
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}'].put
$.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}'].get
$.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}'].put
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/anonymous_submissions/{anonymous_id}'].get
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/anonymous_submissions/{anonymous_id}'].put
$.paths['/v1/sections/{section_id}/assignments/{assignment_id}/anonymous_submissions/{anonymous_id}'].get
$.paths['/v1/sections/{section_id}/assignments/{assignment_id}/anonymous_submissions/{anonymous_id}'].put
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/files'].post

OpenAPI Overlay

Raw ↑
# 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 Submissions API
  version: 1.0.0
extends: openapi/canvas-submissions-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: 46
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions'].get
  update:
    x-apievangelist-phrasing:
      intent: List all submissions for a course assignment
      effect: read
      questions:
      - Which students have turned in a given assignment in my Canvas course?
      - Can I get a course assignment's submissions grouped by student?
      - Where do I see every submission made to one assignment across the whole course?
      instructions:
      - text: List all submissions for assignment {assignment_id} in course {course_id}.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Show course {course_id} submissions on assignment {assignment_id} grouped by student.
        slots:
          course_id: path.course_id
          assignment_id: path.assignment_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions'].post
  update:
    x-apievangelist-phrasing:
      intent: Submit a course assignment as a student
      effect: write
      questions:
      - How do I turn in homework for a course assignment through the API?
      - Can a student submit a website URL or a text entry as their course assignment?
      - What happens if my course enrollment is concluded when I try to submit?
      instructions:
      - text: Turn in assignment {assignment_id} in course {course_id} as a {submission_type} submission.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
          submission_type: requestBody.submission[submission_type]
      - text: Submit the link {url} for assignment {assignment_id} in course {course_id}.
        slots:
          url: requestBody.submission[url]
          assignment_id: path.assignment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions'].get
  update:
    x-apievangelist-phrasing:
      intent: List a section's submissions for an assignment
      effect: read
      questions:
      - Which students in one section have turned in a particular assignment?
      - Can I pull assignment submissions for just a single section instead of the whole course?
      instructions:
      - text: List submissions for assignment {assignment_id} from section {section_id} only.
        slots:
          assignment_id: path.assignment_id
          section_id: path.section_id
      - text: Show what section {section_id} handed in for assignment {assignment_id}, grouped per student.
        slots:
          section_id: path.section_id
          assignment_id: path.assignment_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions'].post
  update:
    x-apievangelist-phrasing:
      intent: Submit an assignment through a course section
      effect: write
      questions:
      - Can a student submit an assignment through their section rather than the course?
      - Is it possible to hand in an online text entry to an assignment using my section id?
      instructions:
      - text: Submit assignment {assignment_id} via section {section_id} as a {submission_type} entry.
        slots:
          assignment_id: path.assignment_id
          section_id: path.section_id
          submission_type: requestBody.submission[submission_type]
      - text: Hand in the text {body} for assignment {assignment_id} through section {section_id}.
        slots:
          body: requestBody.submission[body]
          assignment_id: path.assignment_id
          section_id: path.section_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/students/submissions'].get
  update:
    x-apievangelist-phrasing:
      intent: List course submissions across students and assignments
      effect: read
      questions:
      - Can I fetch submissions for several students and several assignments at once in a course?
      - What submissions in my course were graded since last Monday?
      - Is there a way to filter a course's submissions by workflow state, like pending review?
      instructions:
      - text: List submissions in course {course_id} for students {student_ids} on assignments {assignment_ids}.
        slots:
          course_id: path.course_id
          student_ids: query.student_ids
          assignment_ids: query.assignment_ids
      - text: Get every submission in course {course_id} graded since {graded_since}.
        slots:
          course_id: path.course_id
          graded_since: query.graded_since
      - text: Show course {course_id} submissions in the {workflow_state} state.
        slots:
          course_id: path.course_id
          workflow_state: query.workflow_state
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/students/submissions'].get
  update:
    x-apievangelist-phrasing:
      intent: List section submissions across students and assignments
      effect: read
      questions:
      - Can I pull submissions for many students and assignments within just one section?
      - Which submissions in a section were turned in after a given date?
      - Can I limit a section's multi-assignment submission list to one grading period?
      instructions:
      - text: List section {section_id} submissions for students {student_ids} across assignments {assignment_ids}.
        slots:
          section_id: path.section_id
          student_ids: query.student_ids
          assignment_ids: query.assignment_ids
      - text: Show submissions in section {section_id} for grading period {grading_period_id}.
        slots:
          section_id: path.section_id
          grading_period_id: query.grading_period_id
      - text: Get section {section_id} work submitted since {submitted_since}.
        slots:
          section_id: path.section_id
          submitted_since: query.submitted_since
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one student's submission for a course assignment
      effect: read
      questions:
      - How can I see a specific student's submission on a course assignment?
      - Can I include submission comments and the rubric assessment when fetching one student's course submission?
      instructions:
      - text: Get user {user_id}'s submission for assignment {assignment_id} in course {course_id}.
        slots:
          user_id: path.user_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Open student {user_id}'s course {course_id} submission on assignment {assignment_id} with its comments.
        slots:
          user_id: path.user_id
          course_id: path.course_id
          assignment_id: path.assignment_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Grade or comment on a student's course submission
      effect: write
      questions:
      - How do I post a grade for one student's submission in a course?
      - Can I excuse a student from a course assignment instead of grading it?
      - Can I attach a sticker or a peer review flag when grading a course submission?
      instructions:
      - text: Give student {user_id} a grade of {posted_grade} on assignment {assignment_id} in course {course_id}.
        slots:
          user_id: path.user_id
          posted_grade: requestBody.submission[posted_grade]
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Comment {text_comment} on user {user_id}'s submission for assignment {assignment_id} in course {course_id}.
        slots:
          text_comment: requestBody.comment[text_comment]
          user_id: path.user_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Excuse student {user_id} from course {course_id} assignment {assignment_id}.
        slots:
          user_id: path.user_id
          course_id: path.course_id
          assignment_id: path.assignment_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one student's submission through a section
      effect: read
      questions:
      - Can I look up one student's assignment submission through their section?
      - Is there a section-scoped way to fetch a single student's submission with its rubric assessment?
      instructions:
      - text: Get the section {section_id} submission by user {user_id} on assignment {assignment_id}.
        slots:
          section_id: path.section_id
          user_id: path.user_id
          assignment_id: path.assignment_id
      - text: Show student {user_id}'s work for assignment {assignment_id} as seen in section {section_id}.
        slots:
          user_id: path.user_id
          assignment_id: path.assignment_id
          section_id: path.section_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Grade or comment on a submission through a section
      effect: write
      questions:
      - How do I grade a student's work using their section id?
      - Can a section-limited instructor leave a comment on a student's submission?
      - Can I set a late policy status on a submission while grading through a section?
      instructions:
      - text: Grade user {user_id} {posted_grade} for assignment {assignment_id} via section {section_id}.
        slots:
          user_id: path.user_id
          posted_grade: requestBody.submission[posted_grade]
          assignment_id: path.assignment_id
          section_id: path.section_id
      - text: Leave the comment {text_comment} on student {user_id}'s assignment {assignment_id} work in section {section_id}.
        slots:
          text_comment: requestBody.comment[text_comment]
          user_id: path.user_id
          assignment_id: path.assignment_id
          section_id: path.section_id
      - text: Set the late policy status of user {user_id}'s assignment {assignment_id} submission in section {section_id} to {late_policy_status}.
        slots:
          user_id: path.user_id
          assignment_id: path.assignment_id
          section_id: path.section_id
          late_policy_status: requestBody.submission[late_policy_status]
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/anonymous_submissions/{anonymous_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a course submission by its anonymous id
      effect: read
      questions:
      - How do I fetch a submission by its anonymous id when grading anonymously in a course?
      - Can I view an anonymized course submission without knowing which student made it?
      instructions:
      - text: Get anonymous submission {anonymous_id} for assignment {assignment_id} in course {course_id}.
        slots:
          anonymous_id: path.anonymous_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Show the anonymously graded course {course_id} submission {anonymous_id} on assignment {assignment_id}.
        slots:
          course_id: path.course_id
          anonymous_id: path.anonymous_id
          assignment_id: path.assignment_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/anonymous_submissions/{anonymous_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Grade a course submission by its anonymous id
      effect: write
      questions:
      - How do I enter a grade for a course submission using only its anonymous id?
      - Can I comment on an anonymous course submission without revealing the student?
      instructions:
      - text: Grade anonymous submission {anonymous_id} on course {course_id} assignment {assignment_id} as {posted_grade}.
        slots:
          anonymous_id: path.anonymous_id
          course_id: path.course_id
          assignment_id: path.assignment_id
          posted_grade: requestBody.submission[posted_grade]
      - text: Add comment {text_comment} to anonymous submission {anonymous_id} for assignment {assignment_id} in course {course_id}.
        slots:
          text_comment: requestBody.comment[text_comment]
          anonymous_id: path.anonymous_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/assignments/{assignment_id}/anonymous_submissions/{anonymous_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a section submission by its anonymous id
      effect: read
      questions:
      - How can a section grader retrieve a submission by anonymous id?
      - Can I open an anonymized submission scoped to one section during anonymous grading?
      instructions:
      - text: Get section {section_id} anonymous submission {anonymous_id} for assignment {assignment_id}.
        slots:
          section_id: path.section_id
          anonymous_id: path.anonymous_id
          assignment_id: path.assignment_id
      - text: Look up anonymized work {anonymous_id} on assignment {assignment_id} through section {section_id}.
        slots:
          anonymous_id: path.anonymous_id
          assignment_id: path.assignment_id
          section_id: path.section_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/assignments/{assignment_id}/anonymous_submissions/{anonymous_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Grade a section submission by its anonymous id
      effect: write
      questions:
      - Can I post an anonymous grade through a section using the anonymous id?
      - Is it possible to excuse an anonymously graded submission within a section?
      instructions:
      - text: Grade anonymized work {anonymous_id} on assignment {assignment_id} in section {section_id} as {posted_grade}.
        slots:
          anonymous_id: path.anonymous_id
          assignment_id: path.assignment_id
          section_id: path.section_id
          posted_grade: requestBody.submission[posted_grade]
      - text: Excuse anonymous submission {anonymous_id} for assignment {assignment_id} via section {section_id}.
        slots:
          anonymous_id: path.anonymous_id
          assignment_id: path.assignment_id
          section_id: path.section_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/files'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a file upload for a course submission
      effect: write
      questions:
      - How does a student upload a file to attach to a course assignment submission?
      - What's the first step for uploading a submission file before turning in a course assignment?
      instructions:
      - text: Start a submission file upload for user {user_id} on assignment {assignment_id} in course {course_id}.
        slots:
          user_id: path.user_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Begin uploading an attachment to course {course_id} assignment {assignment_id} for student {user_id}.
        slots:
          course_id: path.course_id
          assignment_id: path.assignment_id
          user_id: path.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/files'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a file upload for a section submission
      effect: write
      questions:
      - Can I begin a submission file upload through a section instead of a course?
      - Where do I initiate attaching a file to an assignment submission using a section id?
      instructions:
      - text: Initiate a submission file upload via section {section_id} for assignment {assignment_id} and user {user_id}.
        slots:
          section_id: path.section_id
          assignment_id: path.assignment_id
          user_id: path.user_id
      - text: Open a file upload for student {user_id}'s section {section_id} submission on assignment {assignment_id}.
        slots:
          user_id: path.user_id
          section_id: path.section_id
          assignment_id: path.assignment_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/gradeable_students'].get
  update:
    x-apievangelist-phrasing:
      intent: List students who can be graded on an assignment
      effect: read
      questions:
      - Which students are gradeable for one assignment?
      - Can I sort the list of students I'm able to grade on an assignment?
      instructions:
      - text: List gradeable students for assignment {assignment_id} in course {course_id}.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Show the students I can grade on assignment {assignment_id} in course {course_id}, sorted by {sort}.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
          sort: query.sort
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/gradeable_students'].get
  update:
    x-apievangelist-phrasing:
      intent: List students eligible for several assignments
      effect: read
      questions:
      - Which students are eligible to submit a whole set of assignments?
      - Will a section-limited instructor only see their own students across multiple assignments?
      instructions:
      - text: List students eligible to submit assignments {assignment_ids} in course {course_id}.
        slots:
          assignment_ids: query.assignment_ids
          course_id: path.course_id
      - text: Show who can hand in any of assignments {assignment_ids} in course {course_id}.
        slots:
          assignment_ids: query.assignment_ids
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/submissions/update_grades'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk grade submissions across a course's assignments
      effect: write
      questions:
      - Can I grade many students across several assignments in a course in one request?
      - Does bulk grading across a whole course run as a background job?
      instructions:
      - text: Bulk update grades and comments for multiple assignments in course {course_id}.
        slots:
          course_id: path.course_id
      - text: Submit a batch of student grades spanning several assignments in course {course_id} as an async job.
        slots:
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions/update_grades'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk grade one course assignment's submissions
      effect: write
      questions:
      - How do I grade every student on one course assignment in a single call?
      - Can I add comments to many students' submissions for one course assignment at once?
      instructions:
      - text: Bulk grade all listed students on assignment {assignment_id} in course {course_id}.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Apply a batch of comments and scores to course {course_id} assignment {assignment_id}.
        slots:
          course_id: path.course_id
          assignment_id: path.assignment_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/submissions/update_grades'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk grade submissions across a section
      effect: write
      questions:
      - Can I bulk grade a whole section's submissions across different assignments?
      - Can a section instructor update many grades for their section in one go?
      instructions:
      - text: Bulk update grades for multiple assignments in section {section_id}.
        slots:
          section_id: path.section_id
      - text: Run a batch grading job across every assignment for section {section_id}.
        slots:
          section_id: path.section_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions/update_grades'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk grade one assignment within a section
      effect: write
      questions:
      - How do I grade a section's students on a single assignment in one batch?
      - Can I bulk excuse a section's students from one assignment?
      instructions:
      - text: Bulk grade section {section_id} students on assignment {assignment_id}.
        slots:
          section_id: path.section_id
          assignment_id: path.assignment_id
      - text: Queue batch grades and comments for assignment {assignment_id} within section {section_id}.
        slots:
          assignment_id: path.assignment_id
          section_id: path.section_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/read'].put
  update:
    x-apievangelist-phrasing:
      intent: Mark a course submission as read
      effect: write
      questions:
      - How do I mark a student's course submission as read?
      - Can I clear the unread badge on one submission in a course?
      instructions:
      - text: Mark user {user_id}'s submission on assignment {assignment_id} in course {course_id} as read.
        slots:
          user_id: path.user_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Flag the course {course_id} assignment {assignment_id} submission from {user_id} as seen.
        slots:
          course_id: path.course_id
          assignment_id: path.assignment_id
          user_id: path.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/read'].delete
  update:
    x-apievangelist-phrasing:
      intent: Mark a course submission as unread
      effect: destructive
      questions:
      - Can I flip a submission in a course back to unread?
      - How do I restore the unread indicator on a course submission I already opened?
      instructions:
      - text: Set the course {course_id} submission from {user_id} on assignment {assignment_id} back to unread.
        slots:
          course_id: path.course_id
          user_id: path.user_id
          assignment_id: path.assignment_id
      - text: Make student {user_id}'s assignment {assignment_id} work in course {course_id} show as unread again.
        slots:
          user_id: path.user_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/read'].put
  update:
    x-apievangelist-phrasing:
      intent: Mark a section submission as read
      effect: write
      questions:
      - Can I mark a submission read using the student's section?
      - Is there a section-scoped call to dismiss the unread marker on a submission?
      instructions:
      - text: Mark section {section_id} submission by {user_id} on assignment {assignment_id} read.
        slots:
          section_id: path.section_id
          user_id: path.user_id
          assignment_id: path.assignment_id
      - text: Record that I've seen student {user_id}'s assignment {assignment_id} work via section {section_id}.
        slots:
          user_id: path.user_id
          assignment_id: path.assignment_id
          section_id: path.section_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/read'].delete
  update:
    x-apievangelist-phrasing:
      intent: Mark a section submission as unread
      effect: destructive
      questions:
      - Can I set a submission back to unread through a section?
      - Is there a section-level way to undo marking a student's submission as read?
      instructions:
      - text: Revert section {section_id} submission from {user_id} on assignment {assignment_id} to unread.
        slots:
          section_id: path.section_id
          user_id: path.user_id
          assignment_id: path.assignment_id
      - text: Put the unread flag back on student {user_id}'s assignment {assignment_id} work in section {section_id}.
        slots:
          user_id: path.user_id
          assignment_id: path.assignment_id
          section_id: path.section_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/submissions/bulk_mark_read'].put
  update:
    x-apievangelist-phrasing:
      intent: Mark many course submissions as read at once
      effect: write
      questions:
      - Can I mark a batch of submissions in a course as read in one call?
      - Is there a bulk way to clear unread status on a list of course submission ids?
      instructions:
      - text: Mark submissions {submission_ids} in course {course_id} as read.
        slots:
          submission_ids: requestBody.submissionIds
          course_id: path.course_id
      - text: 'Bulk mark these course {course_id} submission ids read: {submission_ids}.'
        slots:
          course_id: path.course_id
          submission_ids: requestBody.submissionIds
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/submissions/bulk_mark_read'].put
  update:
    x-apievangelist-phrasing:
      intent: Mark many section submissions as read at once
      effect: write
      questions:
      - Can I mark a list of submissions as read for one section in bulk?
      - Is bulk read-marking available per section rather than per course?
      instructions:
      - text: Mark submissions {submission_ids} in section {section_id} as read.
        slots:
          submission_ids: requestBody.submissionIds
          section_id: path.section_id
      - text: Clear unread status in bulk for section {section_id} submission ids {submission_ids}.
        slots:
          section_id: path.section_id
          submission_ids: requestBody.submissionIds
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/read/{item}'].put
  update:
    x-apievangelist-phrasing:
      intent: Mark a course submission's grade, comment or rubric read
      effect: write
      questions:
      - Can I mark only the grade or only the comments on a course submission as read?
      - What submission items can be marked read individually in a course?
      instructions:
      - text: Mark only the {item} item read on user {user_id}'s assignment {assignment_id} work in course {course_id}.
        slots:
          item: path.item
          user_id: path.user_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Mark just the comment item read on student {user_id}'s course {course_id} assignment {assignment_id} submission.
        slots:
          user_id: path.user_id
          course_id: path.course_id
          assignment_id: path.assignment_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/assignments/{assignment_id}/submissions/{user_id}/read/{item}'].put
  update:
    x-apievangelist-phrasing:
      intent: Mark a section submission's grade, comment or rubric read
      effect: write
      questions:
      - Can I mark just the rubric part of a submission as read through a section?
      - Is per-item read marking (grade, comment, rubric) available via a section?
      instructions:
      - text: Mark item {item} read on section {section_id} submission by {user_id} for assignment {assignment_id}.
        slots:
          item: path.item
          section_id: path.section_id
          user_id: path.user_id
          assignment_id: path.assignment_id
      - text: Mark only the grade as read on student {user_id}'s assignment {assignment_id} work in section {section_id}.
        slots:
          user_id: path.user_id
          assignment_id: path.assignment_id
          section_id: path.section_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/submissions/{user_id}/clear_unread'].put
  update:
    x-apievangelist-phrasing:
      intent: Clear unread status on all of a user's course submissions
      effect: write
      questions:
      - How can a site admin clear every unread submission flag for a user in a course?
      - Is there a way to reset a student's unread status on all their course submissions at once?
      instructions:
      - text: Clear unread status on all of user {user_id}'s submissions in course {course_id}.
        slots:
          user_id: path.user_id
          course_id: path.course_id
      - text: Wipe every unread marker for student {user_id} across course {course_id}.
        slots:
          user_id: path.user_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/sections/{section_id}/submissions/{user_id}/clear_unread'].put
  update:
    x-apievangelist-phrasing:
      intent: Clear unread status on all of a user's section submissions
      effect: write
      questions:
      - Can a site admin clear all unread submission flags for a user within one section?
      - Is there a section-scoped reset of a student's unread submissions?
      instructions:
      - text: Clear unread status on every submission by user {user_id} in section {section_id}.
        slots:
          user_id: path.user_id
          section_id: path.section_id
      - text: Reset all unread submission markers for student {user_id} through section {section_id}.
        slots:
          user_id: path.user_id
          section_id: path.section_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}/rubric_comments/read'].get
  update:
    x-apievangelist-phrasing:
      intent: Check if a student has seen new rubric comments (course)
      effect: read
      questions:
      - Has a student seen the new rubric comments on their course submission yet?
      - Can I check the read state of rubric comments using the course rubric_comments path?
      instructions:
      - text: Check whether user {user_id} has read the rubric comments on assignment {assignment_id} in course {course_id}.
        slots:
          user_id: path.user_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Get the rubric comments read state for student {user_id}, course {course_id}, assignment {assignment_id}.
        slots:
          user_id: path.user_id
          course_id: path.course_id
          assignment_id: path.assignment_id
      method: generated
      generated: '2026-10-01'


# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/overlays/canvas-submissions-api-phrasing-overlay.yaml