Importing the generated package into Canvas

QuestionBankToolkit creates a QTI 1.2 ZIP package that can be imported as a Canvas assessment or question repository. Canvas labels and available options can differ by institution because administrators control quiz-engine and migration features. The procedures below were checked against the official Instructure guides on October 19, 2026. A two-question, answer-neutral package using the documented Common Cartridge structure imported successfully into Canvas on October 22, 2026.

Always upload the generated COURSE_BANK_ID_QTI12.zip file without extracting or modifying it. Keep the instructor review open so you can compare the imported result with the source bank.

Classic Quizzes and question banks

Use Canvas’s course-level import tool for Classic Quizzes.

  1. Open the destination course and select Settings.

  2. Select Import Course Content.

  3. Choose QTI .zip file as the content type.

  4. Select or drag the generated ZIP file into the source field.

  5. Leave Convert content to New Quizzes unselected when the intended destination is Classic Quizzes.

  6. Select an existing default question bank or choose the option to create a new question bank.

  7. Use the overwrite-matching-IDs option only when replacing previously imported assessment content is intentional.

  8. Add the import to the queue and wait for Canvas to report completion.

  9. Open Quizzes and the selected question bank to review the imported content.

The current Canvas course-import procedure and its overwrite behavior are documented in Instructure’s How do I import quizzes from QTI packages? guide.

A new New Quiz

Canvas imports a QTI package into a newly created New Quiz from that quiz’s Build page. Instructure states that a QTI import creates a new quiz and cannot update an existing quiz.

  1. Open Quizzes in the destination course and add a quiz.

  2. Select New Quizzes when Canvas asks for the quiz engine.

  3. Enter the assignment details, save them, and open Build.

  4. On the empty Build page, open the options menu and select Import Content.

  5. Select or drag the generated ZIP file into the import window.

  6. Start the import and wait for the status bar to finish.

  7. Review the imported questions before publishing the quiz.

See Instructure’s How do I import a quiz from a QTI package in New Quizzes? guide for the current interface and limitations.

A New Quizzes item bank

Use this route when the questions should be reusable through a New Quizzes item bank. Canvas permits QTI import into a new item bank or an existing empty item bank.

  1. Open the New Quizzes Manage Item Banks page available to your account or course.

  2. Create a bank, give it a recognizable name, and share it with the current course when appropriate.

  3. Open the new or empty bank.

  4. Open its options menu and select Import Content.

  5. Select or drag the generated ZIP file into the import window.

  6. Start the import and wait for the status bar to finish.

  7. Open the imported items and review their details.

The import option is unavailable after an item bank contains questions. Instructure also warns that opening item banks from some New Quiz interfaces does not expose the import action, so use the Manage Item Banks route. See How do I import questions from a QTI package into an item bank in New Quizzes? for the current procedure.

Post-import review

Automated QTI verification does not replace review in the institution’s Canvas environment. Before students receive the assessment, confirm all of the following:

  • The imported question count matches validation.json and the CLI build summary.

  • Plain text, Unicode characters, and any authored HTML render as intended.

  • Every choice appears, the correct answer is selected, and choice shuffling has the intended setting.

  • Point values and general feedback match instructor_review.md.

  • The assessment or item-bank title is recognizable and the questions are in the intended destination.

  • A quiz preview behaves correctly before the quiz is published or assigned.

Record any Canvas-specific differences with the Canvas environment, quiz engine, and review date.

On October 22, 2026, Canvas imported both questions from the toolkit-generated regression package. The resulting Canvas export passed coursebanks check-qti and imported back into valid YAML. It retained the stems, choices, correct answers, explanations, HTML and Unicode content, and effective shuffle settings. Canvas regenerated question identifiers and order, converted the plain-text question to escaped HTML, omitted toolkit authoring metadata, and left question-point metadata blank, causing the documented importer defaults to apply.