For Agents
List courses and read course detail from a Canvas LMS instance to power reporting, sync, and learning-analytics automations.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Canvas LMS API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Canvas LMS API.
List all courses on the Canvas instance through GET /courses for catalog sync and reporting
Read full detail for a single course via GET /courses/{course_id} including settings and metadata
Authenticate with a Canvas-issued bearer access token scoped per instance
GET STARTED
Use for: I need to list every active course on the Canvas instance for the new semester, Retrieve the full record for a Canvas course by ID, Get the course title and start date for course 12345, Monitor the Canvas course catalog for newly published courses
Not supported: Does not handle assignments, submissions, gradebook entries, or user enrolments — use for course list and detail reads only.
Jentic publishes the only available OpenAPI specification for Canvas LMS API, keeping it validated and agent-ready. The Canvas Learning Management System REST API is used by universities, K-12 districts, and corporate learning teams to programmatically read course catalogs and individual course detail. This curated spec covers the two foundational course endpoints that anchor most Canvas integrations and unblock automation against an instance hosted on Instructure's cloud or self-managed.
Target any Canvas instance by templating the {instance} server variable for cloud or on-premise deployments
Anchor downstream sync into a data warehouse, BI tool, or LRS using stable course identifiers
Patterns agents use Canvas LMS API for, with concrete tasks.
★ Course catalog sync to data warehouse
Institutional research and learning-analytics teams use the list-courses endpoint to keep a warehouse copy of the Canvas course catalog in sync. The job pages through GET /courses on a schedule and reads detail for each course via GET /courses/{course_id}. This unlocks downstream reporting in tools like Snowflake, BigQuery, or Looker without hitting the live LMS for every query.
Call GET /courses, page through results, then for each course id call GET /courses/{course_id} and store the detail rows in a staging table.
Course directory for a custom student portal
Schools running a custom student portal alongside Canvas can read the course list and detail to render a directory page outside of Canvas itself. The bearer token model lets the portal call Canvas with an institutional service account and cache responses for fast page loads. Useful when the institution wants Canvas as the system of record but a different surface for discovery.
Fetch GET /courses and render a JSON list of course names and IDs for the portal homepage, then resolve detail on demand via GET /courses/{course_id}.
Compliance and audit reporting on course inventory
Audit teams responsible for accreditation reporting can pull the canonical course list and per-course metadata through the API and reconcile it against the Student Information System. Pairing list-courses with retrieve-course produces the full inventory needed for regional accreditation reviews and Title IV reporting.
List all courses through GET /courses, then for each ID fetch GET /courses/{course_id} and export the combined dataset as a CSV for auditor review.
AI-agent course lookup via Jentic
AI agents helping faculty or administrators answer ad-hoc questions can look up a Canvas course by ID through Jentic instead of holding API keys directly. Jentic stores the bearer token in MAXsystem and answers natural-language queries like 'what is the start date of course 4567' by calling GET /courses/{course_id} and returning structured fields.
Search Jentic for 'get a Canvas course by ID', load the schema for GET /courses/{course_id}, and return the course name and enrolment_term_id for course 4567.
2 endpoints — jentic publishes the only available openapi specification for canvas lms api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/courses
List courses on the Canvas instance
/courses/{course_id}
Get a single course by ID
/courses
List courses on the Canvas instance
/courses/{course_id}
Get a single course by ID
Three things that make agents converge on Jentic-routed access.
Credential isolation
Canvas access tokens are stored encrypted in the Jentic MAXsystem vault. Agents receive scoped credentials per call so the raw bearer token never enters the agent context.
Intent-based discovery
Agents search by intent (e.g. 'list Canvas courses' or 'get a Canvas course by ID') and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the Canvas docs site.
Time to first call
Direct Canvas integration: typically half a day to mint a token, configure the instance base URL, and wire pagination. Through Jentic: minutes to search, load schema, and execute.
Alternatives and complements available in the Jentic catalogue.
Specific to using Canvas LMS API through Jentic.
Why is there no official OpenAPI spec for Canvas LMS API?
Instructure publishes Canvas API documentation but not a single canonical OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Canvas LMS API via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the Canvas LMS API use?
Canvas uses HTTP bearer authentication with a Canvas-issued access token scoped to the user that minted it. Tokens can be generated from a user's profile settings or via the Canvas OAuth2 developer flow. Through Jentic the token is stored in MAXsystem and injected per call.
Can I list all courses on my Canvas instance with this API?
Yes. Call GET /courses on your instance's /api/v1 base URL. The response includes course IDs that you can pass to GET /courses/{course_id} to retrieve full detail for each course.
What are the rate limits for the Canvas LMS API?
Canvas applies a per-token request quota with a leaky-bucket algorithm. The quota and refill rate vary by instance and are returned in the X-Request-Cost header. The OpenAPI spec does not declare numeric limits because they are tenant-specific. Build with retry-on-429 and monitor the cost header.
How do I look up a Canvas course through Jentic?
Run pip install jentic, then with the async client search for 'get a Canvas course by ID', load the schema for GET /courses/{course_id}, and execute with the course_id parameter. Jentic returns the parsed JSON response.
Does this Canvas API spec cover assignments and submissions?
No. This curated spec covers the two course endpoints (list and retrieve). Assignments, submissions, users, and enrolments are not in this spec — they are part of the broader Canvas REST API and would need to be added separately.