File processing runs as a background task. Use the progress endpoint or WebSocket to track initialization status.
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /api/v1/knowledge/health | Health check |
GET | /api/v1/knowledge/list | List all knowledge bases |
POST | /api/v1/knowledge/create | Create a new knowledge base |
GET | /api/v1/knowledge/default | Get the default knowledge base |
PUT | /api/v1/knowledge/default/{kb_name} | Set the default knowledge base |
GET | /api/v1/knowledge/rag-providers | List available RAG providers |
GET | /api/v1/knowledge/configs | Get all KB configurations |
POST | /api/v1/knowledge/configs/sync | Sync configs from metadata files |
GET | /api/v1/knowledge/{kb_name} | Get knowledge base details |
DELETE | /api/v1/knowledge/{kb_name} | Delete a knowledge base |
GET | /api/v1/knowledge/{kb_name}/config | Get KB-specific config |
PUT | /api/v1/knowledge/{kb_name}/config | Update KB-specific config |
POST | /api/v1/knowledge/{kb_name}/upload | Upload documents to a KB |
GET | /api/v1/knowledge/{kb_name}/progress | Get initialization progress |
POST | /api/v1/knowledge/{kb_name}/progress/clear | Clear a stuck progress state |
WS | /api/v1/knowledge/{kb_name}/progress/ws | Stream progress updates |
POST | /api/v1/knowledge/{kb_name}/link-folder | Link a local folder |
GET | /api/v1/knowledge/{kb_name}/linked-folders | List linked folders |
DELETE | /api/v1/knowledge/{kb_name}/linked-folders/{folder_id} | Unlink a folder |
POST | /api/v1/knowledge/{kb_name}/sync-folder/{folder_id} | Sync files from a linked folder |
GET /api/v1/knowledge/health
Returns the health status of the knowledge base manager.
GET /api/v1/knowledge/list
List all available knowledge bases with summary statistics.
POST /api/v1/knowledge/create
Create a new knowledge base and initialize it with uploaded files. Processing runs in the background.
Request body (multipart/form-data)
Name for the new knowledge base. Must be unique.
One or more documents to include.
RAG provider to use for indexing.
Response
Confirmation message.
Name of the created knowledge base.
List of uploaded file names.
GET /api/v1/knowledge/default
Get the name of the default knowledge base.
PUT /api/v1/knowledge/default/{kb_name}
Set a knowledge base as the default.
Knowledge base name.
GET /api/v1/knowledge/{kb_name}
Get detailed information about a specific knowledge base.
Knowledge base name.
404 if the knowledge base is not found.
DELETE /api/v1/knowledge/{kb_name}
Permanently delete a knowledge base and all its data.
Knowledge base name.
POST /api/v1/knowledge/{kb_name}/upload
Upload additional documents to an existing knowledge base. Processing runs in the background.
Knowledge base name.
Request body (multipart/form-data)
One or more documents to add.
Override the RAG provider for this upload. Defaults to the KB’s configured provider.
GET /api/v1/knowledge/{kb_name}/progress
Poll the current initialization or upload progress for a knowledge base.
Knowledge base name.
{ "status": "not_started" } if initialization has not begun.
WS /api/v1/knowledge/{kb_name}/progress/ws
Stream real-time progress updates for knowledge base initialization. Connect after calling the create or upload endpoint.
Knowledge base name.
type: "progress" with a data object, or type: "error".
completed or error.
POST /api/v1/knowledge/{kb_name}/progress/clear
Clear a stuck progress state. Useful if a previous initialization failed and left stale progress data.
Knowledge base name.
GET /api/v1/knowledge/rag-providers
List available RAG providers.
Folder linking
You can link a local folder (e.g. a folder synced from SharePoint or Google Drive) to a knowledge base. DeepTutor will detect new and modified files in the folder and process them.POST /api/v1/knowledge/{kb_name}/link-folder
Knowledge base name.
Absolute path to the local folder. Supports
~ expansion and relative paths resolved from the server working directory.GET /api/v1/knowledge/{kb_name}/linked-folders
List all folders linked to a knowledge base.
DELETE /api/v1/knowledge/{kb_name}/linked-folders/{folder_id}
Remove a folder link (does not delete the actual folder or already-processed documents).
Folder link identifier returned by the link-folder endpoint.
POST /api/v1/knowledge/{kb_name}/sync-folder/{folder_id}
Scan the linked folder for new or modified files and process them into the knowledge base.
Folder link identifier.
{ "message": "No new or modified files to sync", "files": [], "file_count": 0 }.