---
title: "Knowledge base API"
description: "Manage knowledge-base records and source definitions."
url: "https://documentation.verbatik.com/api/knowledge/"
---

# Knowledge base API

Manage knowledge-base records and source definitions.

Endpoint: `/api/v1/workspaces/WORKSPACE_ID/knowledge-bases`. Use `knowledge:read` for GET and `knowledge:write` for mutations.

## Create a knowledge base

```bash
curl -X POST 'https://dashboard.verbatik.com/api/v1/workspaces/WORKSPACE_ID/knowledge-bases' \
  -H "Authorization: Bearer $VERBATIK_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{"name":"Clinic information","description":"Reviewed public clinic information","sources":[{"id":"clinic-hours","type":"text","name":"Opening hours","content":"Monday to Friday, 09:00–17:00. Weekend visits are by prior arrangement.","status":"saved"}]}'
```

This is illustrative content. Replace it with information reviewed by the clinic. Success returns `201` and `{ "data": ... }`.

## Source fields

A source has `id`, `type` (`text`, `url` or `file`), `name`, optional `content`, optional `url` and a saved status. A knowledge base has up to 100 source definitions; text content is bounded.

The resource route manages records and source definitions; it is not an unrestricted file-upload or storage-connector API. Use the dashboard’s supported upload, website import and cloud document selection flows for those sources. Do not put access tokens or private document URLs into source content.

## Read, update and archive

GET returns the collection in `data`. PATCH uses an `id` plus changed fields. DELETE uses `?id=KNOWLEDGE_BASE_ID` and returns its archive result.

After changing sources, review indexing/sync status in the dashboard, attach the intended base to the agent and test a known question. A saved record alone does not establish that a specific answer has been retrieved correctly.
