← Back to Docs

Documents API

Upload, list, and manage documents and knowledge bases via the API.

Overview

The Documents API provides programmatic access to knowledge bases and documents. Use it to automate document uploads, monitor processing status, and manage your content.

List Knowledge Bases

Get all knowledge bases for a website.

GET /api/websites/:website_id/knowledge-bases

Response:
[
  {
    "id": "uuid",
    "name": "Product Docs",
    "document_count": 5,
    "created_at": "2024-01-01T00:00:00Z"
  }
]

Create a Knowledge Base

Create a new knowledge base within a website.

POST /api/websites/:website_id/knowledge-bases

Body:
{
  "name": "FAQ"
}

Response:
{
  "id": "uuid",
  "name": "FAQ",
  "document_count": 0,
  "created_at": "2024-01-01T00:00:00Z"
}

Upload a Document

Upload a document to a knowledge base. Use multipart form data.

POST /api/websites/:website_id/knowledge-bases/:kb_id/documents

Content-Type: multipart/form-data
Body: file=@document.pdf

Response:
{
  "id": "uuid",
  "filename": "document.pdf",
  "status": "processing",
  "chunk_count": 0,
  "created_at": "2024-01-01T00:00:00Z"
}

Get Document Status

Check the processing status of a document. Status values: `pending`, `processing`, `completed`, `failed`.

GET /api/websites/:website_id/knowledge-bases/:kb_id/documents/:doc_id

Response:
{
  "id": "uuid",
  "filename": "document.pdf",
  "status": "completed",
  "chunk_count": 42,
  "created_at": "2024-01-01T00:00:00Z"
}

Delete a Document

Remove a document and all its chunks from the knowledge base. This action is irreversible.

DELETE /api/websites/:website_id/knowledge-bases/:kb_id/documents/:doc_id

Response:
{
  "message": "Document deleted"
}