---
title: "Enable the public knowledge base"
method: POST
path: "/products/help-desk/knowledge-base/enable"
tags: ["help-desk"]
---

# Enable the public knowledge base

`POST /products/help-desk/knowledge-base/enable`

## Request

- Base URL: `https://api.sparkvault.com/v1`
- URL: `https://api.sparkvault.com/v1/products/help-desk/knowledge-base/enable`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/sparkvault/apis/sparkvault-api/docs/products/help-desk/knowledge-base/enable/post.ts> (a function with typed inputs; its response is checked against the schema)

Uses the organization administrator's own console session, never an API key or impersonated session. The help desk must be active. Management writes require an active admin with a Full License and a matching version; private content stays encrypted in the desk vault until explicitly published. An existing published release is required.

## Request body

- object
  - `version` integer, required: The version last read; a stale version is refused with 409.

## Response `200`

The saved result.

- object
  - `data` KnowledgeBaseWorkspace, required
    - `desk_id` string, required
    - `version` integer, required: The version last read; a stale version is refused with 409.
    - `public_url` string, uri, required
    - `settings` object, required
      - `title` string
      - `description` string
      - `theme` 'default' | 'privacybee'
      - `branding_credit` boolean
      - `accent_color` string
      - `logo_asset_id` string, nullable
      - `seo_title` string, nullable
      - `seo_description` string, nullable
      - `redirects` object[]
        - `from` string, required
        - `to` string, required
        - `status` 301
      - `enabled` boolean
    - `publication` object, required
      - `state` 'idle' | 'publishing' | 'failed'
      - `operation_id` string, nullable
      - `job_id` string, nullable
      - `active_release_id` string, nullable
      - `published_at` integer, nullable
      - `error` string, nullable
      - `lifecycle_paused` boolean
    - `categories` KnowledgeBaseCategorySummary[], required
      - `name` string, required
      - `slug` string, required
      - `description` string, required
      - `parent_id` string, nullable, required
      - `position` integer, required
      - `source` KnowledgeBaseSourceSummary, required
        - `external_id` string, required
        - `source_hash` string, required
      - `path` string, nullable, required
      - `category_id` string, required
      - `version` integer, required: The version last read; a stale version is refused with 409.
      - `source_version` integer, nullable, required
    - `articles` KnowledgeBaseArticleSummary[], required
      - `article_id` string, required
      - `title` string, required
      - `slug` string, required
      - `category_id` string, nullable, required
      - `position` integer, required
      - `version` integer, required: The version last read; a stale version is refused with 409.
      - `current_revision_id` string, required
      - `published_revision_id` string, nullable, required
      - `has_unpublished_changes` boolean, required
      - `source_revision_id` string, nullable, required
      - `created_at` integer, required
      - `updated_at` integer, required
      - `archived` boolean, required
      - `source` KnowledgeBaseSourceSummary, required
        - `external_id` string, required
        - `source_hash` string, required
  - `meta` ResponseMeta: Envelope metadata present on every successful response.
    - `api_version` string
    - `request_id` string
    - `response_ms` integer
    - `timestamp` integer: Unix seconds.
    - `pools` object: Storage and bandwidth capacity snapshot for the account.
    - `billing` object
      - `past_due` boolean
    - `quota` object: This minute of the account request budget. Present on authenticated success responses that passed the throttle; absent otherwise.
      - `limit` integer
      - `used` integer
      - `remaining` integer
      - `resets_at` integer: Unix seconds.

## Other responses

- `400`: VALIDATION_ERROR — the request contains an invalid or unsupported value.
- `401`: AUTHENTICATION_ERROR — a current organization session is required.
- `403`: FORBIDDEN — an organization administrator is required; management writes also require a Full License.
- `404`: NOT_FOUND — this account has no matching article, category, image, revision or operation.
- `409`: CONFLICT — a stale version, publication in progress, changed public release, or lifecycle fence. Reload before retrying.
- `429`: RATE_LIMIT_EXCEEDED — wait for the Retry-After interval.

## Changes

- **2026-10-28** `a9a10e328ba5`: 24 info
  - the response property `error/details` became required for the status `400`
  - the response property `error/details` became required for the status `401`
  - the response property `error/details` became required for the status `403`
  - the response property `error/details` became required for the status `404`
  - …20 more
- **2026-10-28** `56d7c265a77a`: 6 breaking
  - the response property `error/details` became nullable for the status `400`
  - the response property `error/details` became nullable for the status `401`
  - the response property `error/details` became nullable for the status `403`
  - the response property `error/details` became nullable for the status `404`
  - …2 more
- **2026-10-27** `ac44ec1f8cfa`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sparkvault/apis/sparkvault-api/changes/products/help-desk/knowledge-base/enable/post.md)

---

[API](https://skmtc.dev/sparkvault/apis/sparkvault-api.md) - [All operations](https://skmtc.dev/sparkvault/apis/sparkvault-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sparkvault/apis/sparkvault-api/revisions/97cfadccd0c0?raw)
