Skip to main content
The canvas discussion subcommand group lets you list discussion topics in a course and fetch the full entry thread for a specific topic. Replies are nested as returned by the Canvas API. All output is printed as pretty-printed JSON.

canvas discussion list

List discussion topics in a course.
canvas discussion list 12345
canvas discussion list 12345 --search "week 3"
canvas discussion list 12345 --graded
canvas discussion list 12345 --search "intro" --exact-title
canvas discussion list 12345 --include-announcements
course_id
string
required
Canvas course ID.
Filter topics by title (or title and message body, depending on --search-in). Case-insensitive.
--graded
boolean
default:"false"
Return only discussions that are graded assignments.
--exact-title
boolean
default:"false"
Require an exact title match when --search is set. Without this flag, the search is a substring match.
--include-announcements
boolean
default:"false"
Include announcement topics alongside regular discussion topics.
--search-in
string
default:"title"
Controls where --search is applied. Accepted values:
  • title (default) — search topic titles only
  • title_or_message — search both titles and message bodies
--limit
number
default:"100"
Maximum number of topics to return.

Examples

Find discussions whose title contains “midterm”:
canvas discussion list 12345 --search "midterm"
Find a topic by exact title:
canvas discussion list 12345 --search "Week 3 Discussion" --exact-title
List all graded discussions, including announcements:
canvas discussion list 12345 --graded --include-announcements
Search both titles and message bodies for “climate”:
canvas discussion list 12345 --search "climate" --search-in title_or_message

canvas discussion show

Fetch a discussion topic’s entries and nested replies.
canvas discussion show 12345 67890
canvas discussion show 12345 67890 --no-replies
canvas discussion show 12345 67890 --no-participants
canvas discussion show 12345 67890 --limit 50
course_id
string
required
Canvas course ID.
topic_id
string
required
Discussion topic ID. Use canvas discussion list to find topic IDs.
--replies/--no-replies
boolean
default:"true"
Include nested reply entries. Use --no-replies to return top-level entries only.
--participants/--no-participants
boolean
default:"true"
Include participant metadata (display name, avatar URL) alongside entries. Use --no-participants to omit it.
--limit
number
default:"200"
Maximum number of entries to return.

Examples

Fetch a discussion thread with all replies and participant info:
canvas discussion show 12345 67890
Fetch top-level posts only, without participant metadata:
canvas discussion show 12345 67890 --no-replies --no-participants
Fetch up to 50 entries for a high-volume thread:
canvas discussion show 12345 67890 --limit 50

Build docs developers (and LLMs) love