Quizzes API
A Quiz object looks like:
{ // the ID of the quiz id: 5, // the title of the quiz title: "Hamlet Act 3 Quiz", // the HTTP/HTTPS URL to the quiz html_url: "http://canvas.example.edu/courses/1/quizzes/2", // a url suitable for loading the quiz in a mobile webview. it will // persiste the headless session and, for quizzes in public courses, will // force the user to login mobile_url: "http://canvas.example.edu/courses/1/quizzes/2?persist_healdess=1&force_user=1", // the description of the quiz description: "This is a quiz on Act 3 of Hamlet", // type of quiz // possible values: "practice_quiz", "assignment", "graded_survey", "survey" quiz_type: "assignment", // the ID of the quiz's assignment group: assignment_group_id: 3, // quiz time limit in minutes time_limit: 5, // shuffle answers for students? shuffle_answers: false, // let students see their quiz responses? // possible values: null, "always", "until_after_last_attempt" hide_results: "always", // show which answers were correct when results are shown? // only valid if hide_results=null show_correct_answers: true, // which quiz score to keep (only if allowed_attempts != 1) // possible values: "keep_highest", "keep_latest" scoring_policy: "keep_highest", // how many times a student can take the quiz // -1 = unlimited attempts allowed_attempts: 3, // show one question at a time? one_question_at_a_time: false, // the number of questions in the quiz question_count: 12, // The total point value given to the quiz points_possible: 20, // lock questions after answering? // only valid if one_question_at_a_time=true cant_go_back: false, // access code to restrict quiz access access_code: "2beornot2be", // IP address or range that quiz access is limited to ip_filter: "123.123.123.123", // when the quiz is due due_at: "2013-01-23T23:59:00-07:00", // when to lock the quiz lock_at: null, // when to unlock the quiz unlock_at: "2013-01-21T23:59:00-07:00", // whether the quiz has a published or unpublished draft state. published: true, // Whether or not this is locked for the user. locked_for_user: false, // (Optional) Information for the user about the lock. Present when locked_for_user is true. lock_info: { // Asset string for the object causing the lock asset_string: "quiz_5", // (Optional) Time at which this was/will be unlocked. unlock_at: "2013-01-01T00:00:00-06:00", // (Optional) Time at which this was/will be locked. lock_at: "2013-02-01T00:00:00-06:00", // (Optional) Context module causing the lock. context_module: { ... } }, // (Optional) An explanation of why this is locked for the user. Present when locked_for_user is true. lock_explanation: "This quiz is locked until September 1 at 12:00am" }
List quizzes in a course QuizzesApiController#index
GET /api/v1/courses/:course_id/quizzes
Returns the list of Quizzes in this course.
Request Parameters:
-
search_term
(optional) The partial title of the quizzes to match and return.
Example Request:
curl https://<canvas>/api/v1/courses/<course_id>/quizzes \ -H 'Authorization: Bearer <token>'
Get a single quiz QuizzesApiController#show
GET /api/v1/courses/:course_id/quizzes/:id
Returns the quiz with the given id.
Returns a QuizCreate a quiz QuizzesApiController#create
POST /api/v1/courses/:course_id/quizzes
Create a new quiz for this course.
Request Parameters:
-
quiz[title]
- String
-
The quiz title.
-
quiz[description]
- String
-
A description of the quiz.
-
quiz[quiz_type]
- "practice_quiz"|"assignment"|"graded_survey"|"survey"
-
The type of quiz.
-
quiz[assignment_group_id]
- Integer
-
The assignment group id to put the assignment in. Defaults to the top assignment group in the course. Only valid if the quiz is graded, i.e. if quiz_type is "assignment" or "graded_survey"
-
quiz[time_limit]
- Integer
-
Time limit to take this quiz, in minutes. Set to null for no time limit. Defaults to null.
-
quiz[shuffle_answers]
- Boolean
-
If true, quiz answers for multiple choice questions will be randomized for each student. Defaults to false.
-
quiz[hide_results]
- null|"always"|"until_after_last_attempt"
-
Dictates whether or not quiz results are hidden from students. If null, students can see their results after any attempt. If "always", students can never see their results. If "until_after_last_attempt", students can only see results after their last attempt. (Only valid if allowed_attempts > 1) Defaults to null.
-
quiz[show_correct_answers]
- Boolean
-
Only valid if hide_results=null If false, hides correct answers from students when quiz results are viewed. Defaults to true.
-
quiz[allowed_attempts]
- Integer
-
Number of times a student is allowed to take a quiz. Set to -1 for unlimited attempts. Defaults to 1.
-
quiz[scoring_policy]
- "keep_highest"|"keep_latest"
-
Required and only valid if allowed_attempts > 1. Scoring policy for a quiz that students can take multiple times. Defaults to "keep_highest".
-
quiz[one_question_at_a_time]
- Boolean
-
If true, shows quiz to student one question at a time. Defaults to false.
-
quiz[cant_go_back]
- Boolean
-
Only valid if one_question_at_a_time=true If true, questions are locked after answering. Defaults to false.
-
quiz[access_code]
- Optional,String
-
Restricts access to the quiz with a password. For no access code restriction, set to null. Defaults to null.
-
quiz[ip_filter]
- Optional,String
-
Restricts access to the quiz to computers in a specified IP range. Filters can be a comma-separated list of addresses, or an address followed by a mask
Examples:
"192.168.217.1" "192.168.217.1/24" "192.168.217.1/255.255.255.0"
For no IP filter restriction, set to null. Defaults to null.
-
quiz[due_at]
- Timestamp
-
The day/time the quiz is due. Accepts times in ISO 8601 format, e.g. 2011-10-21T18:48Z.
-
quiz[lock_at]
- Timestamp
-
The day/time the quiz is locked for students. Accepts times in ISO 8601 format, e.g. 2011-10-21T18:48Z.
-
quiz[unlock_at]
- Timestamp
-
The day/time the quiz is unlocked for students. Accepts times in ISO 8601 format, e.g. 2011-10-21T18:48Z.
-
quiz[published]
- Boolean
-
Whether the quiz should have a draft state of published or unpublished. NOTE: If students have started taking the quiz, or there are any submissions for the quiz, you may not unpublish a quiz and will recieve an error.
Edit a quiz QuizzesApiController#update
PUT /api/v1/courses/:course_id/quizzes/:id
Modify an existing quiz. See the documentation for quiz creation.
Additional arguments:
Request Parameters:
-
quiz[notify_of_update]
- Boolean
-
If true, notifies users that the quiz has changed. Defaults to true