---
title: "Undo Desk Learning"
method: POST
path: "/gtm-internal/agent-desk/learnings/{version_id}/undo"
tags: ["gtm-internal"]
---

# Undo Desk Learning

`POST /gtm-internal/agent-desk/learnings/{version_id}/undo`

## Request

- Base URL: `https://api-v1.unusual.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api-v1.unusual.ai/gtm-internal/agent-desk/learnings/{version_id}/undo`
- Auth: OAuth 2
  - Password
  - Token URL: `/auth/login`

Take an applied learning back, staff-side — the owner's Undo, verbatim.

## Path parameters

- `version_id` string, required

## Request body

- DeskLearningActionRequest: Approve/undo a learning from the staff side. ``statement_override`` and ``test_override`` mirror the owner endpoint's ``LearningApprove`` fields — including the statement guardrail (no product limit since 2026-10-14), HERE at request parsing, so an over-long override is the same 422 on both doors rather than an uncaught ValidationError (a 500) when the handler constructs ``LearningApprove``.
  - `domain_id` string, required
  - `statement_override` string, nullable
  - `test_override` object, nullable

## Response `200`

Successful Response

- LearningUndoOut: What the undo did, in the words the row can render.
  - `undone` boolean, required
  - `kind` string, required
  - `undone_version_number` integer, required
  - `restored_version_number` integer, required
  - `rollback_version_number` integer, required
  - `retired_test_ids` string[]
  - `detail` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/unusual/apis/dashboard-server.md) - [All operations](https://skmtc.dev/unusual/apis/dashboard-server/llms.txt) - [OpenAPI document](https://skmtc.dev/unusual/apis/dashboard-server/revisions/89f716930ead?raw)
