canvas-lms-api

Sync Canvas LMS modules, wiki pages, and files via REST API workflows.

148|30|Updated Mar 26, 2026
One-click install
npx skills add https://github.com/aspi6246/Claude-Code-Skills-for-Academics --skill canvas-lms-api
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: canvas-lms-api
Source: https://github.com/aspi6246/Claude-Code-Skills-for-Academics/tree/main/canvas-lms-api
Command: npx skills add https://github.com/aspi6246/Claude-Code-Skills-for-Academics --skill canvas-lms-api

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It removes the manual, error-prone work of building and updating Canvas course structure (modules, pages, and files) by providing repeatable API patterns for programmatic synchronization.

Core Features & Use Cases

  • Module management: Find or create modules, set ordering, and safely re-run syncs without duplicating content.
  • Page workflows: Create or update Canvas wiki pages using slugs (page_url) and consistent HTML generation.
  • File upload and linking: Perform Canvas’s required multi-step uploads and inject the resulting file URLs into page HTML so links stay valid after overwrites.
  • Course sync automation: Drive a sync script from a local course_structure.json blueprint and upload-first strategy for reliable dependencies.

Quick Start

Paste the skill’s Sync workflow into a Python script, replace config.py values (domain, course IDs, token), then run your sync to create/update modules, pages, and linked uploads in Canvas.

Frequently Asked Questions about canvas-lms-api

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

FAQPage Schema
How do I automate Canvas LMS course content synchronization with Python?

Automate Canvas LMS course sync by running a Python script that uses REST API patterns to update modules, wiki pages, and files. This approach replaces manual updates with repeatable, idempotent operations driven by a local JSON blueprint.

How does the Canvas LMS API handle file uploads and link them to wiki pages?

Canvas LMS API file uploads require a multi-step process to upload files and return URLs. You inject these resulting file URLs into wiki page HTML using slug-based page updates to ensure links remain valid after overwrites.

Can I safely re-run a Canvas course sync without duplicating modules and pages?

You can safely re-run Canvas course syncs using idempotent find or create operations. These operations check for existing modules and pages using slug-based updates, preventing duplicate content while applying overwrite semantics for file updates.

What is the best way to update Canvas wiki pages programmatically using slugs?

The best way to update Canvas wiki pages programmatically is using slug-based page_url identifiers. This method applies consistent HTML generation to create or update pages safely, ensuring content matches local sources without duplication.

Do I need a local JSON blueprint to sync modules and pages to Canvas?

You need a local course_structure.json blueprint to drive the course sync automation. This file defines the module and page hierarchy, allowing the upload-first strategy to resolve file dependencies before linking them in Canvas.

Why does my Canvas API course sync fail during pagination-safe listings?

Canvas API course sync operations fail during pagination-safe listings if requests lack proper authentication or incorrect field usage for module items. Robust re-run behavior requires correct pagination handling to fetch all course content before applying overwrite semantics.