---
title: "Update Exam Content"
method: PUT
path: "/admin/teacher-exams/{exam_id}/content"
tags: ["Admin Teacher Exams"]
---

# Update Exam Content

`PUT /admin/teacher-exams/{exam_id}/content`

## Request

- Base URL: `https://api.excellence-ai.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.excellence-ai.com/admin/teacher-exams/{exam_id}/content`
- Auth: OAuth 2 (password, token URL `api/login`)

Update exam content (creates a new version).

## Path parameters

- `exam_id` string, required

## Request body

- AdminExamContentUpdate: Request model for updating exam content.
  - `exam_subject_title` string, nullable
  - `structured_exercises` ExamExercise[], nullable
    - `id` integer, required
    - `title` string, required
    - `content` string, required
    - `solution` string, nullable
    - `points` number
    - `figure_id` string, nullable
    - `solution_figure_id` string, nullable
    - `figure_content` string, nullable
    - `figure_solution` string, nullable
    - `preamble` string, nullable
    - `estimated_minutes` integer, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

## Changes

> 55 revisions in range; 1 not diffed.

- **2026-09-15** `2a0c1636fd3b`: 1 info
  - added the new optional request property `structured_exercises/anyOf[subschema #1]/items/estimated_minutes`
- **2026-09-09** `a5af9b3b34f7`: 1 info
  - added the new optional request property `structured_exercises/anyOf[subschema #1]/items/preamble`

[Operation history](https://skmtc.dev/excellence-ai/apis/excellence-learning/changes/admin/teacher-exams/:exam_id/content/put.md)

---

[API](https://skmtc.dev/excellence-ai/apis/excellence-learning.md) - [All operations](https://skmtc.dev/excellence-ai/apis/excellence-learning/llms.txt) - [OpenAPI document](https://skmtc.dev/excellence-ai/apis/excellence-learning/revisions/379e4a57dee8?raw)
