canvas

Fetch enrolled courses and assignments from Canvas LMS via REST API token authentication.

Updated Jun 5, 2026
One-click install
npx skills add https://github.com/xu1713/openhorse --skill canvas-xu1713
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: canvas
Source: https://github.com/xu1713/openhorse/tree/main/openhorse/openhorse/optional-skills/productivity/canvas
Command: npx skills add https://github.com/xu1713/openhorse --skill canvas-xu1713

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires requests, and includes scripts (resource) components.

What problem does it solve? Students and educators often need programmatic access to their Canvas LMS data without manually browsing the web interface. This Skill provides read-only access to list enrolled courses and assignments directly from the command line using a personal API token. ## Core Features & Use Cases - Course Listing: Retrieve all enrolled courses with optional filtering by enrollment state (active, invited_or_pending, completed). - Assignment Retrieval: List assignments for any course with details like due dates, points possible, and submission types, sortable by due date. - Automatic Pagination: Handles Canvas Link-header pagination transparently, fetching up to 200 items per query. - Use Case: A student wants a quick overview of all upcoming deadlines. Run the assignment listing for each enrolled course ordered by due date to build a consolidated view of homework due this week. ## Quick Start Ask the agent to list your active Canvas courses and then show the assignments for a specific course ordered by due date.

Frequently Asked Questions about canvas

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I list my Canvas LMS courses from the command line?

Run the canvas_api.py script with the list_courses command after setting CANVAS_API_TOKEN and CANVAS_BASE_URL environment variables. Use the --enrollment-state active flag to filter for currently active courses only.

How do I get Canvas assignments sorted by due date?

Run list_assignments with the course ID and the --order-by due_at flag. The script returns JSON with each assignment's name, due_at timestamp, points possible, and submission types.

How do I create a Canvas API token for script access?

Log in to Canvas, go to Account Settings, scroll to Approved Integrations, and click New Access Token. Copy the generated token into your environment as CANVAS_API_TOKEN along with your institution's base URL.

Why does the Canvas API return 401 Unauthorized?

A 401 error means the API token is invalid or expired. Regenerate a new token in Canvas Account Settings under Approved Integrations and update the CANVAS_API_TOKEN environment variable.

Can this tool submit assignments or modify Canvas courses?

No, the integration is strictly read-only. It only supports listing courses and assignments through GET requests and cannot create, modify, or submit any Canvas content.

What are the Canvas API rate limits for scripts?

Canvas rate-limits to roughly 700 requests per 10 minutes. The script caps results at 200 items per query, and you can check the X-Rate-Limit-Remaining response header if you encounter throttling.