Canvas · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Canvas LMS REST Rubrics API
21 actions
21 updates
phrasing
extends
openapi/canvas-rubrics-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.
What the actions change
x-apievangelist-phrasing
Targets 21 · first 16 shown; the file carries all of them
$.info
$.paths['/v1/courses/{course_id}/rubrics'].get
$.paths['/v1/courses/{course_id}/rubrics'].post
$.paths['/v1/courses/{course_id}/rubrics/{id}'].get
$.paths['/v1/courses/{course_id}/rubrics/{id}'].put
$.paths['/v1/courses/{course_id}/rubrics/{id}'].delete
$.paths['/v1/accounts/{account_id}/rubrics'].get
$.paths['/v1/accounts/{account_id}/rubrics/{id}'].get
$.paths['/v1/courses/{course_id}/rubrics/{id}/used_locations'].get
$.paths['/v1/accounts/{account_id}/rubrics/{id}/used_locations'].get
$.paths['/v1/courses/{course_id}/rubrics/upload'].post
$.paths['/v1/accounts/{account_id}/rubrics/upload'].post
$.paths['/v1/rubrics/upload_template'].get
$.paths['/v1/courses/{course_id}/rubrics/upload/{id}'].get
$.paths['/v1/accounts/{account_id}/rubrics/upload/{id}'].get
$.paths['/v1/courses/{course_id}/rubric_associations/{rubric_association_id}/rubric_assessments'].post
OpenAPI Overlay
# 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 Rubrics API
version: 1.0.0
extends: openapi/canvas-rubrics-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: 20
- target: $.paths['/v1/courses/{course_id}/rubrics'].get
update:
x-apievangelist-phrasing:
intent: List a course's active rubrics
effect: read
questions:
- What rubrics are active in my Canvas course?
- Can I see every grading rubric defined at the course level?
instructions:
- text: List the active rubrics in course {course_id}.
slots:
course_id: path.course_id
- text: Show all grading rubrics available in course {course_id}.
slots:
course_id: path.course_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubrics'].post
update:
x-apievangelist-phrasing:
intent: Create a rubric in a course
effect: write
questions:
- How do I build a new grading rubric with criteria in a course?
- Can I attach a new rubric to an assignment and use it for grading when I create it?
- Can a rubric allow free-form comments instead of fixed ratings?
instructions:
- text: Create a rubric titled {title} in course {course_id}.
slots:
title: requestBody.rubric[title]
course_id: path.course_id
- text: Create a new rubric {title} in course {course_id} and associate it with assignment {association_id} for grading.
slots:
title: requestBody.rubric[title]
course_id: path.course_id
association_id: requestBody.rubric_association[association_id]
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubrics/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a rubric from a course
effect: read
questions:
- How can I view one rubric's criteria and ratings in a course?
- Can I include the assessments made with a course rubric when I fetch it?
instructions:
- text: Get rubric {id} in course {course_id}.
slots:
id: path.id
course_id: path.course_id
- text: Show course {course_id} rubric {id} with its {include} included.
slots:
course_id: path.course_id
id: path.id
include: query.include
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubrics/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update a course rubric
effect: write
questions:
- How do I rename a rubric or change its criteria in a course?
- Can I edit a rubric's criteria without recalculating the assignment's points possible?
instructions:
- text: Rename rubric {id} in course {course_id} to {title}.
slots:
id: path.id
course_id: path.course_id
title: requestBody.rubric[title]
- text: Update the criteria of course {course_id} rubric {id}.
slots:
course_id: path.course_id
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubrics/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a rubric and its associations
effect: destructive
questions:
- What happens to assignments using a rubric when I delete it?
- Can I permanently remove a rubric from a course?
instructions:
- text: Delete rubric {id} from course {course_id}.
slots:
id: path.id
course_id: path.course_id
- text: Remove course {course_id} rubric {id} along with all of its associations.
slots:
course_id: path.course_id
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/rubrics'].get
update:
x-apievangelist-phrasing:
intent: List an account's active rubrics
effect: read
questions:
- Which rubrics are shared at the account level for reuse across courses?
- Can an admin list every active rubric in an account?
instructions:
- text: List the active rubrics in account {account_id}.
slots:
account_id: path.account_id
- text: Show the account-level rubric library for account {account_id}.
slots:
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/rubrics/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a rubric from an account
effect: read
questions:
- How do I view one account-level rubric's details?
- Can I fetch an account rubric with its associated assessments?
instructions:
- text: Get rubric {id} from account {account_id}.
slots:
id: path.id
account_id: path.account_id
- text: Show account {account_id} rubric {id} in {style} style.
slots:
account_id: path.account_id
id: path.id
style: query.style
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubrics/{id}/used_locations'].get
update:
x-apievangelist-phrasing:
intent: See where a course rubric is used
effect: read
questions:
- Which assignments are using a particular rubric from my course?
- Before editing a course rubric, can I see every place it's used?
instructions:
- text: List the courses and assignments using rubric {id} from course {course_id}.
slots:
id: path.id
course_id: path.course_id
- text: Show where course {course_id} rubric {id} is currently in use.
slots:
course_id: path.course_id
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/rubrics/{id}/used_locations'].get
update:
x-apievangelist-phrasing:
intent: See where an account rubric is used
effect: read
questions:
- Which courses and assignments rely on an account-level rubric?
- Can an admin find every course using a shared account rubric?
instructions:
- text: List the courses and assignments using account {account_id} rubric {id}.
slots:
account_id: path.account_id
id: path.id
- text: Find every place rubric {id} from account {account_id} has been applied.
slots:
id: path.id
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubrics/upload'].post
update:
x-apievangelist-phrasing:
intent: Import rubrics into a course from a CSV
effect: write
questions:
- Can I import rubrics into a course from a CSV spreadsheet?
- How do I bulk load rubrics into one course from a file?
instructions:
- text: Upload a rubric CSV file to course {course_id}.
slots:
course_id: path.course_id
- text: Import rubrics from a CSV into course {course_id}.
slots:
course_id: path.course_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/rubrics/upload'].post
update:
x-apievangelist-phrasing:
intent: Import rubrics into an account from a CSV
effect: write
questions:
- Can an admin import account-level rubrics from a CSV?
- How do I load a spreadsheet of rubrics into an account's rubric library?
instructions:
- text: Upload a rubric CSV file to account {account_id}.
slots:
account_id: path.account_id
- text: Import CSV rubrics into the account {account_id} library.
slots:
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/rubrics/upload_template'].get
update:
x-apievangelist-phrasing:
intent: Download the rubric import CSV template
effect: read
questions:
- What format does a rubric CSV import need to be in?
- Where can I download a blank template for importing rubrics?
instructions:
- text: Download the rubric import CSV template.
- text: Get me the blank spreadsheet template for importing rubrics.
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubrics/upload/{id}'].get
update:
x-apievangelist-phrasing:
intent: Check a course rubric CSV import's status
effect: read
questions:
- Did my rubric CSV import into the course finish?
- Can I check the latest rubric import for a course?
instructions:
- text: Get the status of rubric import {id} in course {course_id}.
slots:
id: path.id
course_id: path.course_id
- text: Check whether course {course_id} rubric upload {id} succeeded.
slots:
course_id: path.course_id
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/rubrics/upload/{id}'].get
update:
x-apievangelist-phrasing:
intent: Check an account rubric CSV import's status
effect: read
questions:
- Has the rubric spreadsheet I imported into the account finished processing?
- Can an admin see the most recent account rubric import?
instructions:
- text: Get the status of rubric import {id} in account {account_id}.
slots:
id: path.id
account_id: path.account_id
- text: Check progress on account {account_id} rubric upload {id}.
slots:
account_id: path.account_id
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubric_associations/{rubric_association_id}/rubric_assessments'].post
update:
x-apievangelist-phrasing:
intent: Assess a student's work with a rubric
effect: write
questions:
- How do I score a student's submission against a rubric?
- Can I save a provisional rubric assessment for moderated grading?
instructions:
- text: Create a rubric assessment under association {rubric_association_id} in course {course_id}.
slots:
rubric_association_id: path.rubric_association_id
course_id: path.course_id
- text: Submit a provisional rubric score for association {rubric_association_id} in course {course_id}, provisional {provisional}.
slots:
rubric_association_id: path.rubric_association_id
course_id: path.course_id
provisional: requestBody.provisional
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubric_associations/{rubric_association_id}/rubric_assessments/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update an existing rubric assessment
effect: write
questions:
- Can I change the ratings on a rubric assessment I already made?
- How do I mark an existing provisional rubric assessment as final?
instructions:
- text: Update rubric assessment {id} for association {rubric_association_id} in course {course_id}.
slots:
id: path.id
rubric_association_id: path.rubric_association_id
course_id: path.course_id
- text: Set rubric assessment {id} under association {rubric_association_id} in course {course_id} as final {final}.
slots:
id: path.id
rubric_association_id: path.rubric_association_id
course_id: path.course_id
final: requestBody.final
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubric_associations/{rubric_association_id}/rubric_assessments/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a rubric assessment
effect: destructive
questions:
- Can I remove a rubric assessment I made by mistake?
- What deletes a single rubric scoring of a student's work?
instructions:
- text: Delete rubric assessment {id} under association {rubric_association_id} in course {course_id}.
slots:
id: path.id
rubric_association_id: path.rubric_association_id
course_id: path.course_id
- text: Remove the rubric scoring {id} from association {rubric_association_id} in course {course_id}.
slots:
id: path.id
rubric_association_id: path.rubric_association_id
course_id: path.course_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubric_associations'].post
update:
x-apievangelist-phrasing:
intent: Attach an existing rubric to an assignment
effect: write
questions:
- How do I attach an existing rubric to an assignment in my course?
- Can I hide the total score when linking a rubric to an assignment?
instructions:
- text: Associate rubric {rubric_id} with assignment {association_id} in course {course_id}.
slots:
rubric_id: requestBody.rubric_association[rubric_id]
association_id: requestBody.rubric_association[association_id]
course_id: path.course_id
- text: Link rubric {rubric_id} in course {course_id} to {association_type} {association_id} and use it for grading.
slots:
rubric_id: requestBody.rubric_association[rubric_id]
course_id: path.course_id
association_type: requestBody.rubric_association[association_type]
association_id: requestBody.rubric_association[association_id]
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubric_associations/{id}'].put
update:
x-apievangelist-phrasing:
intent: Change how a rubric is attached to an assignment
effect: write
questions:
- Can I stop using an attached rubric for grading without removing it?
- How do I change the purpose of an existing rubric association?
instructions:
- text: Update rubric association {id} in course {course_id}.
slots:
id: path.id
course_id: path.course_id
- text: Set use for grading to {use_for_grading} on rubric association {id} in course {course_id}.
slots:
use_for_grading: requestBody.rubric_association[use_for_grading]
id: path.id
course_id: path.course_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/rubric_associations/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Detach a rubric from an assignment
effect: destructive
questions:
- How do I unlink a rubric from an assignment without deleting the rubric itself?
- Can I remove a single rubric association in a course?
instructions:
- text: Delete rubric association {id} in course {course_id}.
slots:
id: path.id
course_id: path.course_id
- text: Detach the rubric linked by association {id} in course {course_id}.
slots:
id: path.id
course_id: path.course_id
method: generated
generated: '2026-10-01'