Skip to content

canvas api

canvas api

Make raw API requests to Canvas

Synopsis

Make raw API requests to any Canvas API endpoint.

This command provides direct access to the Canvas API for advanced use cases or endpoints not yet supported by dedicated commands.

Methods: GET, POST, PUT, DELETE, PATCH, HEAD

Examples:

# List all courses
canvas api GET /api/v1/courses

# Create a course (with JSON body)
canvas api POST /api/v1/accounts/1/courses -d '{"course":{"name":"Test Course"}}'

# Search users with query parameters
canvas api GET /api/v1/users -q "search_term=john" -q "per_page=50"

# Update an assignment
canvas api PUT /api/v1/courses/123/assignments/456 -d '{"assignment":{"name":"Updated"}}'

# Delete an assignment
canvas api DELETE /api/v1/courses/123/assignments/456

# Get all pages of a paginated endpoint
canvas api GET /api/v1/courses --paginate

# Read body from file
canvas api POST /api/v1/accounts/1/courses --data-file course.json
canvas api <METHOD> <PATH> [flags]

Options

  -d, --data string          JSON data for request body
      --data-file string     Read JSON data from file
  -H, --header stringArray   Custom headers (key:value, repeatable)
  -h, --help                 help for api
      --paginate             Follow pagination links (GET only)
  -q, --query stringArray    Query parameters (key=value, repeatable)
      --raw                  Output raw response without formatting
      --show-headers         Include response headers in output

Options inherited from parent commands

      --as-user int       Masquerade as another user (admin feature, requires permission)
      --columns strings   Select specific columns to display (comma-separated)
      --config string     config file (default is $HOME/.canvas-cli/config.yaml)
      --dry-run           Print curl commands instead of executing requests
      --filter string     Filter results by text (case-insensitive substring match)
      --instance string   Canvas instance URL (overrides config)
      --limit int         Limit number of results for list operations (0 = unlimited)
      --no-cache          Disable caching of API responses
  -o, --output string     Output format: table, json, yaml, csv (default "table")
      --show-token        Show actual token in dry-run output (default: redacted)
      --sort string       Sort results by field (prefix with - for descending, e.g., -name)
  -v, --verbose           Enable verbose output

SEE ALSO

  • canvas - Canvas LMS CLI - Interact with Canvas from the command line
Auto generated by spf13/cobra on 25-Jan-2026