API Endpoints¶
This page documents all available REST API endpoints in RAG Modulo.
Base URL¶
Authentication¶
All endpoints require JWT authentication unless otherwise noted.
See Authentication for details on obtaining and using tokens.
Collections¶
List Collections¶
Response:
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "My Documents",
"description": "Personal document collection",
"created_at": "2025-01-09T10:00:00Z"
}
]
Create Collection¶
Request:
{
"name": "My Documents",
"description": "Personal document collection",
"user_id": "123e4567-e89b-12d3-a456-426614174000"
}
Response: 201 Created
Get Collection¶
Response:
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "My Documents",
"description": "Personal document collection",
"document_count": 42,
"created_at": "2025-01-09T10:00:00Z"
}
Delete Collection¶
Response: 204 No Content
Documents¶
Upload Document¶
Request (multipart/form-data):
Supported Formats: PDF, DOCX, TXT, MD, HTML, CSV, Images (with OCR)
Response: 201 Created
{
"id": "456e7890-e89b-12d3-a456-426614174000",
"filename": "document.pdf",
"collection_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "processing"
}
List Documents¶
Response:
[
{
"id": "456e7890-e89b-12d3-a456-426614174000",
"filename": "document.pdf",
"status": "indexed",
"created_at": "2025-01-09T10:00:00Z"
}
]
Delete Document¶
Response: 204 No Content
Search¶
Basic Search¶
Request:
{
"question": "What is machine learning?",
"collection_id": "123e4567-e89b-12d3-a456-426614174000",
"user_id": "123e4567-e89b-12d3-a456-426614174000"
}
Response:
{
"answer": "Machine learning is a subset of artificial intelligence...",
"sources": [
{
"document_id": "456e7890-e89b-12d3-a456-426614174000",
"chunk_id": "chunk_1",
"content": "Machine learning involves...",
"score": 0.95
}
],
"metadata": {
"total_tokens": 1250,
"response_time_ms": 850
}
}
Chain of Thought Search¶
Request:
{
"question": "How does machine learning work and what are its components?",
"collection_id": "123e4567-e89b-12d3-a456-426614174000",
"user_id": "123e4567-e89b-12d3-a456-426614174000",
"config_metadata": {
"cot_enabled": true,
"show_cot_steps": true
}
}
Response:
{
"answer": "Machine learning works through...",
"reasoning_steps": [
{
"sub_question": "What is machine learning?",
"answer": "Machine learning is...",
"sources": [...]
},
{
"sub_question": "What are the key components?",
"answer": "The key components are...",
"sources": [...]
}
],
"sources": [...],
"metadata": {
"cot_used": true,
"total_tokens": 3500,
"response_time_ms": 2600
}
}
Conversations¶
Create Session¶
Request:
Response: 201 Created
Add Message¶
Request:
{
"session_id": "789e0123-e89b-12d3-a456-426614174000",
"role": "user",
"message_type": "question",
"content": "What is machine learning?",
"token_count": 15
}
Response: 201 Created
Get Session History¶
Response:
{
"session_id": "789e0123-e89b-12d3-a456-426614174000",
"messages": [
{
"id": "msg_1",
"role": "user",
"content": "What is machine learning?",
"created_at": "2025-01-09T10:00:00Z"
},
{
"id": "msg_2",
"role": "assistant",
"content": "Machine learning is...",
"created_at": "2025-01-09T10:00:05Z"
}
]
}
Pipelines¶
List Pipelines¶
Response:
[
{
"id": "pipe_123",
"name": "Default Pipeline",
"user_id": "123e4567-e89b-12d3-a456-426614174000",
"is_default": true
}
]
Create Pipeline¶
Request:
{
"name": "Custom Pipeline",
"user_id": "123e4567-e89b-12d3-a456-426614174000",
"stages": ["query_rewriting", "retrieval", "reranking", "generation"]
}
Response: 201 Created
Health Check¶
Service Health¶
Response:
{
"status": "healthy",
"version": "1.0.0",
"services": {
"database": "up",
"vector_db": "up",
"llm_provider": "up"
}
}
Note: This endpoint does not require authentication.
Rate Limiting¶
API endpoints are rate-limited to prevent abuse:
- Default: 100 requests per minute per user
- Search: 20 requests per minute per user
- Upload: 10 requests per minute per user
Rate limit headers are included in responses:
Pagination¶
List endpoints support pagination:
Query Parameters: - page - Page number (default: 1) - page_size - Items per page (default: 20, max: 100)
Response Headers:
See Also¶
- Authentication - Authentication guide
- API Schemas - Request/response schemas
- Examples - API usage examples
- Error Handling - Error response format