Documents
Upload documents to knowledge bases for indexing, manage document lifecycle, and configure URL/feed sources for automatic content ingestion.All API requests require a valid JWT token in the
Authorization: Bearer <token> header. The API Gateway decodes the JWT and forwards auth context (user-id, organization-id, user-email, x-platform-role, x-org-role) as headers to downstream services.Upload Document
Upload a file to a knowledge base. The document is stored and queued for asynchronous processing (text extraction, chunking, embedding, and optional graph extraction).Path Parameters
string
required
KB UUID.
Request Body
Multipart file upload. Send the file as amultipart/form-data request.
Supported File Types
Response (201)
object
The created document record.
string
BullMQ job ID for tracking processing progress.
string
Confirmation message.
Processing Pipeline
After upload, documents go through this async pipeline:- Load: LlamaParse (for PDF/DOCX) or LangChain fallback loaders
- Chunk: Split into chunks (1000 characters, 200 overlap)
- Embed: Generate multimodal embeddings via Gemini Embedding 2 (3072 dimensions)
- Store: Upsert vectors to Pinecone (production) or ChromaDB (local)
- Graph (optional): Extract entities and relationships
- Summarize (optional): Generate document summary for KB map
Processing Statuses
List Documents
List all documents in a knowledge base.Path Parameters
string
required
KB UUID.
Query Parameters
number
default:"50"
Maximum results.
number
default:"0"
Pagination offset.
string
Filter to one processing status:
pending, processing, completed, failed. Applied server-side — an unrecognized value is ignored (treated as no filter), matching the “All” tab in the UI.string
Case-insensitive substring match on document title. Applied server-side.
string
default:"published"
Result ordering:
recent (created_at DESC, id DESC — fresh uploads first, even on feed-fed KBs whose other rows all carry publish dates) or published (legacy published_at DESC NULLS LAST, created_at DESC feed order). An unrecognized value is ignored and falls back to published. The Documents tab requests recent explicitly so new uploads always land on page 1.Response (200)
object[]
Array of document objects.
number
Total count for the applied filters — not the unfiltered KB total and not the current page size.
?status=failed on a KB with 1,809 documents and 4 failed returns total: 4, regardless of limit/offset.number
Applied limit.
number
Applied offset.
curl
Get Document Chunks
Paginated list of a document’s indexed chunks. Powers the document detail page’s chunk viewer.Path Parameters
string
required
KB UUID.
string
required
Document UUID.
Query Parameters
number
default:"50"
Maximum results.
number
default:"0"
Pagination offset.
Response (200)
object[]
Array of chunk objects.
number
Total chunk count for this document.
number
Applied limit.
number
Applied offset.
curl
Delete Document
Delete a document and its associated chunks and embeddings from a knowledge base.Path Parameters
string
required
KB UUID.
string
required
Document UUID.
Response (200)
string
Confirmation.
string
Deleted document UUID.
number
Number of chunk/vector rows removed.
Retry Failed Document
Re-queue a failed document for processing. Resets the status topending and creates a new processing job.
Path Parameters
string
required
KB UUID.
string
required
Document UUID.
Response (200)
string
Confirmation.
string
Document UUID.
string
New processing job ID.
URL Sources
Add URL Source
Add a URL or feed source to a knowledge base. Content is fetched, processed, and indexed. Supports single URLs, RSS feeds, and web crawling.Path Parameters
string
required
KB UUID.
Request Body
string
required
Source URL (webpage, RSS feed, or social media profile).
string
default:"url"
Source type:
url, rss, linkedin, twitter, medium.boolean
default:"false"
Enable automatic periodic re-sync.
number
default:"60"
Sync interval in minutes (when
syncEnabled is true).number
Maximum items to fetch from feeds.
number
Maximum pages to crawl.
number
Link crawl depth (0 = single page only).
string
Strategy for media content:
native (embed directly) or transcription (convert to text first).boolean
Enable visual entity extraction from images.
Light Scrape
Quick URL scrape for content preview. Fetches and extracts text from up to 10 URLs without full KB indexing. Used by the Creator Wizard for AI profile generation.Request Body
object[]
required
Array of URLs to scrape (max 10).
Response (200)
object[]
Scrape results for each URL.
curl
Light scrape has a 10-second timeout per URL and returns a maximum of 2000 characters of text per URL. For full content indexing, use the document upload or URL source endpoints.

