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

# PUT /api/quiz/exercises/{exerciseId}/submissions/exam

`PUT /api/quiz/exercises/{exerciseId}/submissions/exam`

## Path parameters

- `exerciseId` integer, required

## Request body

- QuizSubmissionFromLiveClient
  - `id` integer
  - `submittedAnswers` SubmittedAnswerFromLiveClient[]
    - union
      - object
        - `quizQuestion` EntityIdRef
          - `id` integer
        - `selectedOptions` EntityIdRef[]
          - `id` integer
        - `type` 'multiple-choice', required
      - object
        - `quizQuestion` EntityIdRef
          - `id` integer
        - `mappings` DragAndDropMappingFromLiveClient[]
          - `dragItem` EntityIdRef
            - `id` integer
          - `dropLocation` EntityIdRef
            - `id` integer
        - `type` 'drag-and-drop', required
      - object
        - `quizQuestion` EntityIdRef
          - `id` integer
        - `submittedTexts` ShortAnswerSubmittedTextFromLiveClient[]
          - `text` string
          - `spot` EntityIdRef
            - `id` integer
        - `type` 'short-answer', required

## Response `200`

OK

- QuizSubmissionBeforeEvaluation
  - `id` integer
  - `submissionExerciseType` string
  - `submitted` boolean
  - `type` 'MANUAL' | 'TIMEOUT' | 'TEST' | 'OTHER' | 'INSTRUCTOR' | 'EXTERNAL'
  - `submissionDate` string, date-time
  - `submittedAnswers` SubmittedAnswerBeforeEvaluation[]
    - union
      - object
        - `id` integer
        - `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` 'multiple-choice', required
            - `answerOptions` AnswerOptionWithoutSolution[]
              - …
            - `singleChoice` boolean
            - `backgroundFilePath` string
            - `dropLocations` DropLocation[]
              - …
            - `dragItems` DragItem[]
              - …
            - `spots` ShortAnswerSpot[]
              - …
            - `solutions` ShortAnswerSolution[]
              - …
            - `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` 'drag-and-drop', required
            - `backgroundFilePath` string
            - `dropLocations` DropLocation[]
              - …
            - `dragItems` DragItem[]
              - …
            - `answerOptions` AnswerOptionWithoutSolution[]
              - …
            - `singleChoice` boolean
            - `spots` ShortAnswerSpot[]
              - …
            - `solutions` ShortAnswerSolution[]
              - …
            - `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` 'short-answer', required
            - `spots` ShortAnswerSpot[]
              - …
            - `solutions` ShortAnswerSolution[]
              - …
            - `similarityValue` integer
            - `matchLetterCase` boolean
            - `answerOptions` AnswerOptionWithoutSolution[]
              - …
            - `singleChoice` boolean
            - `backgroundFilePath` string
            - `dropLocations` DropLocation[]
              - …
            - `dragItems` DragItem[]
              - …
        - `selectedOptions` AnswerOptionWithoutSolution[]
          - `id` integer
          - `text` string
          - `hint` string
          - `invalid` boolean
        - `type` 'multiple-choice', required
        - `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
      - object
        - `id` integer
        - `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` 'multiple-choice', required
            - `answerOptions` AnswerOptionWithoutSolution[]
              - …
            - `singleChoice` boolean
            - `backgroundFilePath` string
            - `dropLocations` DropLocation[]
              - …
            - `dragItems` DragItem[]
              - …
            - `spots` ShortAnswerSpot[]
              - …
            - `solutions` ShortAnswerSolution[]
              - …
            - `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` 'drag-and-drop', required
            - `backgroundFilePath` string
            - `dropLocations` DropLocation[]
              - …
            - `dragItems` DragItem[]
              - …
            - `answerOptions` AnswerOptionWithoutSolution[]
              - …
            - `singleChoice` boolean
            - `spots` ShortAnswerSpot[]
              - …
            - `solutions` ShortAnswerSolution[]
              - …
            - `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` 'short-answer', required
            - `spots` ShortAnswerSpot[]
              - …
            - `solutions` ShortAnswerSolution[]
              - …
            - `similarityValue` integer
            - `matchLetterCase` boolean
            - `answerOptions` AnswerOptionWithoutSolution[]
              - …
            - `singleChoice` boolean
            - `backgroundFilePath` string
            - `dropLocations` DropLocation[]
              - …
            - `dragItems` DragItem[]
              - …
        - `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
        - `type` 'drag-and-drop', required
        - `selectedOptions` AnswerOptionWithoutSolution[]
          - `id` integer
          - `text` string
          - `hint` string
          - `invalid` boolean
        - `submittedTexts` ShortAnswerSubmittedText[]
          - `id` integer
          - `text` string
          - `isCorrect` boolean
          - `spot` ShortAnswerSpot
            - `id` integer
            - `spotNr` integer
            - `width` integer
            - `invalid` boolean
      - object
        - `id` integer
        - `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` 'multiple-choice', required
            - `answerOptions` AnswerOptionWithoutSolution[]
              - …
            - `singleChoice` boolean
            - `backgroundFilePath` string
            - `dropLocations` DropLocation[]
              - …
            - `dragItems` DragItem[]
              - …
            - `spots` ShortAnswerSpot[]
              - …
            - `solutions` ShortAnswerSolution[]
              - …
            - `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` 'drag-and-drop', required
            - `backgroundFilePath` string
            - `dropLocations` DropLocation[]
              - …
            - `dragItems` DragItem[]
              - …
            - `answerOptions` AnswerOptionWithoutSolution[]
              - …
            - `singleChoice` boolean
            - `spots` ShortAnswerSpot[]
              - …
            - `solutions` ShortAnswerSolution[]
              - …
            - `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` 'short-answer', required
            - `spots` ShortAnswerSpot[]
              - …
            - `solutions` ShortAnswerSolution[]
              - …
            - `similarityValue` integer
            - `matchLetterCase` boolean
            - `answerOptions` AnswerOptionWithoutSolution[]
              - …
            - `singleChoice` boolean
            - `backgroundFilePath` string
            - `dropLocations` DropLocation[]
              - …
            - `dragItems` DragItem[]
              - …
        - `submittedTexts` ShortAnswerSubmittedText[]
          - `id` integer
          - `text` string
          - `isCorrect` boolean
          - `spot` ShortAnswerSpot
            - `id` integer
            - `spotNr` integer
            - `width` integer
            - `invalid` boolean
        - `type` 'short-answer', required
        - `selectedOptions` AnswerOptionWithoutSolution[]
          - `id` integer
          - `text` string
          - `hint` string
          - `invalid` boolean
        - `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

## 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/exam/put.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)
