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'