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.
View Overlay File View on GitHub Overlay Specification

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

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 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'