For Agents
List courses and read course detail from a Canvas LMS instance to power reporting, sync, and learning-analytics automations.
Get started with Canvas LMS API in minutes using your preferred integration method.
# Add to your MCP client config (Claude Desktop, Cursor, Windsurf)
{
"jentic": {
"url": "https://api.jentic.com/mcp",
"auth": "oauth"
}
}
# Then ask your agent:
"list courses on a Canvas LMS instance"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Canvas LMS API 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
Target any Canvas instance by templating the {instance} server variable for cloud or on-premise deployments
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 document for Canvas LMS API, keeping it validated and agent-ready.
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.
Anchor downstream sync into a data warehouse, BI tool, or LRS using stable course identifiers
Patterns agents use Canvas LMS API 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.
Schoology
Schoology is a competing K-12 and higher-ed LMS with a comparable course-and-enrolment API
Choose Schoology when the institution standardised on Schoology rather than Canvas; the agent flow is similar but the auth and base URL differ.
Moodle
Moodle is the open-source LMS alternative to Canvas with a web services API
Choose Moodle when the institution self-hosts an open-source LMS rather than running Canvas Cloud.
Google Classroom
Google Classroom often runs alongside Canvas for K-12 day-to-day course flow while Canvas handles formal record-keeping
Use Classroom for daily lesson distribution and Canvas for the registrar-of-record course catalog.
Specific to using Canvas LMS API 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.