Knowledge Bases API
Knowledge Bases endpoints exposed by the Devotel CPaaS API Base path:/api/v1/knowledge-bases
Endpoint count: 20
List knowledge bases
GET /api/v1/knowledge-bases/id before uploading documents or running a search. List rows omit the heavy config blob — fetch a single base to read it. Requires the knowledge:read scope.
Get a knowledge base
GET /api/v1/knowledge-bases/{id}config (source connectors and search config) and the denormalised document / chunk counts. Requires the knowledge:read scope.
string
required
Knowledge base ID (
kb_…).List documents in a knowledge base
GET /api/v1/knowledge-bases/{id}/documentsdocId for retry, publication, or moderation actions. Requires the knowledge:read scope.
string
required
Knowledge base ID (
kb_…).List document version history
GET /api/v1/knowledge-bases/{id}/documents/{docId}/versionsknowledge:read scope.
string
required
Knowledge base ID (
kb_…).string
required
Document ID whose version lineage is returned.
Diff two document versions
GET /api/v1/knowledge-bases/{id}/documents/{docId}/versions/diff+ added, - removed, context). truncated is true when the inputs were too large for a line-level diff. Read-only; requires the knowledge:read scope.
string
required
Knowledge base ID (
kb_…).string
required
Document ID whose versions are compared.
integer
required
1-based version number to diff FROM (the older side).
integer
required
1-based version number to diff TO (the newer side).
Get knowledge-base search config
GET /api/v1/knowledge-bases/{id}/search-configknowledge:read scope.
string
required
Knowledge base ID (
kb_…).Get knowledge-base staleness report
GET /api/v1/knowledge-bases/{id}/stalenessfresh, stale, or critical against its review-cadence window and returns the bucket totals plus an oldest-first attention_required queue, so you can spot the articles most likely to ground a wrong agent answer. A document’s age is measured from its last operator-verified time (falling back to its last update); the default window is 90 days, overridable per request. Read-only; requires the knowledge:read scope.
string
required
Knowledge base ID (
kb_…).integer
Org-wide review-cadence window in days applied to documents without a per-document override. Defaults to 90.
Create a knowledge base
POST /api/v1/knowledge-bases/refresh_schedule so URL / connector-backed sources re-scrape on a cadence; it defaults to manual (scrape-once). Returns the created base. Requires the knowledge:write scope (admin / owner / developer).
string
required
Human-readable name for the knowledge base.
string
Optional summary of what this base contains.
string (enum: manual|hourly|daily|weekly)
Recurring re-scrape cadence for external-source documents. Defaults to
manual.Upload a document
POST /api/v1/knowledge-bases/{id}/documentscontent, or a multipart/form-data file upload (PDF, DOCX, or image — extracted via OCR). The document is queued for asynchronous chunking and embedding, so it is returned in processing status; poll the document list until it reaches ready. Requires the knowledge:write scope (admin / owner / developer).
string
required
Knowledge base ID (
kb_…).string
required
Document title.
string
Source type / extension (e.g.
text, markdown, pdf, html). Defaults to text.string
required
The document body (inline text). Max 10 MB via this JSON path.
string
Optional origin URL the content was fetched from.
object
Optional arbitrary metadata to store alongside the document.
Approve a pending document
POST /api/v1/knowledge-bases/{id}/documents/{docId}/approveapproved and kicks off deferred vector indexing so its chunks become retrievable by agents. Optional reviewer notes are stored on the document for the submitter. Requires the knowledge:write scope (admin / owner / developer).
string
required
Knowledge base ID (
kb_…).string
required
Document ID (
doc_…).string
Optional reviewer feedback stored on the document.
Reject a pending document
POST /api/v1/knowledge-bases/{id}/documents/{docId}/rejectrejected; its chunks are never indexed, so it stays out of agent retrieval. Optional reviewer notes are stored on the document so the submitter gets actionable feedback. Requires the knowledge:write scope (admin / owner / developer).
string
required
Knowledge base ID (
kb_…).string
required
Document ID (
doc_…).string
Optional reviewer feedback stored on the document.
Retry document ingestion
POST /api/v1/knowledge-bases/{id}/documents/{docId}/retryprocessing and re-runs chunking / embedding on the next worker tick; use it after resolving the cause of a failed document. Takes no request body. Requires the knowledge:write scope (admin / owner / developer).
string
required
Knowledge base ID (
kb_…).string
required
Document ID (
doc_…).Roll back to an earlier version
POST /api/v1/knowledge-bases/{id}/documents/{docId}/rollbackknowledge:write scope (admin / owner / developer).
string
required
Knowledge base ID (
kb_…).string
required
Document ID to roll back.
integer
required
1-based version number to restore (the first upload is version 1).
Trigger an immediate knowledge-base refresh
POST /api/v1/knowledge-bases/{id}/refreshnext_refresh_at to now so the refresh worker re-scrapes and re-embeds its sources on the next tick. Takes no request body; use it after updating a source or when an agent is answering from stale content. Requires the knowledge:write scope (admin / owner / developer).
string
required
Knowledge base ID (
kb_…).Search a knowledge base
POST /api/v1/knowledge-bases/{id}/searchlimit. Requires the knowledge:read scope.
string
required
Knowledge base ID (
kb_…).string
required
Natural-language query to embed and match against the base’s chunks.
integer
Maximum number of chunks to return. Defaults to 5.
Update a knowledge base
PUT /api/v1/knowledge-bases/{id}config, or refresh cadence. Only the fields you send are changed; omitted fields keep their current value. Returns the updated base. Requires the knowledge:write scope (admin / owner / developer).
string
required
Knowledge base ID (
kb_…).string
New name for the knowledge base.
string
New summary of what this base contains.
string (enum: manual|hourly|daily|weekly)
New recurring re-scrape cadence for external-source documents.
object
Replacement configuration blob (source connectors, search config).
Update knowledge-base search config
PUT /api/v1/knowledge-bases/{id}/search-config{} resets the KB to legacy raw-similarity ordering and an omitted knob never silently changes the others. Values are range-clamped server-side. Returns the normalised config. Requires the knowledge:write scope (admin / owner / developer).
string
required
Knowledge base ID (
kb_…).number | string
Minimum raw vector similarity (0..1) a chunk must clear to reach the agent. 0 = no floor (default).
number | string
Recency multiplier strength (0..5). 0 = off (default); fresher docs get up to ×(1 + boost).
number | string
Half-life in days of the recency decay (1..3650). Default 30.
object
Map of source label → score multiplier (0..20, keys matched case-insensitively). Default .
string[]
Allow-list of categories; empty = allow all (default).
string[]
Deny-list of categories. Default [].
Publish or unpublish a document
PATCH /api/v1/knowledge-bases/{id}/documents/{docId}/publicationis_public to true (with a URL slug) to expose the article at the public help-center path, or false to take it down. An optional summary overrides the article’s public excerpt. A slug is required whenever is_public is true. Requires the knowledge:write scope (admin / owner / developer).
string
required
Knowledge base ID (
kb_…).string
required
Document ID (
doc_…).boolean
required
Whether the document should be publicly visible in the help center.
string
Public URL slug (lowercase letters, digits, hyphens). Required when
is_public is true.string
Optional public excerpt shown for the article.
Delete a knowledge base
DELETE /api/v1/knowledge-bases/{id}knowledge:write scope (admin / owner / developer).
string
required
Knowledge base ID (
kb_…).Delete a document
DELETE /api/v1/knowledge-bases/{id}/documents/{docId}knowledge:write scope (admin / owner / developer).
string
required
Knowledge base ID (
kb_…).string
required
Document ID (
doc_…).