---
title: "Restore article revision"
method: POST
path: "/kb-articles/{id}/revisions/{revisionId}/restore"
tags: ["Articles"]
---

# Restore article revision

`POST /kb-articles/{id}/revisions/{revisionId}/restore`

## Request

- Base URL: `https://api.weav.com/v1`
- URL: `https://api.weav.com/v1/kb-articles/{id}/revisions/{revisionId}/restore`
- Auth: HTTP bearer

Snapshots the translation's current content as a new revision, then overwrites it with the selected revision's content.

## Path parameters

- `id` string, uuid, required
- `revisionId` string, uuid, required

## Response `200`

Success

- KbArticle
  - `id` string, uuid
  - `category_id` string, uuid, nullable
  - `position` integer, nullable
  - `status` 'draft' | 'published'
  - `published_at` string, date-time, nullable
  - `source` 'manual' | 'auto_generated' | 'github' | 'mcp'
  - `translations` KbArticleTranslation[]
    - `locale` string
    - `title` string
    - `slug` string
    - `content` string: Markdown body
    - `excerpt` string, nullable: Also used as the meta description
    - `seo_title` string, nullable: Search and social title; the page heading remains title
    - `noindex` boolean: Hide this translation from search engines
    - `canonical_url` string, uri, nullable
    - `og_image_url` string, uri, nullable
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable
  - `created_at` string, date-time, nullable
  - `updated_at` string, date-time, nullable

## Other responses

- `401`: Unauthorized
- `404`: Not found, or no current translation exists for the revision's locale
- `422`: Revision's slug is now used by another translation

---

[API](https://skmtc.dev/weav/apis/weav-api.md) · [All operations](https://skmtc.dev/weav/apis/weav-api/llms.txt) · [OpenAPI document](https://skmtc.dev/weav/apis/weav-api/revisions/15970f126c0e?raw)
