Altimate AI Knowledge Bases V2 API
The Knowledge Bases V2 API from Altimate AI — 9 operation(s) for knowledge bases v2.
The Knowledge Bases V2 API from Altimate AI — 9 operation(s) for knowledge bases v2.
openapi: 3.1.0
info:
title: Fast ACCOUNT_COSTS Knowledge Bases V2 API
version: 0.1.0
tags:
- name: Knowledge Bases V2
paths:
/knowledge_bases/v2/upload:
post:
tags:
- Knowledge Bases V2
summary: Upload With Kb Creation
description: 'Create a new knowledge base with either file upload or markdown content.
This endpoint supports two modes:
1. **File Upload**: Provide ''file'' parameter with document (PDF, DOCX, MD, TXT)
2. **Markdown Content**: Provide ''markdown_content'' parameter with markdown text
Process:
1. Validates and uploads content to S3
2. Creates a new knowledge base
3. Creates a document record (version 1)
4. Returns KB and document info for async processing
The document processing (chunking, vectorization) happens asynchronously via Celery.
Note: You must provide either ''file'' OR ''markdown_content'', but not both.'
operationId: upload_with_kb_creation_knowledge_bases_v2_upload_post
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/Body_upload_with_kb_creation_knowledge_bases_v2_upload_post'
required: true
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/KnowledgeBaseWithDocumentResponse'
'400':
description: Invalid file or upload error
'413':
description: File too large
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
- HTTPBearer: []
/knowledge_bases/v2/fork-template:
post:
tags:
- Knowledge Bases V2
summary: Fork Template V2
description: 'Create a new knowledge base from a template with v2 processing.
This endpoint:
1. Finds the template by name
2. Creates a new KB with document record (forked=True, source=template_name)
3. Uploads template content to S3
4. Queues Celery task for async processing (chunking, vectorization)
The document processing happens asynchronously via Celery.'
operationId: fork_template_v2_knowledge_bases_v2_fork_template_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ForkTemplateRequest'
required: true
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/KnowledgeBaseWithDocumentResponse'
'404':
description: Template not found
'400':
description: Duplicate name or invalid request
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
- HTTPBearer: []
/knowledge_bases/v2/{kb_id}/upload:
post:
tags:
- Knowledge Bases V2
summary: Upload To Existing Kb
description: 'Upload a new document version to an existing knowledge base.
This endpoint supports two modes:
1. **File Upload**: Provide ''file'' parameter with document (PDF, DOCX, MD, TXT)
2. **Markdown Content**: Provide ''markdown_content'' parameter with markdown text
Process:
1. Validates knowledge base exists and user has access
2. Creates document record (gets version number)
3. Uploads content to S3 with kb_id/version path
4. Updates document with S3 path
5. Returns document info for async processing
The new version will become active only after processing completes successfully.
The previous version remains active until the new one is ready.
Note: You must provide either ''file'' OR ''markdown_content'', but not both.'
operationId: upload_to_existing_kb_knowledge_bases_v2__kb_id__upload_post
deprecated: true
security:
- HTTPBearer: []
- HTTPBearer: []
parameters:
- name: kb_id
in: path
required: true
schema:
type: integer
title: Kb Id
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/Body_upload_to_existing_kb_knowledge_bases_v2__kb_id__upload_post'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/KnowledgeDocumentUploadResponse'
'400':
description: Invalid file or upload error
'404':
description: Knowledge base not found
'413':
description: File too large
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/knowledge_bases/v2/{kb_id}:
get:
tags:
- Knowledge Bases V2
summary: Get Knowledge Base Detail
description: 'Get knowledge base details with current document processing status.
Returns:
- Knowledge base information (name, description, content, etc.)
- Current active document status and metadata
- User-friendly status message based on processing state
- Processing error details if applicable
The status message provides clear feedback about:
- Upload success and queuing
- Processing progress
- Completion with success indicators
- Errors with actionable information'
operationId: get_knowledge_base_detail_knowledge_bases_v2__kb_id__get
security:
- HTTPBearer: []
- HTTPBearer: []
parameters:
- name: kb_id
in: path
required: true
schema:
type: integer
title: Kb Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/KnowledgeBaseDetailResponse'
'404':
description: Knowledge base not found
'403':
description: Permission denied
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Knowledge Bases V2
summary: Delete Knowledge Base
description: 'Soft delete a knowledge base and clean up associated vector data.
This endpoint:
1. Verifies KB exists and user has permission
2. Soft deletes all chunks (sets is_deleted=True, deleted_at, deleted_by in lightrag_doc_chunks)
3. Deletes all vectors from Weaviate (by workspace filter)
4. Soft deletes all documents (sets is_deleted=True, deleted_at, deleted_by in knowledge_documents)
5. Soft deletes the knowledge base (sets is_deleted=True)
6. Preserves chunk access logs for analytics
7. Leaves S3 files intact (for audit/recovery purposes)
Note: The knowledge base can be restored by setting is_deleted=False,
but vector data will need to be re-ingested from the preserved chunks.'
operationId: delete_knowledge_base_knowledge_bases_v2__kb_id__delete
deprecated: true
security:
- HTTPBearer: []
- HTTPBearer: []
parameters:
- name: kb_id
in: path
required: true
schema:
type: integer
title: Kb Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'404':
description: Knowledge base not found
'403':
description: Permission denied
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/knowledge_bases/v2/{kb_id}/documents:
get:
tags:
- Knowledge Bases V2
summary: Get Knowledge Base Documents
description: 'Get all document versions for a knowledge base.
Returns list of all documents (versions) ordered by version descending (newest first).
Each document includes:
- Basic info: filename, file type, file size, version
- Processing status and timestamps
- User who uploaded it
- Chunks information'
operationId: get_knowledge_base_documents_knowledge_bases_v2__kb_id__documents_get
security:
- HTTPBearer: []
- HTTPBearer: []
parameters:
- name: kb_id
in: path
required: true
schema:
type: integer
title: Kb Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items: {}
title: Response Get Knowledge Base Documents Knowledge Bases V2 Kb Id Documents Get
'404':
description: Knowledge base not found
'403':
description: Access denied
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/knowledge_bases/v2/{kb_id}/documents/{doc_id}/retry:
post:
tags:
- Knowledge Bases V2
summary: Retry Document Processing
description: 'Retry processing for a failed document.
This endpoint:
1. Validates the document exists and is in a failed state
2. Resets the document status to pending_ingestion
3. Queues a new Celery task for processing
Only documents with status: ingestion_failed, celery_failed, or airflow_failed can be retried.'
operationId: retry_document_processing_knowledge_bases_v2__kb_id__documents__doc_id__retry_post
security:
- HTTPBearer: []
- HTTPBearer: []
parameters:
- name: kb_id
in: path
required: true
schema:
type: integer
title: Kb Id
- name: doc_id
in: path
required: true
schema:
type: integer
title: Doc Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/KnowledgeDocumentUploadResponse'
'404':
description: Document not found
'403':
description: Access denied
'400':
description: Document is not in a failed state
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/knowledge_bases/v2/{kb_id}/documents/{doc_id}/chunks:
get:
tags:
- Knowledge Bases V2
summary: Get Document Chunks
description: 'Get all chunks for a specific document.
Returns all chunks for the specified document ordered by chunk_order_index.
Each chunk includes:
- Chunk ID and order index
- Content text
- Token count
- File path (if available)'
operationId: get_document_chunks_knowledge_bases_v2__kb_id__documents__doc_id__chunks_get
security:
- HTTPBearer: []
- HTTPBearer: []
parameters:
- name: kb_id
in: path
required: true
schema:
type: integer
title: Kb Id
- name: doc_id
in: path
required: true
schema:
type: integer
title: Doc Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentChunksResponse'
'404':
description: Document not found
'403':
description: Access denied
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/knowledge_bases/v2/query:
post:
tags:
- Knowledge Bases V2
summary: Query Knowledge Bases
description: 'Query across one or more knowledge bases with unified results.
This endpoint consolidates results from multiple KBs into a single answer,
leveraging the consolidated workspace architecture for cross-workspace search.
Request body must include:
- question: The query to search for
- knowledge_base_ids: List of knowledge base IDs to query across'
operationId: query_knowledge_bases_knowledge_bases_v2_query_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KnowledgeQueryRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/KnowledgeQueryResponse'
'404':
description: No accessible knowledge bases found
'403':
description: Access denied
'500':
description: Query failed
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
- HTTPBearer: []
/knowledge_bases/v2/{kb_id}/feedback:
post:
tags:
- Knowledge Bases V2
summary: Submit Knowledge Feedback
description: 'Submit feedback for a knowledge base chunk/learning.
Feedback is stored in the database and sent to Slack for visibility.'
operationId: submit_knowledge_feedback_knowledge_bases_v2__kb_id__feedback_post
deprecated: true
security:
- HTTPBearer: []
- HTTPBearer: []
parameters:
- name: kb_id
in: path
required: true
schema:
type: integer
title: Kb Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/KnowledgeFeedbackRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/KnowledgeFeedbackResponse'
'404':
description: Knowledge base not found
'403':
description: Access denied
'500':
description: Failed to submit feedback
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
PrivacySetting:
type: string
enum:
- public
- private
title: PrivacySetting
KnowledgeQueryResponse:
properties:
answer:
type: string
title: Answer
chunks:
anyOf:
- items:
$ref: '#/components/schemas/ChunkReference'
type: array
- type: 'null'
title: Chunks
type: object
required:
- answer
title: KnowledgeQueryResponse
description: Response from querying a knowledge base
KnowledgeFeedbackResponse:
properties:
ok:
type: boolean
title: Ok
message:
anyOf:
- type: string
- type: 'null'
title: Message
type: object
required:
- ok
title: KnowledgeFeedbackResponse
description: Response for knowledge feedback submission
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
KnowledgeBaseDetailResponse:
properties:
id:
type: integer
title: Id
public_id:
type: string
title: Public Id
name:
type: string
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
icon:
anyOf:
- type: string
- type: 'null'
title: Icon
content:
additionalProperties: true
type: object
title: Content
privacy:
$ref: '#/components/schemas/PrivacySetting'
user_id:
type: integer
title: User Id
created_at:
type: string
format: date-time
title: Created At
updated_at:
type: string
format: date-time
title: Updated At
forked:
type: boolean
title: Forked
default: false
source:
anyOf:
- type: string
- type: 'null'
title: Source
current_document_id:
anyOf:
- type: integer
- type: 'null'
title: Current Document Id
current_document_public_id:
anyOf:
- type: string
- type: 'null'
title: Current Document Public Id
current_version:
anyOf:
- type: integer
- type: 'null'
title: Current Version
processing_status:
anyOf:
- type: string
- type: 'null'
title: Processing Status
processing_started_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Processing Started At
processing_completed_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Processing Completed At
processing_error:
anyOf:
- type: string
- type: 'null'
title: Processing Error
total_chunks:
anyOf:
- type: integer
- type: 'null'
title: Total Chunks
celery_task_id:
anyOf:
- type: string
- type: 'null'
title: Celery Task Id
original_filename:
anyOf:
- type: string
- type: 'null'
title: Original Filename
file_type:
anyOf:
- type: string
- type: 'null'
title: File Type
file_size_bytes:
anyOf:
- type: integer
- type: 'null'
title: File Size Bytes
document_user_id:
anyOf:
- type: integer
- type: 'null'
title: Document User Id
document_created_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Document Created At
document_updated_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Document Updated At
status_message:
type: string
title: Status Message
type: object
required:
- id
- public_id
- name
- content
- privacy
- user_id
- created_at
- updated_at
- status_message
title: KnowledgeBaseDetailResponse
description: Detailed response for knowledge base with current document status
KnowledgeQueryRequest:
properties:
question:
type: string
title: Question
knowledge_base_ids:
items:
type: integer
type: array
minItems: 1
title: Knowledge Base Ids
description: List of knowledge base IDs to query across
type: object
required:
- question
- knowledge_base_ids
title: KnowledgeQueryRequest
description: Request for querying a knowledge base
KnowledgeBaseWithDocumentResponse:
properties:
success:
type: boolean
title: Success
knowledge_base_id:
type: integer
title: Knowledge Base Id
knowledge_base_public_id:
type: string
title: Knowledge Base Public Id
document_id:
type: integer
title: Document Id
document_public_id:
type: string
title: Document Public Id
name:
type: string
title: Name
version:
type: integer
title: Version
processing_status:
type: string
title: Processing Status
celery_task_id:
anyOf:
- type: string
- type: 'null'
title: Celery Task Id
message:
anyOf:
- type: string
- type: 'null'
title: Message
type: object
required:
- success
- knowledge_base_id
- knowledge_base_public_id
- document_id
- document_public_id
- name
- version
- processing_status
title: KnowledgeBaseWithDocumentResponse
description: Response after creating knowledge base with document
KnowledgeFeedbackRequest:
properties:
chunk_id:
type: integer
title: Chunk Id
feedback:
type: string
pattern: ^(helpful|not_helpful)$
title: Feedback
comment:
anyOf:
- type: string
- type: 'null'
title: Comment
type: object
required:
- chunk_id
- feedback
title: KnowledgeFeedbackRequest
description: Request for submitting feedback on a knowledge chunk/learning
ChunkReference:
properties:
chunk_id:
type: string
title: Chunk Id
relevance_score:
type: number
title: Relevance Score
content:
type: string
title: Content
file_path:
anyOf:
- type: string
- type: 'null'
title: File Path
title:
anyOf:
- type: string
- type: 'null'
title: Title
chunk_order_index:
anyOf:
- type: integer
- type: 'null'
title: Chunk Order Index
metadata:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Metadata
type: object
required:
- chunk_id
- relevance_score
- content
title: ChunkReference
description: Reference to a chunk used in query response with full content
ForkTemplateRequest:
properties:
template_name:
type: string
title: Template Name
new_name:
anyOf:
- type: string
- type: 'null'
title: New Name
type: object
required:
- template_name
title: ForkTemplateRequest
Body_upload_with_kb_creation_knowledge_bases_v2_upload_post:
properties:
name:
type: string
title: Name
file:
anyOf:
- type: string
format: binary
- type: 'null'
title: File
markdown_content:
anyOf:
- type: string
- type: 'null'
title: Markdown Content
description:
anyOf:
- type: string
- type: 'null'
title: Description
privacy:
anyOf:
- $ref: '#/components/schemas/PrivacySetting'
- type: 'null'
default: private
chunking_strategy:
anyOf:
- type: string
- type: 'null'
title: Chunking Strategy
default: hybrid
icon:
anyOf:
- type: string
- type: 'null'
title: Icon
type: object
required:
- name
title: Body_upload_with_kb_creation_knowledge_bases_v2_upload_post
KnowledgeDocumentUploadResponse:
properties:
success:
type: boolean
title: Success
document_id:
type: integer
title: Document Id
document_public_id:
type: string
title: Document Public Id
knowledge_base_id:
type: integer
title: Knowledge Base Id
version:
type: integer
title: Version
processing_status:
type: string
title: Processing Status
celery_task_id:
anyOf:
- type: string
- type: 'null'
title: Celery Task Id
message:
anyOf:
- type: string
- type: 'null'
title: Message
type: object
required:
- success
- document_id
- document_public_id
- knowledge_base_id
- version
- processing_status
title: KnowledgeDocumentUploadResponse
description: Response after uploading a knowledge base document
ChunkModel:
properties:
chunk_id:
type: string
title: Chunk Id
chunk_order_index:
type: integer
title: Chunk Order Index
content:
type: string
title: Content
tokens:
type: integer
title: Tokens
file_path:
anyOf:
- type: string
- type: 'null'
title: File Path
title:
anyOf:
- type: string
- type: 'null'
title: Title
summary:
anyOf:
- type: string
- type: 'null'
title: Summary
tags:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Tags
knowledge_type:
anyOf:
- type: string
- type: 'null'
title: Knowledge Type
code_snippets:
anyOf:
- items:
additionalProperties: true
type: object
type: array
- type: 'null'
title: Code Snippets
retrieval_count:
anyOf:
- type: integer
- type: 'null'
title: Retrieval Count
default: 0
type: object
required:
- chunk_id
- chunk_order_index
- content
- tokens
title: ChunkModel
description: Schema for a single document chunk
Body_upload_to_existing_kb_knowledge_bases_v2__kb_id__upload_post:
properties:
file:
anyOf:
- type: string
format: binary
- type: 'null'
title: File
markdown_content:
anyOf:
- type: string
- type: 'null'
title: Markdown Content
chunking_strategy:
anyOf:
- type: string
- type: 'null'
title: Chunking Strategy
default: hybrid
type: object
title: Body_upload_to_existing_kb_knowledge_bases_v2__kb_id__upload_post
DocumentChunksResponse:
properties:
document_id:
type: integer
title: Document Id
document_public_id:
type: string
title: Document Public Id
document_name:
type: string
title: Document Name
version:
type: integer
title: Version
total_chunks:
type: integer
title: Total Chunks
chunks:
items:
$ref: '#/components/schemas/ChunkModel'
type: array
title: Chunks
type: object
required:
- document_id
- document_public_id
- document_name
- version
- total_chunks
- chunks
title: DocumentChunksResponse
description: Response for document chunks
securitySchemes:
HTTPBearer:
type: http
scheme: bearer