---
title: "Сохранить черновую редакцию страницы"
method: POST
path: "/api/v1/knowledge/nodes/{id}/revisions"
tags: ["Knowledge pages"]
---

# Сохранить черновую редакцию страницы

`POST /api/v1/knowledge/nodes/{id}/revisions`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/knowledge/nodes/{id}/revisions`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)

Содержимое принимается только каноническим блочным документом; plain_text — производное представление для поиска и ответов. Чужая правка между чтением и записью отдаётся конфликтом.

## Request body

- KnowledgeRevisionInput
  - `expected_version` integer, required: Версия страницы из её карточки; чужая правка отдаётся конфликтом
  - `title` string, required
  - `content` KnowledgeDocument, required: Канонический блочный документ страницы; редактор читает только эту схему.
    - `schema` 'akeda.knowledge.document', required
    - `schema_version` 1 | 2, required: Актуальная версия схемы — 2
    - `type` 'doc', required
    - `content` object[], required: Блоки страницы
  - `plain_text` string

## Response `200`

Страница с сохранённым черновиком

- KnowledgeNode
  - `id` string, uuid, required
  - `space_id` string, uuid, required
  - `parent_id` string, uuid
  - `title` string, required
  - `slug` string, required
  - `icon` string, required
  - `sort_order` integer, required
  - `status` string, required: Состояние страницы: draft, review, published или archived
  - `owner_id` integer, required
  - `current_draft_revision_id` string, uuid
  - `published_revision_id` string, uuid
  - `version` integer, required: Версия страницы для optimistic locking следующего изменения
  - `verify_at` string, date-time
  - `submitted_revision_id` string, uuid
  - `reviewer_id` integer
  - `submitted_by` integer
  - `submitted_at` string, date-time
  - `reviewed_by` integer
  - `reviewed_at` string, date-time
  - `review_note` string
  - `created_by` integer, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `is_favorite` boolean, required
  - `is_stale` boolean, required: Срок подтверждения актуальности истёк
  - `tags` KnowledgeTag[]
    - `id` string, uuid, required
    - `name` string, required
    - `color` string, required
    - `created_by` integer, required
    - `created_at` string, date-time, required
  - `draft` KnowledgeRevision
    - `id` string, uuid, required
    - `node_id` string, uuid, required
    - `revision_no` integer, required
    - `title` string, required
    - `schema_version` integer, required
    - `content` KnowledgeDocument, required: Канонический блочный документ страницы; редактор читает только эту схему.
      - `schema` 'akeda.knowledge.document', required
      - `schema_version` 1 | 2, required: Актуальная версия схемы — 2
      - `type` 'doc', required
      - `content` object[], required: Блоки страницы
    - `plain_text` string, required: Производное текстовое представление для поиска и ответов
    - `author_id` integer, required
    - `created_at` string, date-time, required
    - `published_at` string, date-time
  - `published` KnowledgeRevision
    - `id` string, uuid, required
    - `node_id` string, uuid, required
    - `revision_no` integer, required
    - `title` string, required
    - `schema_version` integer, required
    - `content` KnowledgeDocument, required: Канонический блочный документ страницы; редактор читает только эту схему.
      - `schema` 'akeda.knowledge.document', required
      - `schema_version` 1 | 2, required: Актуальная версия схемы — 2
      - `type` 'doc', required
      - `content` object[], required: Блоки страницы
    - `plain_text` string, required: Производное текстовое представление для поиска и ответов
    - `author_id` integer, required
    - `created_at` string, date-time, required
    - `published_at` string, date-time

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Запись не найдена или не видима текущему пользователю
- `409`: Конфликт версии, идемпотентности или бизнес-состояния

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/3c60ded179f2?raw)
