Canvas · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canvas LMS REST Ai Conversations API

10 actions 10 updates phrasing extends openapi/canvas-ai-conversations-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 10

$.info
$.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}'].get
$.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}'].delete
$.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations'].get
$.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations'].post
$.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/messages'].post
$.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/evaluation'].get
$.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/evaluation'].post
$.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/messages/{message_id}/feedback'].post
$.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/messages/{message_id}/feedback/{feedback_id}'].delete

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 Ai Conversations API
  version: 1.0.0
extends: openapi/canvas-ai-conversations-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: 9
- target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: View a student's AI conversation
      effect: read
      questions:
      - As a teacher, can I read a specific student's conversation with an AI experience?
      - How do I open one AI conversation by its id?
      instructions:
      - text: Show AI conversation {id} in experience {ai_experience_id} of course {course_id}.
        slots:
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      - text: Open conversation {id} for AI experience {ai_experience_id} in course {course_id}.
        slots:
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: End an AI conversation session
      effect: destructive
      questions:
      - How do I end the current AI conversation session?
      - Can I close out a conversation with an AI experience?
      instructions:
      - text: End AI conversation {id} in experience {ai_experience_id}, course {course_id}.
        slots:
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      - text: Delete conversation {id} from AI experience {ai_experience_id} in course {course_id}.
        slots:
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations'].get
  update:
    x-apievangelist-phrasing:
      intent: Get my active AI conversation
      effect: read
      questions:
      - Do I already have an ongoing conversation with this AI experience?
      - Which AI conversation is currently active for me?
      instructions:
      - text: Get my active conversation for AI experience {ai_experience_id} in course {course_id}.
        slots:
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      - text: Resume my current chat with AI experience {ai_experience_id} in course {course_id}.
        slots:
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a new AI conversation
      effect: write
      questions:
      - How do I start a fresh conversation with a course's AI experience?
      - Can I initialize a new chat session with an AI experience?
      instructions:
      - text: Start a new conversation with AI experience {ai_experience_id} in course {course_id}.
        slots:
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      - text: Open a fresh AI chat for experience {ai_experience_id} in course {course_id}.
        slots:
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/messages'].post
  update:
    x-apievangelist-phrasing:
      intent: Send a message to an AI conversation
      effect: write
      questions:
      - How do I send a message and get the AI's reply in a conversation?
      - Can I continue an existing AI conversation with a new prompt?
      instructions:
      - text: Send {message} to conversation {id} in AI experience {ai_experience_id}, course {course_id}.
        slots:
          message: requestBody.message
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      - text: Ask the AI {message} in conversation {id} (experience {ai_experience_id}, course {course_id}).
        slots:
          message: requestBody.message
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/evaluation'].get
  update:
    x-apievangelist-phrasing:
      intent: Read a conversation's stored evaluation
      effect: read
      questions:
      - Can I see the latest saved evaluation of an AI conversation without rerunning it?
      - Why would a conversation's evaluation come back empty?
      instructions:
      - text: Get the stored evaluation for conversation {id} in AI experience {ai_experience_id}, course {course_id}.
        slots:
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      - text: Show the last evaluation of conversation {id} (experience {ai_experience_id}, course {course_id}).
        slots:
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/evaluation'].post
  update:
    x-apievangelist-phrasing:
      intent: Generate or reset a conversation's evaluation
      effect: write
      questions:
      - How do I have the LLM re-evaluate a student's AI conversation?
      - Is generating a conversation evaluation rate-limited, and does it replace the old one?
      instructions:
      - text: Generate a new evaluation for conversation {id} in AI experience {ai_experience_id}, course {course_id}.
        slots:
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      - text: Rerun the evaluation of conversation {id} (experience {ai_experience_id}, course {course_id}).
        slots:
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/messages/{message_id}/feedback'].post
  update:
    x-apievangelist-phrasing:
      intent: Like or dislike an AI reply
      effect: write
      questions:
      - Can I give a thumbs up or down on an AI-generated message?
      - How do I leave written feedback with my vote on an AI reply?
      instructions:
      - text: Vote {vote} on message {message_id} in conversation {id}, experience {ai_experience_id}, course {course_id}.
        slots:
          vote: requestBody.vote
          message_id: path.message_id
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      - text: Rate AI message {message_id} as {vote} with note {feedback_message} (conversation {id}, experience {ai_experience_id}, course {course_id}).
        slots:
          message_id: path.message_id
          vote: requestBody.vote
          feedback_message: requestBody.feedback_message
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/ai_experiences/{ai_experience_id}/conversations/{id}/messages/{message_id}/feedback/{feedback_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove my vote on an AI reply
      effect: destructive
      questions:
      - How do I take back a like or dislike I gave an AI message?
      - Can I toggle off feedback on an AI reply?
      instructions:
      - text: Remove feedback {feedback_id} from message {message_id} in conversation {id}, experience {ai_experience_id}, course {course_id}.
        slots:
          feedback_id: path.feedback_id
          message_id: path.message_id
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      - text: Undo vote {feedback_id} on AI message {message_id} (conversation {id}, experience {ai_experience_id}, course {course_id}).
        slots:
          feedback_id: path.feedback_id
          message_id: path.message_id
          id: path.id
          ai_experience_id: path.ai_experience_id
          course_id: path.course_id
      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.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/canvas-ai-conversations-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.