# Move an application to another exam

`change_exam_application`

- Writes
- Needs confirmation

Moves one existing application onto a different exam — a different session, language or category — keeping the same application. Pass the application_id and an exam_id from find_exams_for_me called with for_application_id set to that same application. The first call answers a summary and a confirmation value and changes nothing. An application that has been sat, is under way or is past cannot be moved, and the platform refuses it whatever the list said.

- **For**: Students
- **Needs**: Read and write access (`mcp:write`)
- **What it changes**: **Writes.** The first call only shows what would change and returns a confirmation handle. Nothing changes until the agent calls again with that handle, after you agree.
- **Repeating it**: Not safe: the same call twice can change data twice.

## Inputs

- `brand`string

  Which olympiad this is about. Required unless the connection covers exactly one, in which case that one is used.

  one of`coding``gmath``hilingua``neo``stem`
- `application_id`stringrequired

  The application_id from list_my_exams.

  pattern`^[a-f0-9]{24}$`min length`24`max length`24`
- `exam_id`stringrequired

  The exam_id to move to, from find_exams_for_me with for_application_id set.

  pattern`^[a-f0-9]{24}$`min length`24`max length`24`
- `confirmation`string

  The `confirmation` value from this tool’s own `confirmation_required` answer. Send it back with exactly the same other arguments to go ahead; never invent one.

  pattern`^cfm_[A-Za-z0-9._-]{1,4000}$`min length`5`max length`4096`

The server refuses a call that carries any field not listed here, and says which one.

## Answers instead of a result

What the tool says when it cannot do what was asked, and what to do about it.

- **`not_connected`**
- **`insufficient_scope`**
- **`rate_limited`**
- **`writes_disabled`**
- **`temporarily_unavailable`**
- **`upstream_error`**
- **`brand_not_allowed`**
- **`role_required`**
- **`tenant_account_missing`**
- **`confirmation_required`**
- **`confirmation_expired`**
- **`cannot_change`**
- **`exam_not_eligible`**
