---
title: "POST /api/quiz/exercises/{exerciseId}/submissions/practice"
method: POST
path: "/api/quiz/exercises/{exerciseId}/submissions/practice"
tags: ["quiz-submission"]
---

# POST /api/quiz/exercises/{exerciseId}/submissions/practice

`POST /api/quiz/exercises/{exerciseId}/submissions/practice`

## Path parameters

- `exerciseId` integer, required

## Request body

- QuizSubmissionFromStudent
  - `submittedAnswers` SubmittedAnswerFromStudent[], required
    - union
      - object
        - `questionId` integer, required
        - `selectedOptions` integer[], required
        - `type` 'multiple-choice', required
      - object
        - `questionId` integer, required
        - `mappings` DragAndDropMappingReEvaluate[], required
          - `dragItemId` integer, required
          - `dropLocationId` integer, required
        - `type` 'drag-and-drop', required
      - object
        - `questionId` integer, required
        - `submittedTexts` ShortAnswerSubmittedTextFromStudent[], required
          - `text` string, required
          - `spotId` integer, required
        - `type` 'short-answer', required

## Response `200`

OK

- ResultAfterEvaluationWithSubmission
  - `id` integer
  - `completionDate` string, date-time
  - `successful` boolean
  - `score` number, double
  - `rated` boolean
  - `assessmentType` 'AUTOMATIC' | 'SEMI_AUTOMATIC' | 'MANUAL' | 'AUTOMATIC_ATHENA'
  - `submission` QuizSubmissionForResult
    - `id` integer
    - `submissionExerciseType` string
    - `submitted` boolean
    - `type` 'MANUAL' | 'TIMEOUT' | 'TEST' | 'OTHER' | 'INSTRUCTOR' | 'EXTERNAL'
    - `submissionDate` string, date-time
    - `scoreInPoints` number, double
    - `submittedAnswers` SubmittedAnswerAfterEvaluation[]
      - `id` integer
      - `scoreInPoints` number, double
      - `quizQuestion` union
        - object
          - `id` integer
          - `title` string
          - `text` string
          - `hint` string
          - `points` number, double
          - `scoringType` 'ALL_OR_NOTHING' | 'PROPORTIONAL_WITH_PENALTY' | 'PROPORTIONAL_WITHOUT_PENALTY'
          - `randomizeOrder` boolean
          - `invalid` boolean
          - `type` string
          - `explanation` string
          - `answerOptions` AnswerOptionWithSolution[]
            - `id` integer
            - `text` string
            - `hint` string
            - `invalid` boolean
            - `explanation` string
            - `isCorrect` boolean
          - `singleChoice` boolean
          - `backgroundFilePath` string
          - `dropLocations` DropLocation[]
            - `id` integer
            - `posX` number, double
            - `posY` number, double
            - `width` number, double
            - `height` number, double
            - `invalid` boolean
          - `dragItems` DragItem[]
            - `id` integer
            - `pictureFilePath` string
            - `text` string
            - `invalid` boolean
          - `correctMappings` ShortAnswerMapping[]
            - `id` integer
            - `shortAnswerSpotIndex` integer
            - `shortAnswerSolutionIndex` integer
            - `invalid` boolean
            - `solution` ShortAnswerSolution
              - …
            - `spot` ShortAnswerSpot
              - …
          - `spots` ShortAnswerSpot[]
            - `id` integer
            - `spotNr` integer
            - `width` integer
            - `invalid` boolean
          - `solutions` ShortAnswerSolution[]
            - `id` integer
            - `text` string
            - `invalid` boolean
          - `similarityValue` integer
          - `matchLetterCase` boolean
        - object
          - `id` integer
          - `title` string
          - `text` string
          - `hint` string
          - `points` number, double
          - `scoringType` 'ALL_OR_NOTHING' | 'PROPORTIONAL_WITH_PENALTY' | 'PROPORTIONAL_WITHOUT_PENALTY'
          - `randomizeOrder` boolean
          - `invalid` boolean
          - `type` string
          - `explanation` string
          - `backgroundFilePath` string
          - `dropLocations` DropLocation[]
            - `id` integer
            - `posX` number, double
            - `posY` number, double
            - `width` number, double
            - `height` number, double
            - `invalid` boolean
          - `dragItems` DragItem[]
            - `id` integer
            - `pictureFilePath` string
            - `text` string
            - `invalid` boolean
          - `correctMappings` object[]
            - `id` integer
            - `dragItemIndex` integer
            - `dropLocationIndex` integer
            - `invalid` boolean
            - `dragItem` DragItem
              - …
            - `dropLocation` DropLocation
              - …
            - `shortAnswerSpotIndex` integer
            - `shortAnswerSolutionIndex` integer
            - `solution` ShortAnswerSolution
              - …
            - `spot` ShortAnswerSpot
              - …
          - `answerOptions` AnswerOptionWithSolution[]
            - `id` integer
            - `text` string
            - `hint` string
            - `invalid` boolean
            - `explanation` string
            - `isCorrect` boolean
          - `singleChoice` boolean
          - `spots` ShortAnswerSpot[]
            - `id` integer
            - `spotNr` integer
            - `width` integer
            - `invalid` boolean
          - `solutions` ShortAnswerSolution[]
            - `id` integer
            - `text` string
            - `invalid` boolean
          - `similarityValue` integer
          - `matchLetterCase` boolean
        - object
          - `id` integer
          - `title` string
          - `text` string
          - `hint` string
          - `points` number, double
          - `scoringType` 'ALL_OR_NOTHING' | 'PROPORTIONAL_WITH_PENALTY' | 'PROPORTIONAL_WITHOUT_PENALTY'
          - `randomizeOrder` boolean
          - `invalid` boolean
          - `type` string
          - `explanation` string
          - `spots` ShortAnswerSpot[]
            - `id` integer
            - `spotNr` integer
            - `width` integer
            - `invalid` boolean
          - `solutions` ShortAnswerSolution[]
            - `id` integer
            - `text` string
            - `invalid` boolean
          - `similarityValue` integer
          - `matchLetterCase` boolean
          - `correctMappings` ShortAnswerMapping[]
            - `id` integer
            - `shortAnswerSpotIndex` integer
            - `shortAnswerSolutionIndex` integer
            - `invalid` boolean
            - `solution` ShortAnswerSolution
              - …
            - `spot` ShortAnswerSpot
              - …
          - `answerOptions` AnswerOptionWithSolution[]
            - `id` integer
            - `text` string
            - `hint` string
            - `invalid` boolean
            - `explanation` string
            - `isCorrect` boolean
          - `singleChoice` boolean
          - `backgroundFilePath` string
          - `dropLocations` DropLocation[]
            - `id` integer
            - `posX` number, double
            - `posY` number, double
            - `width` number, double
            - `height` number, double
            - `invalid` boolean
          - `dragItems` DragItem[]
            - `id` integer
            - `pictureFilePath` string
            - `text` string
            - `invalid` boolean
      - `selectedOptions` AnswerOptionWithSolution[]
        - `id` integer
        - `text` string
        - `hint` string
        - `invalid` boolean
        - `explanation` string
        - `isCorrect` boolean
      - `type` string
      - `mappings` DragAndDropMapping[]
        - `id` integer
        - `dragItemIndex` integer
        - `dropLocationIndex` integer
        - `invalid` boolean
        - `dragItem` DragItem
          - `id` integer
          - `pictureFilePath` string
          - `text` string
          - `invalid` boolean
        - `dropLocation` DropLocation
          - `id` integer
          - `posX` number, double
          - `posY` number, double
          - `width` number, double
          - `height` number, double
          - `invalid` boolean
      - `submittedTexts` ShortAnswerSubmittedText[]
        - `id` integer
        - `text` string
        - `isCorrect` boolean
        - `spot` ShortAnswerSpot
          - `id` integer
          - `spotNr` integer
          - `width` integer
          - `invalid` boolean
    - `results` ResultAfterEvaluation[]
      - `id` integer
      - `completionDate` string, date-time
      - `successful` boolean
      - `score` number, double
      - `rated` boolean
      - `assessmentType` 'AUTOMATIC' | 'SEMI_AUTOMATIC' | 'MANUAL' | 'AUTOMATIC_ATHENA'
    - `participation` StudentQuizParticipationWithSolutions
      - `id` integer
      - `type` string
      - `initializationState` 'UNINITIALIZED' | 'REPO_COPIED' | 'REPO_CONFIGURED' | 'INACTIVE' | 'BUILD_PLAN_COPIED' | 'BUILD_PLAN_CONFIGURED' | 'INITIALIZED' | 'FINISHED'
      - `initializationDate` string, date-time
      - `student` DomainObject
        - `id` integer
      - `exercise` QuizExerciseWithSolution
        - `id` integer
        - `title` string
        - `shortName` string
        - `releaseDate` string, date-time
        - `startDate` string, date-time
        - `dueDate` string, date-time
        - `assessmentDueDate` string, date-time
        - `difficulty` 'EASY' | 'MEDIUM' | 'HARD'
        - `visibleToStudents` boolean
        - `course` CourseForQuizExercise
          - `id` integer
          - `title` string
          - `description` string
          - `shortName` string
          - `studentGroupName` string
          - `teachingAssistantGroupName` string
          - `editorGroupName` string
          - `instructorGroupName` string
          - `startDate` string, date-time
          - `endDate` string, date-time
          - `enrollmentStartDate` string, date-time
          - `enrollmentEndDate` string, date-time
          - `unenrollmentEndDate` string, date-time
          - `semester` string
          - `testCourse` boolean
          - `language` 'ENGLISH' | 'GERMAN'
          - `defaultProgrammingLanguage` 'EMPTY' | 'JAVA' | 'PYTHON' | 'C' | 'HASKELL' | 'KOTLIN' | 'VHDL' | 'ASSEMBLER' | 'SWIFT' | 'OCAML' | 'JAVASCRIPT' | 'C_SHARP' | 'C_PLUS_PLUS' | 'SQL' | 'R' | 'TYPESCRIPT' | 'RUST' | 'GO' | 'MATLAB' | 'BASH' | 'RUBY' | 'POWERSHELL' | 'ADA' | 'DART' | 'PHP'
          - `onlineCourse` boolean
          - `courseInformationSharingConfiguration` 'DISABLED' | 'COMMUNICATION_AND_MESSAGING' | 'COMMUNICATION_ONLY'
          - `maxComplaints` integer
          - `maxTeamComplaints` integer
          - `maxComplaintTimeDays` integer
          - `maxRequestMoreFeedbackTimeDays` integer
          - `maxComplaintTextLimit` integer
          - `maxComplaintResponseTextLimit` integer
          - `complaintsEnabled` boolean
          - `requestMoreFeedbackEnabled` boolean
          - `accuracyOfScores` integer
        - `type` string
        - `randomizeQuestionOrder` boolean
        - `allowedNumberOfAttempts` integer
        - `remainingNumberOfAttempts` integer
        - `quizMode` 'SYNCHRONIZED' | 'BATCHED' | 'INDIVIDUAL'
        - `duration` integer
        - `quizBatches` QuizBatch[]
          - `id` integer
          - `startTime` string, date-time
          - `started` boolean
          - `ended` boolean
        - `quizStarted` boolean
        - `quizEnded` boolean
        - `includedInOverallScore` 'INCLUDED_COMPLETELY' | 'INCLUDED_AS_BONUS' | 'NOT_INCLUDED'
        - `mode` 'INDIVIDUAL' | 'TEAM'
        - `maxPoints` number, double
        - `bonusPoints` number, double
        - `exerciseVariantGroup` ExerciseVariantGroupReference
          - `id` integer
          - `title` string
          - `maxPoints` number, double
          - `releaseDate` string, date-time
          - `startDate` string, date-time
          - `dueDate` string, date-time
          - `assessmentDueDate` string, date-time
          - `exampleSolutionPublicationDate` string, date-time
        - `quizQuestions` QuizQuestionWithSolution[]
          - union
            - object
              - …
            - object
              - …
            - object
              - …
      - `submissions` QuizSubmissionAfterEvaluation[]
        - `id` integer
        - `submissionExerciseType` string
        - `submitted` boolean
        - `type` 'MANUAL' | 'TIMEOUT' | 'TEST' | 'OTHER' | 'INSTRUCTOR' | 'EXTERNAL'
        - `submissionDate` string, date-time
        - `scoreInPoints` number, double
        - `submittedAnswers` SubmittedAnswerAfterEvaluation[]
          - `id` integer
          - `scoreInPoints` number, double
          - `quizQuestion` union
            - object
              - …
            - object
              - …
            - object
              - …
          - `selectedOptions` AnswerOptionWithSolution[]
            - `id` integer
            - `text` string
            - `hint` string
            - `invalid` boolean
            - `explanation` string
            - `isCorrect` boolean
          - `type` string
          - `mappings` DragAndDropMapping[]
            - `id` integer
            - `dragItemIndex` integer
            - `dropLocationIndex` integer
            - `invalid` boolean
            - `dragItem` DragItem
              - …
            - `dropLocation` DropLocation
              - …
          - `submittedTexts` ShortAnswerSubmittedText[]
            - `id` integer
            - `text` string
            - `isCorrect` boolean
            - `spot` ShortAnswerSpot
              - …
        - `results` ResultAfterEvaluation[]
          - `id` integer
          - `completionDate` string, date-time
          - `successful` boolean
          - `score` number, double
          - `rated` boolean
          - `assessmentType` 'AUTOMATIC' | 'SEMI_AUTOMATIC' | 'MANUAL' | 'AUTOMATIC_ATHENA'
      - `quizQuestionsType` 'after-quiz-end', required

## Changes

- **2026-08-20** `73484f9485e3` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/ls1intum/apis/artemis-application-server-api/changes/api/quiz/exercises/:exerciseId/submissions/practice/post.md)

---

[API](https://skmtc.dev/ls1intum/apis/artemis-application-server-api.md) · [All operations](https://skmtc.dev/ls1intum/apis/artemis-application-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ls1intum/artemis-application-server-api/revisions/cecac5f6c8e5/schema)
