---
title: "Save Markdown at expectedRevision; zero creates a path"
method: PUT
path: "/workspace/knowledge"
tags: ["Knowledge"]
---

# Save Markdown at expectedRevision; zero creates a path

`PUT /workspace/knowledge`

## Request

- Base URL: `https://blitzreels.com/api/v1`
- URL: `https://blitzreels.com/api/v1/workspace/knowledge`
- Auth: API key in header `Authorization`

Requires Idempotency-Key. Paths are unique per workspace. Owner corrections require the owner role. imports/ snapshots are read-only. Creative direction is limited to 2000 characters; other documents to 65536. Identical retries return the original revision.

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `path` string, required
  - `title` string, required
  - `kind` 'brief' | 'research' | 'correction' | 'reference', required
  - `markdown` string, required
  - `expectedRevision` integer, required
  - `sources` object[], required
    - `url` string, uri, required
    - `title` string, required
  - `changeRequest` string

## Response `200`

Successful response

- object
  - `directionChange` object
    - `scope` object, required
      - `kind` 'brand' | 'series', required
      - `seriesId` string, uuid, nullable, required
      - `name` string, required
    - `request` string, required
    - `before` object, required
      - `title` string, required
      - `sources` object[], required
        - `url` string, uri, required
        - `title` string, required
      - `path` string, required
      - `documentId` string, uuid, nullable, required
      - `revision` integer, required
      - `markdown` string, required
      - `contentHash` string, required
    - `after` object, required
      - `title` string, required
      - `sources` object[], required
        - `url` string, uri, required
        - `title` string, required
      - `path` string, required
      - `documentId` string, uuid, nullable, required
      - `revision` integer, required
      - `markdown` string, required
      - `contentHash` string, required
  - `document` object, required
    - `id` string, uuid, required
    - `path` string, required
    - `title` string, required
    - `kind` 'brief' | 'research' | 'correction' | 'reference', required
    - `revision` integer, required
    - `updatedAt` string, required
    - `content` object, required
      - `documentId` string, uuid, required
      - `revision` integer, required
      - `title` string, required
      - `kind` 'brief' | 'research' | 'correction' | 'reference', required
      - `markdown` string, required
      - `sources` object[], required
        - `url` string, uri, required
        - `title` string, required
      - `authorUserId` string, nullable, required
      - `origin` 'web' | 'agent' | 'legacy' | 'seed', required
      - `sourceRef` string, nullable, required
      - `contentHash` string, required
      - `createdAt` string, required
  - `mutationReceipt` object, required
    - `id` string, required
    - `key` string, required
    - `operation` string, required
    - `status` 'completed', required
    - `replayed` boolean, required

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `404`: Not found
- `500`: Internal server error

---

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