Skip to main content
Knowledge bases store reference documents that the AI agent retrieves during conversations for context. Documents are automatically processed through the ingestion pipeline: text extraction, chunking, embedding, and vector indexing.

Create Knowledge Base

POST /v1/console/knowledge-bases
Create a new knowledge base. A Qdrant collection and slug are auto-generated if not provided.

Authentication

Requires KNOWLEDGE_BASES.can_create permission.

Request body

name
string
required
Knowledge base name. Max 255 characters.
slug
string
URL-safe slug. Auto-generated from the name if omitted.
description
string
Description. Max 2000 characters.
qdrant_collection
string
Qdrant collection name. Auto-generated if omitted.
embedding_model
string
default:"all-MiniLM-L12-v2"
Embedding model to use.
is_active
boolean
default:"true"
Whether the knowledge base is active.

Example request

curl -X POST https://mind-be.staging.miva.university/v1/console/knowledge-bases \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Diabetes Guidelines",
    "description": "Clinical guidelines for diabetes management."
  }'

Response

{
  "success": true,
  "data": {
    "id": "6650d4e5f6a7b8c9d0e1f2a3",
    "name": "Diabetes Guidelines",
    "slug": "diabetes-guidelines",
    "description": "Clinical guidelines for diabetes management.",
    "qdrant_collection": "kb_diabetes_guidelines_6650d4e5",
    "embedding_model": "all-MiniLM-L12-v2",
    "is_active": true,
    "created_at": "2025-06-01T14:00:00Z",
    "updated_at": null
  },
  "message": "Knowledge base created successfully"
}

List Knowledge Bases

GET /v1/console/knowledge-bases
List all knowledge bases in the tenant.

Authentication

Requires KNOWLEDGE_BASES.can_view permission.

Query parameters

skip
integer
default:"0"
Number of records to skip.
limit
integer
default:"20"
Max records to return (1-100).
include_inactive
boolean
default:"false"
Include inactive knowledge bases.

Example request

curl "https://mind-be.staging.miva.university/v1/console/knowledge-bases" \
  -H "Authorization: Bearer <access_token>"

Response

{
  "success": true,
  "data": [
    {
      "id": "6650d4e5f6a7b8c9d0e1f2a3",
      "name": "Diabetes Guidelines",
      "slug": "diabetes-guidelines",
      "is_active": true,
      "created_at": "2025-06-01T14:00:00Z"
    }
  ],
  "total": 1,
  "page": 1,
  "page_size": 20,
  "total_pages": 1,
  "message": null
}

Get Knowledge Base

GET /v1/console/knowledge-bases/{kb_id}
Get a knowledge base’s full details.

Authentication

Requires KNOWLEDGE_BASES.can_view permission.

Path parameters

kb_id
string
required
The knowledge base ID.

Example request

curl https://mind-be.staging.miva.university/v1/console/knowledge-bases/6650d4e5f6a7b8c9d0e1f2a3 \
  -H "Authorization: Bearer <access_token>"

Response

{
  "success": true,
  "data": {
    "id": "6650d4e5f6a7b8c9d0e1f2a3",
    "name": "Diabetes Guidelines",
    "slug": "diabetes-guidelines",
    "description": "Clinical guidelines for diabetes management.",
    "qdrant_collection": "kb_diabetes_guidelines_6650d4e5",
    "embedding_model": "all-MiniLM-L12-v2",
    "is_active": true,
    "created_at": "2025-06-01T14:00:00Z",
    "updated_at": null
  },
  "message": null
}

Update Knowledge Base

PATCH /v1/console/knowledge-bases/{kb_id}
Partial update.

Authentication

Requires KNOWLEDGE_BASES.can_edit permission.

Path parameters

kb_id
string
required
The knowledge base ID.

Request body

name
string
Updated name.
slug
string
Updated slug.
description
string
Updated description.
qdrant_collection
string
Updated Qdrant collection name.
embedding_model
string
Updated embedding model.
is_active
boolean
Active status.

Example request

curl -X PATCH https://mind-be.staging.miva.university/v1/console/knowledge-bases/6650d4e5f6a7b8c9d0e1f2a3 \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{ "description": "Updated diabetes management guidelines v2." }'

Response

Returns the full updated knowledge base object.

Delete Knowledge Base

DELETE /v1/console/knowledge-bases/{kb_id}
Soft-delete a knowledge base.

Authentication

Requires KNOWLEDGE_BASES.can_delete permission.

Path parameters

kb_id
string
required
The knowledge base ID.

Example request

curl -X DELETE https://mind-be.staging.miva.university/v1/console/knowledge-bases/6650d4e5f6a7b8c9d0e1f2a3 \
  -H "Authorization: Bearer <access_token>"

Response

Returns the soft-deleted knowledge base object with is_active: false.

Upload Document

