Modules API
Modules are collections of learning materials useful for organizing courses and optionally providing a linear flow through them. Module items can be accessed linearly or sequentially depending on module configuration. Items can be unlocked by various criteria such as reading a page or achieving a minimum score on a quiz. Modules themselves can be unlocked by the completion of other Modules.
A Module object looks like:
{ // the unique identifier for the module id: 123, // the state of the module: active, deleted workflow_state: active, // the position of this module in the course (1-based) position: 2, // the name of this module name: "Imaginary Numbers and You", // (Optional) the date this module will unlock unlock_at: "2012-12-31T06:00:00-06:00", // Whether module items must be unlocked in order require_sequential_progress: true, // IDs of Modules that must be completed before this one is unlocked prerequisite_module_ids: [121, 122], // The state of this Module for the calling user // one of 'locked', 'unlocked', 'started', 'completed' // (Optional; present only if the caller is a student) state: 'started', // the date the calling user completed the module // (Optional; present only if the caller is a student) completed_at: nil }
A Module Item object looks like:
{ // the unique identifier for the module item id: 768, // the position of this item in the module (1-based) position: 1, // the title of this item title: "Square Roots: Irrational numbers or boxy vegetables?", // 0-based indent level; module items may be indented to show a hierarchy indent: 0, // the type of object referred to // one of "File", "Page", "Discussion", "Assignment", "Quiz", "SubHeader", // "ExternalUrl", "ExternalTool" type: "Assignment", // link to the item in Canvas html_url: "https://canvas.example.edu/courses/222/modules/items/768", // (Optional) link to the Canvas API object, if applicable url: "https://canvas.example.edu/api/v1/courses/222/assignments/987", // Completion requirement for this module item completion_requirement: { // one of "must_view", "must_submit", "must_contribute", "min_score" type: "min_score", // minimum score required to complete (only present when type == 'min_score') min_score: 10, // whether the calling user has met this requirement // (Optional; present only if the caller is a student) completed: true } }
List modules ContextModulesApiController#index
GET /api/v1/courses/:course_id/modules
List the modules in a course
Example Request:
curl -H 'Authorization: Bearer <token>' \ https://<canvas>/api/v1/courses/222/modules
Show module ContextModulesApiController#show
GET /api/v1/courses/:course_id/modules/:id
Get information about a single module
Example Request:
curl -H 'Authorization: Bearer <token>' \ https://<canvas>/api/v1/courses/222/modules/123
List module items ContextModulesApiController#list_module_items
GET /api/v1/courses/:course_id/modules/:module_id/items
List the items in a module
Example Request:
curl -H 'Authorization: Bearer <token>' \ https://<canvas>/api/v1/courses/222/modules/123/items
Show module item ContextModulesApiController#show_module_item
GET /api/v1/courses/:course_id/modules/:module_id/items/:id
Get information about a single module item
Example Request:
curl -H 'Authorization: Bearer <token>' \ https://<canvas>/api/v1/courses/222/modules/123/items/768