Canvas LMS API for accessing courses, assignments, grades, discussions, and calendar across university and K-12 institutions. Best for student productivity workflows — checking due dates, viewing grades, reading course content, and submitting assignments. Institution-specific base URLs (.instructure.com or canvas. .edu).
5 example endpoints available through Lava’s AI Gateway. See the Canvas LMS API docs for full documentation.
This provider requires your own credentials — connect your API key or OAuth account before use.
Endpoints
List enrolled courses
GET https://<canvas>.instructure.com/api/v1/courses — Free
const data = await lava . gateway ( 'https://<canvas>.instructure.com/api/v1/courses' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ccanvas%3E.instructure.com%2Fapi%2Fv1%2Fcourses" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Unified planner feed (assignments, quizzes, discussions with due dates)
GET https://<canvas>.instructure.com/api/v1/planner/items — Free
const data = await lava . gateway ( 'https://<canvas>.instructure.com/api/v1/planner/items' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ccanvas%3E.instructure.com%2Fapi%2Fv1%2Fplanner%2Fitems" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Submit an assignment
POST https://<canvas>.instructure.com/api/v1/courses/{course_id}/assignments/{assignment_id}/submissions — Free
const data = await lava . gateway ( 'https://<canvas>.instructure.com/api/v1/courses/{course_id}/assignments/{assignment_id}/submissions' , {
body: {
"submission[submission_type]" : "online_text_entry" ,
"submission[body]" : "My submission text"
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ccanvas%3E.instructure.com%2Fapi%2Fv1%2Fcourses%2F%7Bcourse_id%7D%2Fassignments%2F%7Bassignment_id%7D%2Fsubmissions" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"submission[submission_type]":"online_text_entry","submission[body]":"My submission text"}'
Update planner item (mark complete)
PUT https://<canvas>.instructure.com/api/v1/planner/items/{id} — Free
const data = await lava . gateway ( 'https://<canvas>.instructure.com/api/v1/planner/items/{id}' , { method: 'PUT' });
curl -X PUT "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ccanvas%3E.instructure.com%2Fapi%2Fv1%2Fplanner%2Fitems%2F%7Bid%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json"
Delete a personal calendar event
DELETE https://<canvas>.instructure.com/api/v1/calendar_events/{id} — Free
const data = await lava . gateway ( 'https://<canvas>.instructure.com/api/v1/calendar_events/{id}' , { method: 'DELETE' });
curl -X DELETE "https://api.lava.so/v1/forward?u=https%3A%2F%2F%3Ccanvas%3E.instructure.com%2Fapi%2Fv1%2Fcalendar_events%2F%7Bid%7D" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json"
Next Steps
All Providers Browse all supported AI providers
Forward Proxy Learn how to construct proxy URLs and authenticate requests