Canvas · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Canvas LMS REST Discussion Topics API

59 actions 59 updates phrasing extends openapi/canvas-discussion-topics-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 59 · first 16 shown; the file carries all of them

$.info
$.paths['/v1/courses/{course_id}/discussion_topics'].get
$.paths['/v1/courses/{course_id}/discussion_topics'].post
$.paths['/v1/groups/{group_id}/discussion_topics'].get
$.paths['/v1/groups/{group_id}/discussion_topics'].post
$.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}'].get
$.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}'].put
$.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}'].delete
$.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}'].get
$.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}'].put
$.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}'].delete
$.paths['/v1/courses/{course_id}/discussion_topics/reorder'].post
$.paths['/v1/groups/{group_id}/discussion_topics/reorder'].post
$.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{id}'].put
$.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{id}'].delete
$.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{id}'].put

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 Discussion Topics API
  version: 1.0.0
extends: openapi/canvas-discussion-topics-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: 58
- target: $.paths['/v1/courses/{course_id}/discussion_topics'].get
  update:
    x-apievangelist-phrasing:
      intent: List a course's discussion topics
      effect: read
      questions:
      - What discussion topics are open in my Canvas course right now?
      - Can I filter a course's discussions to only unread ones or only announcements?
      - Is there a way to search course discussion threads by title keyword?
      instructions:
      - text: List the discussion topics in course {course_id}.
        slots:
          course_id: path.course_id
      - text: Show only the announcements in course {course_id}, newest first.
        slots:
          course_id: path.course_id
      - text: Search course {course_id} discussions for {search_term}.
        slots:
          course_id: path.course_id
          search_term: query.search_term
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a new discussion in a course
      effect: write
      questions:
      - How do I post a new discussion prompt for my whole class?
      - Can a new course discussion be scheduled to appear later or require students to post first?
      instructions:
      - text: Create a discussion titled {title} in course {course_id}.
        slots:
          title: requestBody.title
          course_id: path.course_id
      - text: Post a course announcement in {course_id} with the message {message}.
        slots:
          course_id: path.course_id
          message: requestBody.message
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics'].get
  update:
    x-apievangelist-phrasing:
      intent: List a group's discussion topics
      effect: read
      questions:
      - Which discussions exist inside my student group's space?
      - Can I see only the pinned or locked threads in a group?
      instructions:
      - text: List all discussion threads in group {group_id}.
        slots:
          group_id: path.group_id
      - text: Find group {group_id} threads mentioning {search_term}.
        slots:
          group_id: path.group_id
          search_term: query.search_term
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a new discussion in a group
      effect: write
      questions:
      - Can students open a new thread just for their project group?
      - What does it take to post a discussion inside a group rather than the course?
      instructions:
      - text: Open a new group thread in {group_id} called {title}.
        slots:
          group_id: path.group_id
          title: requestBody.title
      - text: Start a discussion for group {group_id} that says {message}.
        slots:
          group_id: path.group_id
          message: requestBody.message
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one course discussion topic
      effect: read
      questions:
      - How can I pull the settings and details of a single course discussion?
      - Where do I see whether a specific class discussion is locked or graded?
      instructions:
      - text: Get discussion topic {topic_id} from course {course_id}.
        slots:
          topic_id: path.topic_id
          course_id: path.course_id
      - text: Show me the details of course {course_id} topic {topic_id}.
        slots:
          course_id: path.course_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Edit a course discussion topic
      effect: write
      questions:
      - Can I rename or re-lock a class discussion after it's already posted?
      - How do I pin an existing course discussion to the top?
      instructions:
      - text: Rename topic {topic_id} in course {course_id} to {title}.
        slots:
          topic_id: path.topic_id
          course_id: path.course_id
          title: requestBody.title
      - text: Pin course {course_id} discussion {topic_id}.
        slots:
          course_id: path.course_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a course discussion topic
      effect: destructive
      questions:
      - Does deleting a graded class discussion also remove its assignment?
      - Can I permanently remove a discussion from my course?
      instructions:
      - text: Delete discussion {topic_id} from course {course_id}.
        slots:
          topic_id: path.topic_id
          course_id: path.course_id
      - text: Remove course {course_id} topic {topic_id} and its assignment.
        slots:
          course_id: path.course_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one group discussion topic
      effect: read
      questions:
      - Can I look up one particular thread in a student group?
      - What settings does a given group discussion have?
      instructions:
      - text: Fetch group {group_id} discussion {topic_id}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
      - text: Look up thread {topic_id} in group {group_id}.
        slots:
          topic_id: path.topic_id
          group_id: path.group_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Edit a group discussion topic
      effect: write
      questions:
      - Can a group discussion's title or message be changed after posting?
      - Is it possible to lock a thread inside a student group?
      instructions:
      - text: Change the message of group {group_id} thread {topic_id} to {message}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
          message: requestBody.message
      - text: Lock group {group_id} discussion {topic_id} on {lock_at}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
          lock_at: requestBody.lock_at
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a group discussion topic
      effect: destructive
      questions:
      - How do I get rid of a thread in a student group?
      - Can a group discussion be deleted for good?
      instructions:
      - text: Delete thread {topic_id} from group {group_id}.
        slots:
          topic_id: path.topic_id
          group_id: path.group_id
      - text: Remove group {group_id} discussion {topic_id}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/reorder'].post
  update:
    x-apievangelist-phrasing:
      intent: Reorder pinned discussions in a course
      effect: write
      questions:
      - Can I change the order of the pinned discussions at the top of my course?
      - Do I have to include every pinned topic when reordering course discussions?
      instructions:
      - text: Reorder the pinned discussions in course {course_id} as {order}.
        slots:
          course_id: path.course_id
          order: requestBody.order
      - text: 'Put course {course_id} pinned topics in this sequence: {order}.'
        slots:
          course_id: path.course_id
          order: requestBody.order
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/reorder'].post
  update:
    x-apievangelist-phrasing:
      intent: Reorder pinned discussions in a group
      effect: write
      questions:
      - Is there a way to rearrange pinned threads in a group space?
      - How are pinned group discussions sorted, and can I set the order?
      instructions:
      - text: Arrange pinned threads in group {group_id} in the order {order}.
        slots:
          group_id: path.group_id
          order: requestBody.order
      - text: Set group {group_id} pinned discussion order to {order}.
        slots:
          group_id: path.group_id
          order: requestBody.order
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Edit a post in a course discussion
      effect: write
      questions:
      - Can I edit a reply I already posted in a class discussion?
      - Who is allowed to change someone's post in a course discussion?
      instructions:
      - text: Edit entry {id} in course {course_id} topic {topic_id} to say {message}.
        slots:
          id: path.id
          course_id: path.course_id
          topic_id: path.topic_id
          message: requestBody.message
      - text: Fix the text of my course discussion post {id} under topic {topic_id} in {course_id}.
        slots:
          id: path.id
          topic_id: path.topic_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a post from a course discussion
      effect: destructive
      questions:
      - Can an instructor remove an inappropriate post from a class discussion?
      - What permissions do I need to delete a course discussion entry?
      instructions:
      - text: Delete entry {id} from topic {topic_id} in course {course_id}.
        slots:
          id: path.id
          topic_id: path.topic_id
          course_id: path.course_id
      - text: Remove post {id} from course {course_id} discussion {topic_id}.
        slots:
          id: path.id
          course_id: path.course_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Edit a post in a group discussion
      effect: write
      questions:
      - Is editing my own message in a group thread possible?
      - Can a group member revise what they wrote in a group discussion?
      instructions:
      - text: Update group {group_id} post {id} in thread {topic_id} with {message}.
        slots:
          group_id: path.group_id
          id: path.id
          topic_id: path.topic_id
          message: requestBody.message
      - text: Revise my entry {id} in group {group_id} discussion {topic_id}.
        slots:
          id: path.id
          group_id: path.group_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a post from a group discussion
      effect: destructive
      questions:
      - How do I take down a message someone posted in a group thread?
      - Can I delete my own post from a group discussion?
      instructions:
      - text: Delete group {group_id} entry {id} from thread {topic_id}.
        slots:
          group_id: path.group_id
          id: path.id
          topic_id: path.topic_id
      - text: Take down post {id} in group {group_id} topic {topic_id}.
        slots:
          id: path.id
          group_id: path.group_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/summaries'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the last AI summary of a course discussion
      effect: read
      questions:
      - Can I see the most recent AI-generated summary of a class discussion?
      - What prompt did I use for the last summary of this course discussion?
      instructions:
      - text: Show the last summary generated for course {course_id} topic {topic_id}.
        slots:
          course_id: path.course_id
          topic_id: path.topic_id
      - text: Fetch the latest discussion summary and my prompt for {topic_id} in {course_id}.
        slots:
          topic_id: path.topic_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/summaries'].post
  update:
    x-apievangelist-phrasing:
      intent: Generate an AI summary of a course discussion
      effect: write
      questions:
      - Can Canvas summarize a long class discussion for me?
      - Is it possible to steer a course discussion summary with my own focus prompt?
      instructions:
      - text: Summarize discussion {topic_id} in course {course_id}.
        slots:
          topic_id: path.topic_id
          course_id: path.course_id
      - text: Generate a summary of course {course_id} topic {topic_id} focused on {userInput}.
        slots:
          course_id: path.course_id
          topic_id: path.topic_id
          userInput: requestBody.userInput
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/summaries'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the last AI summary of a group discussion
      effect: read
      questions:
      - Where can I find the previous summary made for a group thread?
      - Was a summary already produced for this group discussion?
      instructions:
      - text: Retrieve the previous summary for group {group_id} thread {topic_id}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
      - text: Get the most recent group {group_id} summary of topic {topic_id}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/summaries'].post
  update:
    x-apievangelist-phrasing:
      intent: Generate an AI summary of a group discussion
      effect: write
      questions:
      - Can I get a quick recap of what my project group discussed?
      - Does the group thread summary report token usage?
      instructions:
      - text: Create a recap of group {group_id} thread {topic_id}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
      - text: Summarize group {group_id} discussion {topic_id} with emphasis on {userInput}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
          userInput: requestBody.userInput
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/summaries/disable'].put
  update:
    x-apievangelist-phrasing:
      intent: Turn off summaries for a course discussion
      effect: write
      questions:
      - Can I switch off AI summaries on one class discussion?
      - Is the endpoint for disabling course discussion summaries deprecated?
      instructions:
      - text: Disable the summary on course {course_id} topic {topic_id}.
        slots:
          course_id: path.course_id
          topic_id: path.topic_id
      - text: Turn off discussion summarizing for {topic_id} in course {course_id}.
        slots:
          topic_id: path.topic_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/summaries/disable'].put
  update:
    x-apievangelist-phrasing:
      intent: Turn off summaries for a group discussion
      effect: write
      questions:
      - How do I stop summaries from showing on a group thread?
      - Can summarization be disabled for a single group discussion?
      instructions:
      - text: Switch off summaries for group {group_id} thread {topic_id}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
      - text: Disable group {group_id} discussion {topic_id} summary.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/summaries/{summary_id}/feedback'].post
  update:
    x-apievangelist-phrasing:
      intent: Rate an AI summary of a course discussion
      effect: write
      questions:
      - Can I give a thumbs up or down on a course discussion summary?
      - Is there a way to leave a comment on how good a class discussion summary was?
      instructions:
      - text: Record {_action} feedback on summary {summary_id} for course {course_id} topic {topic_id}.
        slots:
          _action: requestBody._action
          summary_id: path.summary_id
          course_id: path.course_id
          topic_id: path.topic_id
      - text: Comment {comment} on course {course_id} discussion {topic_id} summary {summary_id}.
        slots:
          comment: requestBody.comment
          course_id: path.course_id
          topic_id: path.topic_id
          summary_id: path.summary_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/summaries/{summary_id}/feedback'].post
  update:
    x-apievangelist-phrasing:
      intent: Rate an AI summary of a group discussion
      effect: write
      questions:
      - Where do I send feedback about a group thread summary?
      - Can I flag a group discussion summary as unhelpful?
      instructions:
      - text: Send {_action} feedback for group {group_id} thread {topic_id} summary {summary_id}.
        slots:
          _action: requestBody._action
          group_id: path.group_id
          topic_id: path.topic_id
          summary_id: path.summary_id
      - text: Leave the note {comment} on summary {summary_id} of group {group_id} topic {topic_id}.
        slots:
          comment: requestBody.comment
          summary_id: path.summary_id
          group_id: path.group_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/view'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a whole course discussion with all posts
      effect: read
      questions:
      - Can I export an entire class discussion with every post and author in one call?
      - What's the fastest way to read a full course discussion thread tree?
      instructions:
      - text: Get the full view of course {course_id} discussion {topic_id} with all entries.
        slots:
          course_id: path.course_id
          topic_id: path.topic_id
      - text: Dump every post and author in topic {topic_id} of course {course_id}.
        slots:
          topic_id: path.topic_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/view'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a whole group discussion with all posts
      effect: read
      questions:
      - Can I load an entire group thread including all replies at once?
      - Is there a cached full view of a group discussion?
      instructions:
      - text: Load the complete group {group_id} thread {topic_id} with replies.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
      - text: Pull the whole conversation tree for group {group_id} topic {topic_id}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries'].get
  update:
    x-apievangelist-phrasing:
      intent: List top-level posts in a course discussion
      effect: read
      questions:
      - Which students have posted top-level responses in a class discussion?
      - Do I need to post first before I can list entries in a course discussion?
      instructions:
      - text: List the top-level entries in course {course_id} topic {topic_id}.
        slots:
          course_id: path.course_id
          topic_id: path.topic_id
      - text: Show the main responses posted to discussion {topic_id} in {course_id}.
        slots:
          topic_id: path.topic_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries'].post
  update:
    x-apievangelist-phrasing:
      intent: Post a response to a course discussion
      effect: write
      questions:
      - Can I submit my response to a class discussion through the API?
      - Is attaching a file to a course discussion post supported?
      instructions:
      - text: Post {message} as a new entry in course {course_id} topic {topic_id}.
        slots:
          message: requestBody.message
          course_id: path.course_id
          topic_id: path.topic_id
      - text: Reply to the course {course_id} prompt {topic_id} with file {attachment}.
        slots:
          course_id: path.course_id
          topic_id: path.topic_id
          attachment: requestBody.attachment
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries'].get
  update:
    x-apievangelist-phrasing:
      intent: List top-level posts in a group discussion
      effect: read
      questions:
      - What has everyone in my group posted to our thread so far?
      - Can I page through the main posts of a group discussion?
      instructions:
      - text: List top-level posts in group {group_id} thread {topic_id}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
      - text: Show what members wrote in group {group_id} discussion {topic_id}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries'].post
  update:
    x-apievangelist-phrasing:
      intent: Post a response to a group discussion
      effect: write
      questions:
      - Can I add a new post to my project group's thread?
      - Is a file upload allowed when posting in a group discussion?
      instructions:
      - text: Write {message} in group {group_id} thread {topic_id}.
        slots:
          message: requestBody.message
          group_id: path.group_id
          topic_id: path.topic_id
      - text: Add a group {group_id} post to topic {topic_id} attaching {attachment}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
          attachment: requestBody.attachment
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/duplicate'].post
  update:
    x-apievangelist-phrasing:
      intent: Copy a course discussion topic
      effect: write
      questions:
      - Can I duplicate an existing class discussion instead of recreating it?
      - Does copying a course discussion keep it in the same course?
      instructions:
      - text: Duplicate discussion {topic_id} in course {course_id}.
        slots:
          topic_id: path.topic_id
          course_id: path.course_id
      - text: Make a copy of course {course_id} topic {topic_id}.
        slots:
          course_id: path.course_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/duplicate'].post
  update:
    x-apievangelist-phrasing:
      intent: Copy a group discussion topic
      effect: write
      questions:
      - Is cloning a thread inside a group possible?
      - Can I reuse a group discussion by duplicating it?
      instructions:
      - text: Clone group {group_id} thread {topic_id}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
      - text: Duplicate topic {topic_id} within group {group_id}.
        slots:
          topic_id: path.topic_id
          group_id: path.group_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{entry_id}/replies'].get
  update:
    x-apievangelist-phrasing:
      intent: List replies to a post in a course discussion
      effect: read
      questions:
      - Who replied to a particular student's post in a class discussion?
      - Can I see the replies under one entry in a course discussion?
      instructions:
      - text: List replies to entry {entry_id} in course {course_id} topic {topic_id}.
        slots:
          entry_id: path.entry_id
          course_id: path.course_id
          topic_id: path.topic_id
      - text: Show the responses under course post {entry_id} in discussion {topic_id} of {course_id}.
        slots:
          entry_id: path.entry_id
          topic_id: path.topic_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entries/{entry_id}/replies'].post
  update:
    x-apievangelist-phrasing:
      intent: Reply to a post in a course discussion
      effect: write
      questions:
      - Can I respond directly to a classmate's post rather than the main prompt?
      - Is it possible to attach a file to a reply in a course discussion?
      instructions:
      - text: Reply {message} to entry {entry_id} in course {course_id} topic {topic_id}.
        slots:
          message: requestBody.message
          entry_id: path.entry_id
          course_id: path.course_id
          topic_id: path.topic_id
      - text: Respond to course {course_id} post {entry_id} under {topic_id} with file {attachment}.
        slots:
          course_id: path.course_id
          entry_id: path.entry_id
          topic_id: path.topic_id
          attachment: requestBody.attachment
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{entry_id}/replies'].get
  update:
    x-apievangelist-phrasing:
      intent: List replies to a post in a group discussion
      effect: read
      questions:
      - What answers came back to my post in the group thread?
      - Can I page through the replies to one group discussion entry?
      instructions:
      - text: Get replies to group {group_id} entry {entry_id} in thread {topic_id}.
        slots:
          group_id: path.group_id
          entry_id: path.entry_id
          topic_id: path.topic_id
      - text: Show answers to post {entry_id} in group {group_id} topic {topic_id}.
        slots:
          entry_id: path.entry_id
          group_id: path.group_id
          topic_id: path.topic_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entries/{entry_id}/replies'].post
  update:
    x-apievangelist-phrasing:
      intent: Reply to a post in a group discussion
      effect: write
      questions:
      - How do I answer a teammate's message in our group thread?
      - Can a reply in a group discussion include an attachment?
      instructions:
      - text: Answer group {group_id} entry {entry_id} in thread {topic_id} with {message}.
        slots:
          group_id: path.group_id
          entry_id: path.entry_id
          topic_id: path.topic_id
          message: requestBody.message
      - text: Send a reply to post {entry_id} in group {group_id} topic {topic_id} with {attachment}.
        slots:
          entry_id: path.entry_id
          group_id: path.group_id
          topic_id: path.topic_id
          attachment: requestBody.attachment
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/entry_list'].get
  update:
    x-apievangelist-phrasing:
      intent: Get specific course discussion posts by id
      effect: read
      questions:
      - Can I fetch several course discussion posts at once by their ids?
      - Is there a batch lookup for entries in a class discussion?
      instructions:
      - text: Fetch entries {ids} from course {course_id} topic {topic_id}.
        slots:
          ids: query.ids
          course_id: path.course_id
          topic_id: path.topic_id
      - text: Look up posts with ids {ids} in course discussion {topic_id} of {course_id}.
        slots:
          ids: query.ids
          topic_id: path.topic_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/groups/{group_id}/discussion_topics/{topic_id}/entry_list'].get
  update:
    x-apievangelist-phrasing:
      intent: Get specific group discussion posts by id
      effect: read
      questions:
      - Can I grab particular group thread posts when I already know their ids?
      - Does a group discussion support retrieving a chosen set of entries?
      instructions:
      - text: Retrieve group {group_id} thread {topic_id} entries {ids}.
        slots:
          group_id: path.group_id
          topic_id: path.topic_id
          ids: query.ids
      - text: Get the group posts {ids} from topic {topic_id} in {group_id}.
        slots:
          ids: query.ids
          topic_id: path.topic_id
          group_id: path.group_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/read'].put
  update:
    x-apievangelist-phrasing:
      intent: Mark a course discussion prompt as read
      effect: write
      questions:
      - Can I clear the unread badge on a class discussion's opening post?
      - What marks just the initial text of a course discussion as seen?
      instructions:
      - text: Mark course {course_id} topic {topic_id} as read.
        slots:
          course_id: path.course_id
          topic_id: path.topic_id
      - text: Flag the opening post of discussion {topic_id} in {course_id} as seen.
        slots:
          topic_id: path.topic_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/courses/{course_id}/discussion_topics/{topic_id}/read'].delete
  update:
    x-apievangelist-phrasing:
      intent: Mark a course discussion prompt as unread
      effect: destructive
      questions:
      - Can I set a class discussion's opening post back to unread as a reminder?
      - Is there a way to restore the unread state of a course topic?
      instructions:
      - text: Mark course {course_id} topic {topic_id} as unread.
        slots:
          course_id: path.course_id
          topic_id: path.topic_id
      - text: Set the prompt of discussion {topic_id} in {course_id} back to unread.
        slots:
          topic_id: path.topic_id
          course_id: path.course_id
      method: generated
      generated: '2026-10-01'


# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/canvas/refs/heads/main/overlays/canvas-discussion-topics-api-phrasing-overlay.yaml