Canvas · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canvas LMS REST Moderated Grading API

9 actions 9 updates phrasing extends openapi/canvas-moderated-grading-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 9

$.info
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/moderated_students'].get
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/moderated_students'].post
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/provisional_grades/bulk_select'].put
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/provisional_grades/status'].get
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/provisional_grades/{provisional_grade_id}/select'].put
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/provisional_grades/publish'].post
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/provisional_grades/publish_async'].post
$.paths['/v1/courses/{course_id}/assignments/{assignment_id}/anonymous_provisional_grades/status'].get

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 Moderated Grading API
  version: 1.0.0
extends: openapi/canvas-moderated-grading-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: 8
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/moderated_students'].get
  update:
    x-apievangelist-phrasing:
      intent: List students picked for moderation
      effect: read
      questions:
      - Which students' work has been selected for moderated grading on an assignment?
      - Can I see the moderation set for a moderated assignment?
      instructions:
      - text: List students selected for moderation on assignment {assignment_id} in course {course_id}.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Show the moderation set for assignment {assignment_id} in course {course_id}.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/moderated_students'].post
  update:
    x-apievangelist-phrasing:
      intent: Add students to the moderation set
      effect: write
      questions:
      - How do I choose which students get a second grader on a moderated assignment?
      - Can I add several students to moderation at once?
      instructions:
      - text: Select students {student_ids} for moderation on assignment {assignment_id} in course {course_id}.
        slots:
          student_ids: requestBody.student_ids
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Add {student_ids} to the moderation set of assignment {assignment_id} in course {course_id}.
        slots:
          student_ids: requestBody.student_ids
          assignment_id: path.assignment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/provisional_grades/bulk_select'].put
  update:
    x-apievangelist-phrasing:
      intent: Choose many provisional grades at once
      effect: write
      questions:
      - As final grader, can I pick the provisional grades for many students in one go?
      - Who is allowed to bulk select provisional grades?
      instructions:
      - text: Bulk select provisional grades on assignment {assignment_id} in course {course_id}.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Choose the winning provisional grades for several students on assignment {assignment_id} in course {course_id}.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/provisional_grades/status'].get
  update:
    x-apievangelist-phrasing:
      intent: Check if a student needs provisional grades
      effect: read
      questions:
      - Does a student's submission still need provisional grades?
      - How can a grader tell whether a named student needs another provisional grade?
      instructions:
      - text: Check provisional grade status for student {student_id} on assignment {assignment_id} in course {course_id}.
        slots:
          student_id: query.student_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Does student {student_id} still need provisional grading on assignment {assignment_id} in course {course_id}.
        slots:
          student_id: query.student_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/provisional_grades/{provisional_grade_id}/select'].put
  update:
    x-apievangelist-phrasing:
      intent: Select a provisional grade for a submission
      effect: write
      questions:
      - How does the final grader choose which provisional grade a student receives?
      - Can an admin pick one grader's score over another for a submission?
      instructions:
      - text: Select provisional grade {provisional_grade_id} on assignment {assignment_id} in course {course_id}.
        slots:
          provisional_grade_id: path.provisional_grade_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Use provisional grade {provisional_grade_id} as the student's grade for assignment {assignment_id} in course {course_id}.
        slots:
          provisional_grade_id: path.provisional_grade_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/provisional_grades/publish'].post
  update:
    x-apievangelist-phrasing:
      intent: Publish selected provisional grades
      effect: write
      questions:
      - How do I release moderated grades to students once they are chosen?
      - Can provisional grades be published again after they've been published once?
      instructions:
      - text: Publish the provisional grades for assignment {assignment_id} in course {course_id} now.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Release the selected moderated grades on assignment {assignment_id} in course {course_id} immediately.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/provisional_grades/publish_async'].post
  update:
    x-apievangelist-phrasing:
      intent: Publish provisional grades in the background
      effect: write
      questions:
      - For a large class, can moderated grades be published as a background job?
      - Is there a non-blocking way to publish provisional grades?
      instructions:
      - text: Publish provisional grades for assignment {assignment_id} in course {course_id} as a background job.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Queue an asynchronous grade publish for moderated assignment {assignment_id} in course {course_id}.
        slots:
          assignment_id: path.assignment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/assignments/{assignment_id}/anonymous_provisional_grades/status'].get
  update:
    x-apievangelist-phrasing:
      intent: Check provisional status for an anonymous student
      effect: read
      questions:
      - With anonymous grading on, can I check if a submission needs provisional grades?
      - How do I check grading status using a student's anonymous id?
      instructions:
      - text: Look up anonymized grading needs of {anonymous_id} on assignment {assignment_id} in course {course_id}.
        slots:
          anonymous_id: query.anonymous_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      - text: Does anonymous submission {anonymous_id} need more grading on assignment {assignment_id} in course {course_id}.
        slots:
          anonymous_id: query.anonymous_id
          assignment_id: path.assignment_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'