---
title: "Change one Hive AI knowledge source. Approving one is refused unless the person is an owner or admin."
method: POST
path: "/api/v1/tools/update_ai_knowledge"
---

# Change one Hive AI knowledge source. Approving one is refused unless the person is an owner or admin.

`POST /api/v1/tools/update_ai_knowledge`

## Request

- Base URL: `https://hivepublish.com`
- URL: `https://hivepublish.com/api/v1/tools/update_ai_knowledge`
- Auth: HTTP bearer

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `knowledgeId` string, required: The source to change.
  - `title` string
  - `approvedContent` string
  - `sourceUrl` string: Source URL, or an empty string to clear it.
  - `markFresh` boolean: Record that the source was checked today.
  - `freshnessDays` integer
  - `status` 'draft' | 'approved' | 'stale' | 'error' | 'archived'
  - `expectedContentSha256` string: For approval/review: exact contentSha256 from the complete read_ai_knowledge_sources native operation. Review its full wording first.
  - `expectedUpdatedAt` string: Exact updatedAt of the source whose complete wording was reviewed.
  - `expectedTitle` string: Exact reviewed title.
  - `expectedSourceUrl` string: Exact reviewed source URL; empty for no URL.
  - `expectedFreshnessDays` integer: Exact reviewed freshnessDays.

## Response `200`

Tool result

- ToolResult
  - `data` unknown, required
  - `meta` object, required
    - `tool` string
    - `workspaceId` string, uuid

## Other responses

- `400`: Invalid input
- `401`: Missing or invalid credential
- `403`: Missing workspace scope, role permission, or plan entitlement
- `409`: Idempotency conflict, replay, or request still in progress
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/hivepublish/apis/hive-developer-api.md) · [All operations](https://skmtc.dev/hivepublish/apis/hive-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hivepublish/apis/hive-developer-api/revisions/b440c763583e?raw)
