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.
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
# 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