---
title: "GET /api/hyperion/variant-jobs/{jobId}"
method: GET
path: "/api/hyperion/variant-jobs/{jobId}"
tags: ["hyperion-exercise-variant"]
---

# GET /api/hyperion/variant-jobs/{jobId}

`GET /api/hyperion/variant-jobs/{jobId}`

## Path parameters

- `jobId` string, required

## Response `200`

OK

- VariantJobDetail
  - `job` VariantJob
    - `jobId` string
    - `sourceExerciseId` integer
    - `courseId` integer
    - `sourceExerciseTitle` string
    - `exerciseType` 'text' | 'programming' | 'modeling' | 'file-upload' | 'quiz'
    - `phase` 'ANALYZING' | 'PLANNING' | 'PROVISIONING' | 'TRANSFORMING' | 'VERIFYING' | 'REPAIRING' | 'FINALIZING' | 'COMPLETED' | 'DRAFT_WITH_WARNINGS' | 'FAILED' | 'CANCELLED'
    - `failedInPhase` 'ANALYZING' | 'PLANNING' | 'PROVISIONING' | 'TRANSFORMING' | 'VERIFYING' | 'REPAIRING' | 'FINALIZING' | 'COMPLETED' | 'DRAFT_WITH_WARNINGS' | 'FAILED' | 'CANCELLED'
    - `failureDetail` string
    - `instructorSummary` string
    - `attempt` integer
    - `maxAttempts` integer
    - `variantExerciseId` integer
    - `variantExerciseTitle` string
    - `request` VariantGenerationRequest
      - `targetDifficulty` 'EASY' | 'MEDIUM' | 'HARD', nullable
      - `domainText` string, nullable
      - `narrativeStyle` 'TECHNICAL' | 'REALISTIC' | 'CREATIVE', nullable
      - `additionalInstructions` string, nullable
      - `placement` VariantPlacement
        - `type` 'EXISTING_GROUP' | 'NEW_GROUP' | 'STANDALONE' | 'SAME_EXAM_GROUP'
        - `existingGroupId` integer, nullable
        - `newGroup` CreateExerciseVariantGroup
          - `title` string, required
          - `maxPoints` number, double
          - `releaseDate` string, date-time
          - `startDate` string, date-time
          - `dueDate` string, date-time
          - `assessmentDueDate` string, date-time
          - `exampleSolutionPublicationDate` string, date-time
    - `warnings` string[]
    - `totalTokensUsed` integer
    - `startedAt` string, date-time
    - `finishedAt` string, date-time
  - `stepOutputs` object
  - `request` VariantGenerationRequest
    - `targetDifficulty` 'EASY' | 'MEDIUM' | 'HARD', nullable
    - `domainText` string, nullable
    - `narrativeStyle` 'TECHNICAL' | 'REALISTIC' | 'CREATIVE', nullable
    - `additionalInstructions` string, nullable
    - `placement` VariantPlacement
      - `type` 'EXISTING_GROUP' | 'NEW_GROUP' | 'STANDALONE' | 'SAME_EXAM_GROUP'
      - `existingGroupId` integer, nullable
      - `newGroup` CreateExerciseVariantGroup
        - `title` string, required
        - `maxPoints` number, double
        - `releaseDate` string, date-time
        - `startDate` string, date-time
        - `dueDate` string, date-time
        - `assessmentDueDate` string, date-time
        - `exampleSolutionPublicationDate` string, date-time

## Changes

- **2026-09-12** `f67e71eeb703` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/ls1intum/apis/artemis-application-server-api/changes/api/hyperion/variant-jobs/:jobId/get.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.dev/ls1intum/apis/artemis-application-server-api/revisions/b164e8d296bb?raw)