POST /v1/console/knowledge-bases/{kb_id}/documents
Upload a file to a knowledge base. Automatically queued for ingestion.

Authentication

Requires KNOWLEDGE_BASES.can_create permission.

Path parameters

kb_id
string
required
The knowledge base ID.

Request body

Content-Type: multipart/form-data
file
file
required
The file to upload.
Supported file types: PDF, DOCX, DOC, PPTX, PPT, TXT, Markdown Max file size: 50 MB

Example request

curl -X POST https://mind-be.staging.miva.university/v1/console/knowledge-bases/6650d4e5f6a7b8c9d0e1f2a3/documents \
  -H "Authorization: Bearer <access_token>" \
  -F "file=@diabetes-guidelines.pdf"

Response

{
  "success": true,
  "data": {
    "id": "6650f6a7b8c9d0e1f2a3b4c5",
    "knowledge_base_id": "6650d4e5f6a7b8c9d0e1f2a3",
    "filename": "diabetes-guidelines.pdf",
    "file_size": 2048576,
    "content_type": "application/pdf",
    "status": "pending",
    "error_message": null,
    "chunk_count": 0,
    "created_at": "2025-06-01T14:00:00Z"
  },
  "message": "Document uploaded and queued for ingestion"
}

Ingestion status

StatusDescription
pendingUploaded, waiting for processing
processingText extraction and embedding in progress
completedFully indexed and searchable
failedIngestion failed — check error_message

List Documents

GET /v1/console/knowledge-bases/{kb_id}/documents
List all documents in a knowledge base.

Authentication

Requires KNOWLEDGE_BASES.can_view permission.

Path parameters

kb_id
string
required
The knowledge base ID.

Query parameters

skip
integer
default:"0"
Number of records to skip.
limit
integer
default:"20"
Max records to return (1-100).

Example request

curl "https://mind-be.staging.miva.university/v1/console/knowledge-bases/6650d4e5f6a7b8c9d0e1f2a3/documents" \
  -H "Authorization: Bearer <access_token>"

Response

{
  "success": true,
  "data": [
    {
      "id": "6650f6a7b8c9d0e1f2a3b4c5",
      "filename": "diabetes-guidelines.pdf",
      "status": "completed",
      "chunk_count": 42,
      "created_at": "2025-06-01T14:00:00Z"
    }
  ],
  "total": 1,
  "page": 1,
  "page_size": 20,
  "total_pages": 1,
  "message": null
}

Get Document

GET /v1/console/knowledge-bases/{kb_id}/documents/{doc_id}
Get a document’s details and ingestion status.

Authentication

Requires KNOWLEDGE_BASES.can_view permission.

Path parameters

kb_id
string
required
The knowledge base ID.
doc_id
string
required
The document ID.

Example request

curl https://mind-be.staging.miva.university/v1/console/knowledge-bases/6650d4e5f6a7b8c9d0e1f2a3/documents/6650f6a7b8c9d0e1f2a3b4c5 \
  -H "Authorization: Bearer <access_token>"

Response

Returns the full document object (same shape as Upload Document response data).

Delete Document

DELETE /v1/console/knowledge-bases/{kb_id}/documents/{doc_id}
Permanently deletes the document record, removes its vectors from Qdrant, and deletes the file from S3.

Authentication

Requires KNOWLEDGE_BASES.can_delete permission.

Path parameters

kb_id
string
required
The knowledge base ID.
doc_id
string
required
The document ID.

Example request

curl -X DELETE https://mind-be.staging.miva.university/v1/console/knowledge-bases/6650d4e5f6a7b8c9d0e1f2a3/documents/6650f6a7b8c9d0e1f2a3b4c5 \
  -H "Authorization: Bearer <access_token>"

Response

Returns the deleted document object.

Re-ingest Document

POST /v1/console/knowledge-bases/{kb_id}/documents/{doc_id}/reingest
Re-trigger the ingestion pipeline for a document. Resets status to pending and queues a new ingestion job.

Authentication

Requires KNOWLEDGE_BASES.can_edit permission.

Path parameters

kb_id
string
required
The knowledge base ID.
doc_id
string
required
The document ID.

Example request

curl -X POST https://mind-be.staging.miva.university/v1/console/knowledge-bases/6650d4e5f6a7b8c9d0e1f2a3/documents/6650f6a7b8c9d0e1f2a3b4c5/reingest \
  -H "Authorization: Bearer <access_token>"

Response

{
  "success": true,
  "data": {
    "id": "6650f6a7b8c9d0e1f2a3b4c5",
    "knowledge_base_id": "6650d4e5f6a7b8c9d0e1f2a3",
    "filename": "diabetes-guidelines.pdf",
    "file_size": 2048576,
    "content_type": "application/pdf",
    "status": "pending",
    "error_message": null,
    "chunk_count": 42,
    "created_at": "2025-06-01T14:00:00Z"
  },
  "message": "Document re-ingestion queued"
}