---
title: "Restore a platform knowledge version as a NEW version (super_admin; two-step)"
method: POST
path: "/api/admin/knowledge/{id}/restore"
tags: ["knowledge"]
---

# Restore a platform knowledge version as a NEW version (super_admin; two-step)

`POST /api/admin/knowledge/{id}/restore`

## Request

- Base URL: `https://api.wizbi.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.wizbi.ai/api/admin/knowledge/{id}/restore`
- Auth: none declared

## Path parameters

- `id` string, required

## Request body

- RestoreKnowledgeBody
  - `version` integer, required
  - `expectedVersion` integer
  - `reason` string
  - `note` string
  - `confirm` boolean: false = return a preview only; true = apply the change.

## Response `200`

Preview or the item.

- union
  - KnowledgePreview
    - `preview` object, required
  - KnowledgeWriteResult
    - `item` KnowledgeItem, required
      - `id` string, required
      - `orgId` string, nullable, required
      - `scope` 'platform' | 'source_type' | 'org' | 'source' | 'group' | 'room' | 'user', required
      - `scopeRef` string, nullable, required
      - `kind` 'skill' | 'fact' | 'preference' | 'alias' | 'recipe' | 'rule' | 'gap', required
      - `layer` 'core' | 'source' | 'learned' | 'task', required
      - `title` string, required
      - `body` string, required
      - `sources` string[]
      - `entities` string[]
      - `triggers` string[]
      - `channels` string[]
      - `weight` integer
      - `status` 'candidate' | 'approved' | 'active' | 'retired' | 'rejected', required
      - `statusReason` string
      - `version` integer, required
      - `sha` string, required
      - `budgetChars` integer
      - `origin` 'manual' | 'import' | 'harvest' | 'user_command' | 'eval', required
      - `evidence` object[]
        - `interactionId` string
        - `turnId` string
        - `quote` string
        - `by` string
        - `at` string, date-time, required
      - `confidence` number
      - `verifiedAt` string, date-time
      - `revalidateAfter` string, date-time
      - `warnings` string[]
      - `createdBy` string, required
      - `createdAt` string, date-time, required
      - `updatedBy` string, required
      - `updatedAt` string, date-time, required
      - `approvedBy` string
      - `approvedAt` string, date-time
      - `eval` object
        - `runId` string, required
        - `verdict` 'pass' | 'fail' | 'inconclusive', required
        - `at` string, date-time, required
      - `metrics` object
        - `injected` integer
        - `lastInjectedAt` string, date-time
      - `pinned` boolean
      - `blocked` boolean
    - `warnings` object[], required
      - `rule` string, required
      - `detail` string, required

## Other responses

- `400`: Invalid request or a failed lint (`knowledge_lint_failed`).
- `403`: Not allowed, the transition is denied, or the feature is off.
- `404`: Unknown item or version (or one the caller may not see).
- `409`: Stale version.

---

[API](https://skmtc.dev/wizbi/apis/wizbi-core-api.md) · [All operations](https://skmtc.dev/wizbi/apis/wizbi-core-api/llms.txt) · [OpenAPI document](https://skmtc.dev/wizbi/apis/wizbi-core-api/revisions/5a47416c82ec?raw)
