---
title: "POST /api/hyperion/exercises/{exerciseId}/generate-variant"
method: POST
path: "/api/hyperion/exercises/{exerciseId}/generate-variant"
tags: ["hyperion-exercise-variant"]
---

# POST /api/hyperion/exercises/{exerciseId}/generate-variant

`POST /api/hyperion/exercises/{exerciseId}/generate-variant`

## Path parameters

- `exerciseId` integer, required

## Request body

- 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

## Response `200`

OK

- VariantJobStart
  - `jobId` string

## Changes

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

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