---
title: "Restore"
method: POST
path: "/api/skill-learning/skills/{name}/restore"
tags: ["v2", "skill-learning", "private"]
---

# Restore

`POST /api/skill-learning/skills/{name}/restore`

## Request

- The document declares no server URL.
- Auth: HTTP bearer

Restore prior content as a new version. Affects future use only.

## Path parameters

- `name` string, required: Skill slug

## Query parameters

- `expert_id` string, nullable: Expert scope; omit for personal

## Request body

- RestoreVersionRequest
  - `version_id` string, required

## Response `200`

Successful Response

- LearningActionResult
  - `status` string, required
  - `status_label` string, required
  - `reason` string
  - `version` SkillVersionSummary
    - `id` string, required
    - `skill_name` string, required
    - `expert_id` string, nullable, required
    - `version` integer, required
    - `origin` string, required
    - `origin_label` string, required
    - `summary` string, required
    - `state` string, required
    - `state_label` string, required
    - `state_reason` string, required
    - `created_at` string, date-time, required
    - `description` string, required
    - `triggers` string[]
    - `body` string, nullable
    - `files` SkillVersionFileSummary[], nullable
      - `relative_path` string, required
      - `size_bytes` integer, required
      - `sha256` string, required
      - `is_executable` boolean, required
      - `content` string, nullable
      - `content_truncated` boolean
    - `evidence` LearningEvidenceLabel[]
      - `kind` string, required
      - `label` string, required
      - `ref` string
    - `limits` string[]
    - `sources` LearningSourceLink[]
      - `source_id` string, required
      - `source_kind` string, required
      - `revision` string, required
      - `accessible` boolean, required
      - `source_ref` string, nullable
      - `title` string, nullable
      - `url` string, nullable
      - `excluded` boolean
    - `use` SkillUseSummary: Reuse evidence for exactly one version. Loads are loads; an owner's report is a report; only a recorded check can say "passed checks".
      - `version_id` string, nullable
      - `loads` integer
      - `checks_passed` integer
      - `checks_failed` integer
      - `reported_working` integer
      - `reported_failed` integer
      - `stopped_mid_use` integer
      - `unknown` integer
      - `reuse_label` string
    - `base_version_id` string, nullable
    - `restored_from_version_id` string, nullable
    - `blocked_pattern_class` string, nullable
    - `blocked_step` string, nullable
  - `pattern_class` string, nullable
  - `blocked_step` string, nullable

## Other responses

- `401`: Authentication required
- `422`: Validation Error

## Changes

- **2026-10-16** `ad42c53e22ca`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/changes/api/skill-learning/skills/:name/restore/post.md)

---

[API](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server.md) - [All operations](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/llms.txt) - [OpenAPI document](https://skmtc.dev/significant-gravitas/apis/autogpt-agent-server/revisions/c508818c16ad?raw)
