Canvas · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canvas LMS REST Conversations API

13 actions 13 updates phrasing extends openapi/canvas-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 13

$.info
$.paths['/v1/conversations'].get
$.paths['/v1/conversations'].put
$.paths['/v1/conversations'].post
$.paths['/v1/conversations/batches'].get
$.paths['/v1/conversations/{id}'].get
$.paths['/v1/conversations/{id}'].put
$.paths['/v1/conversations/{id}'].delete
$.paths['/v1/conversations/mark_all_as_read'].post
$.paths['/v1/conversations/{id}/add_recipients'].post
$.paths['/v1/conversations/{id}/add_message'].post
$.paths['/v1/conversations/{id}/remove_messages'].post
$.paths['/v1/conversations/unread_count'].get

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 Conversations API
  version: 1.0.0
extends: openapi/canvas-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: 12
- target: $.paths['/v1/conversations'].get
  update:
    x-apievangelist-phrasing:
      intent: List my inbox conversations
      effect: read
      questions:
      - How do I see my Canvas inbox conversations, newest first?
      - Can I filter my conversations to only unread or starred ones?
      - Can I show only conversations from one course?
      instructions:
      - text: List my conversations.
      - text: Show my {scope} conversations.
        slots:
          scope: query.scope
      - text: List my conversations filtered to {filter}.
        slots:
          filter: query.filter
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/conversations'].put
  update:
    x-apievangelist-phrasing:
      intent: Apply one change to many conversations
      effect: write
      questions:
      - How do I mark a bunch of conversations as read at once?
      - Can I archive or star several conversations in a single request?
      instructions:
      - text: Apply {event} to conversations {conversation_ids}.
        slots:
          event: requestBody.event
          conversation_ids: requestBody.conversation_ids
      - text: Bulk {event} the conversations {conversation_ids}.
        slots:
          event: requestBody.event
          conversation_ids: requestBody.conversation_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/conversations'].post
  update:
    x-apievangelist-phrasing:
      intent: Send a new inbox message
      effect: write
      questions:
      - How do I send a private message to a student in Canvas?
      - Can I message a whole course section in one go?
      - Will messaging the same people reuse an existing conversation?
      instructions:
      - text: 'Message {recipients}: {body}'
        slots:
          recipients: requestBody.recipients
          body: requestBody.body
      - text: Start a conversation with {recipients} titled {subject} saying {body}.
        slots:
          recipients: requestBody.recipients
          subject: requestBody.subject
          body: requestBody.body
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/conversations/batches'].get
  update:
    x-apievangelist-phrasing:
      intent: Check my bulk message batches in progress
      effect: read
      questions:
      - Is my bulk private message still being sent?
      - What conversation batches are currently running for me?
      instructions:
      - text: Show my running conversation batches.
      - text: Check whether my bulk messages have finished sending.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/conversations/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Read a single conversation
      effect: read
      questions:
      - How do I open one conversation with all its messages?
      - Can I read a conversation without marking it as read?
      instructions:
      - text: Open conversation {id}.
        slots:
          id: path.id
      - text: Show all messages and participants in conversation {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/conversations/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Star, archive or mute a conversation
      effect: write
      questions:
      - How do I star or archive one conversation?
      - Can I unsubscribe from a conversation so I stop getting notified?
      instructions:
      - text: Set conversation {id} to {workflow_state}.
        slots:
          id: path.id
          workflow_state: requestBody.conversation[workflow_state]
      - text: Star conversation {id}.
        slots:
          id: path.id
      - text: Unsubscribe me from conversation {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/conversations/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a conversation from my inbox
      effect: destructive
      questions:
      - How do I delete a whole conversation from my inbox?
      - Does deleting a conversation remove it for the other participants too?
      instructions:
      - text: Delete conversation {id}.
        slots:
          id: path.id
      - text: Remove conversation {id} and all its messages from my view.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/conversations/mark_all_as_read'].post
  update:
    x-apievangelist-phrasing:
      intent: Mark all my conversations as read
      effect: write
      questions:
      - Can I clear every unread conversation in my inbox at once?
      - What's the quickest way to mark my whole inbox as read?
      instructions:
      - text: Mark all my conversations as read.
      - text: Clear my entire unread inbox.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/conversations/{id}/add_recipients'].post
  update:
    x-apievangelist-phrasing:
      intent: Add people to a group conversation
      effect: write
      questions:
      - How do I add more people to an existing group conversation?
      - Can I bring a new student into a conversation already underway?
      instructions:
      - text: Add {recipients} to conversation {id}.
        slots:
          recipients: requestBody.recipients
          id: path.id
      - text: Invite {recipients} into group conversation {id}.
        slots:
          recipients: requestBody.recipients
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/conversations/{id}/add_message'].post
  update:
    x-apievangelist-phrasing:
      intent: Reply in an existing conversation
      effect: write
      questions:
      - How do I reply to a conversation that's already going?
      - Can I reply to only some of the people in a conversation?
      instructions:
      - text: Reply to conversation {id} with {body}.
        slots:
          id: path.id
          body: requestBody.body
      - text: Reply to conversation {id} with {body}, sent only to {recipients}.
        slots:
          id: path.id
          body: requestBody.body
          recipients: requestBody.recipients
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/conversations/{id}/remove_messages'].post
  update:
    x-apievangelist-phrasing:
      intent: Delete specific messages from a conversation
      effect: destructive
      questions:
      - How do I delete individual messages from a conversation?
      - What happens if I delete every message in a conversation?
      instructions:
      - text: Delete messages {remove} from conversation {id}.
        slots:
          remove: requestBody.remove
          id: path.id
      - text: Remove message {remove} from my view of conversation {id}.
        slots:
          remove: requestBody.remove
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/conversations/unread_count'].get
  update:
    x-apievangelist-phrasing:
      intent: Count my unread conversations
      effect: read
      questions:
      - How many unread conversations do I have?
      - What's my unread inbox count in Canvas?
      instructions:
      - text: Tell me how many unread conversations I have.
      - text: Get my unread conversation count.
      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-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.