Canvas · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canvas LMS REST User Observees API

9 actions 9 updates phrasing extends openapi/canvas-user-observees-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/users/{user_id}/observees'].get
$.paths['/v1/users/{user_id}/observees'].post
$.paths['/v1/users/{user_id}/observers'].get
$.paths['/v1/users/{user_id}/observees/{observee_id}'].get
$.paths['/v1/users/{user_id}/observees/{observee_id}'].put
$.paths['/v1/users/{user_id}/observees/{observee_id}'].delete
$.paths['/v1/users/{user_id}/observers/{observer_id}'].get
$.paths['/v1/users/{user_id}/observer_pairing_codes'].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 User Observees API
  version: 1.0.0
extends: openapi/canvas-user-observees-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/users/{user_id}/observees'].get
  update:
    x-apievangelist-phrasing:
      intent: List the students a user observes
      effect: read
      questions:
      - Which students is a parent account linked to observe in Canvas?
      - Does the observees list include one-off observer enrollments in a single course?
      instructions:
      - text: List the observees linked to user {user_id}.
        slots:
          user_id: path.user_id
      - text: Show who observer {user_id} is watching, including {include}.
        slots:
          user_id: path.user_id
          include: query.include
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/observees'].post
  update:
    x-apievangelist-phrasing:
      intent: Link an observee using their credentials or pairing code
      effect: write
      questions:
      - How does a parent link to their child's account with a pairing code?
      - Can I add an observee by entering the student's login and password?
      instructions:
      - text: Link observer {user_id} to a student using pairing code {pairing_code}.
        slots:
          user_id: path.user_id
          pairing_code: requestBody.pairing_code
      - text: Add an observee to user {user_id} with login {unique_id} and password {password}.
        slots:
          user_id: path.user_id
          unique_id: requestBody.observee[unique_id]
          password: requestBody.observee[password]
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/observers'].get
  update:
    x-apievangelist-phrasing:
      intent: List the observers linked to a user
      effect: read
      questions:
      - Which parents or guardians are observing a student?
      - Can a student see who is linked as their observer?
      instructions:
      - text: List the observers linked to user {user_id}.
        slots:
          user_id: path.user_id
      - text: Show everyone observing student {user_id}, including {include}.
        slots:
          user_id: path.user_id
          include: query.include
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/observees/{observee_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Show one observed user
      effect: read
      questions:
      - How do I get details on a single student I observe?
      - Can an observer view one specific observee's profile?
      instructions:
      - text: Show observee {observee_id} of user {user_id}.
        slots:
          observee_id: path.observee_id
          user_id: path.user_id
      - text: Get details for the student {observee_id} that {user_id} observes.
        slots:
          observee_id: path.observee_id
          user_id: path.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/observees/{observee_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Register a user as an observee by id
      effect: write
      questions:
      - As an admin, how do I link an observer to a student by user id without credentials?
      - Can I scope a new observer link to one root account?
      instructions:
      - text: Make user {user_id} an observer of user {observee_id}.
        slots:
          user_id: path.user_id
          observee_id: path.observee_id
      - text: Link observer {user_id} to student {observee_id} in root account {root_account_id}.
        slots:
          user_id: path.user_id
          observee_id: path.observee_id
          root_account_id: requestBody.root_account_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/observees/{observee_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Unlink an observee from an observer
      effect: destructive
      questions:
      - How do I stop a parent from observing a student?
      - Can I remove an observer link only for one root account?
      instructions:
      - text: Remove observee {observee_id} from observer {user_id}.
        slots:
          observee_id: path.observee_id
          user_id: path.user_id
      - text: Unlink {user_id} from observing {observee_id} in root account {root_account_id}.
        slots:
          user_id: path.user_id
          observee_id: path.observee_id
          root_account_id: query.root_account_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/observers/{observer_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Show one observer of a user
      effect: read
      questions:
      - How do I see details about a specific parent observing my account?
      - Can a student look up one of their observers by id?
      instructions:
      - text: Show observer {observer_id} of user {user_id}.
        slots:
          observer_id: path.observer_id
          user_id: path.user_id
      - text: Get details on {observer_id}, who observes student {user_id}.
        slots:
          observer_id: path.observer_id
          user_id: path.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/users/{user_id}/observer_pairing_codes'].post
  update:
    x-apievangelist-phrasing:
      intent: Generate an observer pairing code for a student
      effect: write
      questions:
      - How does a student generate a code so a parent can link to them?
      - Can I create a pairing code for parent self-registration?
      instructions:
      - text: Create an observer pairing code for student {user_id}.
        slots:
          user_id: path.user_id
      - text: Generate a parent pairing code for user {user_id}.
        slots:
          user_id: path.user_id
      method: generated
      generated: '2026-10-01'