API Reference
Documents Endpoints
Document CRUD operations
Documents Endpoints
Base path: /api/v1/documents
GET /api/v1/documents
List all documents with pagination.
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
page | int | 1 | Page number (>=1) |
page_size | int | 20 | Items per page (1-100) |
Response:
{
"documents": [
{
"id": "abc123",
"text": "Document content...",
"metadata": {
"title": "Invoice Guide",
"source": "https://docs.example.com",
"section": "docs"
}
}
],
"total": 1523,
"page": 1,
"page_size": 20,
"pages": 77
}GET /api/v1/documents/{doc_id}
Get a specific document by ID.
Response:
{
"id": "abc123",
"text": "Document content here...",
"metadata": {
"title": "Invoice Guide",
"source": "https://docs.example.com",
"section": "documentation"
}
}DELETE /api/v1/documents/{doc_id}
Delete a single document by ID.
Response:
{
"doc_id": "abc123",
"status": "deleted",
"message": "Document deleted successfully"
}Status values: deleted, not_found, error
POST /api/v1/documents/delete
Batch delete multiple documents by ID.
Request Body:
{
"doc_ids": ["abc123", "def456", "ghi789"]
}Response:
{
"deleted": 2,
"skipped": 1,
"errors": 0,
"details": [
{"doc_id": "abc123", "status": "deleted", "message": null},
{"doc_id": "def456", "status": "deleted", "message": null},
{"doc_id": "ghi789", "status": "not_found", "message": "Document not found"}
]
}POST /api/v1/documents/delete/by-source
Delete all documents from a specific source URL.
Request Body:
{
"source": "https://docs.example.com/page"
}POST /api/v1/documents/delete/by-filter
Delete documents matching a metadata filter.
Request Body:
{
"where": {"language": "en"}
}Filter examples:
{"language": "en"}— Delete all English documents{"section": "docs"}— Delete all documents in a section{"source": "https://example.com"}— Delete by source
GET /api/v1/documents/sources
List all unique document sources.
Response:
{
"sources": [
"https://docs.example.com/page1",
"https://docs.example.com/page2",
"uploaded/manual.pdf"
],
"count": 45
}GET /api/v1/documents/stats
Get document statistics.
Response:
{
"total_documents": 1523,
"by_source": {
"https://docs.example.com": 500,
"uploaded/files": 1023
},
"by_language": {
"en": 1200,
"ar": 323
}
}