Output Formats¶
Canvas CLI supports multiple output formats to suit different use cases.
Available Formats¶
Table (Default)¶
Human-readable table format, ideal for terminal viewing.
ID NAME CODE TERM
123 Introduction to CS CS101 Fall 2024
456 Data Structures CS201 Fall 2024
789 Algorithms CS301 Fall 2024
JSON¶
Structured JSON output, ideal for scripting and automation.
YAML¶
YAML format for configuration files and human-readable structured data.
CSV¶
Comma-separated values for spreadsheet import.
Using Output in Scripts¶
Bash with jq¶
# Get course IDs
canvas courses list -o json | jq '.[].id'
# Filter by name
canvas courses list -o json | jq '.[] | select(.name | contains("CS"))'
Piping to Files¶
# Export to CSV file
canvas users list --course-id 123 -o csv > users.csv
# Export to JSON file
canvas assignments list --course-id 123 -o json > assignments.json
Processing with Other Tools¶
# Count users
canvas users list --course-id 123 -o json | jq length
# Get specific fields
canvas users list --course-id 123 -o json | jq '.[].email'
Output Filtering¶
Canvas CLI includes built-in filtering, column selection, and sorting capabilities.
Filter Results¶
Use --filter to search across all fields:
# Find courses containing "CS"
canvas courses list --filter "CS"
# Find assignments with "exam" in the name
canvas assignments list --course-id 123 --filter "exam"
The filter is case-insensitive and searches all fields.
Select Columns¶
Use --columns to display only specific fields:
# Show only id and name
canvas courses list --columns id,name
# Show specific assignment fields
canvas assignments list --course-id 123 --columns id,name,due_at,points_possible
Sort Results¶
Use --sort to order results by a field:
# Sort by name (ascending)
canvas courses list --sort name
# Sort by due date (descending with - prefix)
canvas assignments list --course-id 123 --sort -due_at
# Sort by points
canvas assignments list --course-id 123 --sort points_possible
Combining Options¶
All filtering options can be combined:
# Find exams, show key fields, sort by due date
canvas assignments list --course-id 123 \
--filter "exam" \
--columns id,name,due_at,points_possible \
--sort -due_at
Works with All Formats¶
Filtering works with any output format:
# Filter JSON output
canvas courses list --filter "CS" --output json
# Filter and export to CSV
canvas users list --course-id 123 --filter "student" --output csv > students.csv
Tips¶
Use JSON for Scripts
Always use -o json when parsing output in scripts. Table format may change between versions.
CSV for Spreadsheets
Use -o csv when you need to import data into Excel, Google Sheets, or other spreadsheet applications.