Canvas · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Canvas LMS REST Grading Periods API
9 actions
9 updates
phrasing
extends
openapi/canvas-grading-periods-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 9
$.info
$.paths['/v1/accounts/{account_id}/grading_periods'].get
$.paths['/v1/courses/{course_id}/grading_periods'].get
$.paths['/v1/courses/{course_id}/grading_periods/{id}'].get
$.paths['/v1/courses/{course_id}/grading_periods/{id}'].put
$.paths['/v1/courses/{course_id}/grading_periods/{id}'].delete
$.paths['/v1/accounts/{account_id}/grading_periods/{id}'].delete
$.paths['/v1/courses/{course_id}/grading_periods/batch_update'].patch
$.paths['/v1/grading_period_sets/{set_id}/grading_periods/batch_update'].patch
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 Grading Periods API
version: 1.0.0
extends: openapi/canvas-grading-periods-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/accounts/{account_id}/grading_periods'].get
update:
x-apievangelist-phrasing:
intent: List an account's grading periods
effect: read
questions:
- What grading periods are defined at the account level?
- Which terms or quarters has my institution set up as grading periods?
instructions:
- text: List the grading periods for account {account_id}.
slots:
account_id: path.account_id
- text: Show account {account_id}'s marking periods.
slots:
account_id: path.account_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/grading_periods'].get
update:
x-apievangelist-phrasing:
intent: List a course's grading periods
effect: read
questions:
- What grading periods apply to my course?
- Which quarters is my course's grade broken into?
instructions:
- text: List the grading periods for course {course_id}.
slots:
course_id: path.course_id
- text: Show course {course_id}'s marking periods.
slots:
course_id: path.course_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/grading_periods/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one grading period in a course
effect: read
questions:
- When does a specific grading period start and end?
- Can I look up one of my course's grading periods by ID?
instructions:
- text: Get grading period {id} in course {course_id}.
slots:
id: path.id
course_id: path.course_id
- text: Show the dates for course {course_id} grading period {id}.
slots:
course_id: path.course_id
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/grading_periods/{id}'].put
update:
x-apievangelist-phrasing:
intent: Change one grading period's dates
effect: write
questions:
- How do I move the end date of a single grading period?
- Can I change the weight of one grading period in my course?
instructions:
- text: Set course {course_id} grading period {id} to run from {start_date} to {end_date}.
slots:
course_id: path.course_id
id: path.id
start_date: requestBody.grading_periods[start_date]
end_date: requestBody.grading_periods[end_date]
- text: 'Update grading period {id} in course {course_id}: start {start_date}, end {end_date}, weight {weight}.'
slots:
id: path.id
course_id: path.course_id
start_date: requestBody.grading_periods[start_date]
end_date: requestBody.grading_periods[end_date]
weight: requestBody.grading_periods[weight]
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/grading_periods/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a course grading period
effect: destructive
questions:
- How do I remove a grading period from my course?
- Can I delete a course-level grading period I no longer need?
instructions:
- text: Delete grading period {id} from course {course_id}.
slots:
id: path.id
course_id: path.course_id
- text: Remove course {course_id}'s grading period {id}.
slots:
course_id: path.course_id
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/accounts/{account_id}/grading_periods/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an account grading period
effect: destructive
questions:
- How do I delete a grading period defined for the whole account?
- Can an admin remove an account-level grading period?
instructions:
- text: Delete grading period {id} from account {account_id}.
slots:
id: path.id
account_id: path.account_id
- text: Remove account {account_id}'s grading period {id}.
slots:
account_id: path.account_id
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/grading_periods/batch_update'].patch
update:
x-apievangelist-phrasing:
intent: Update several grading periods in a course
effect: write
questions:
- How do I set up all my course's grading periods in one request?
- Can I update titles, dates and close dates for multiple course grading periods at once?
instructions:
- text: Batch update grading periods in course {course_id} for set {set_id}.
slots:
course_id: path.course_id
set_id: requestBody.set_id
- text: In course {course_id}, add period {title} from {start_date} to {end_date} closing {close_date} in set {set_id}.
slots:
course_id: path.course_id
title: requestBody.grading_periods[title]
start_date: requestBody.grading_periods[start_date]
end_date: requestBody.grading_periods[end_date]
close_date: requestBody.grading_periods[close_date]
set_id: requestBody.set_id
method: generated
generated: '2026-10-01'
- target: $.paths['/v1/grading_period_sets/{set_id}/grading_periods/batch_update'].patch
update:
x-apievangelist-phrasing:
intent: Update several grading periods in a set
effect: write
questions:
- How do I edit every period in a grading period set together?
- Can I bulk-change dates on a term's grading period set?
instructions:
- text: Batch update the grading periods in set {set_id}.
slots:
set_id: path.set_id
- text: In grading period set {set_id}, add {title} from {start_date} to {end_date} closing {close_date}.
slots:
set_id: path.set_id
title: requestBody.grading_periods[title]
start_date: requestBody.grading_periods[start_date]
end_date: requestBody.grading_periods[end_date]
close_date: requestBody.grading_periods[close_date]
method: generated
generated: '2026-10-01'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/canvas-grading-periods-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.