API Reference

URL Identifier

  • To obtain your collection's url_identifier go to API Keys.

Create Chat

Endpoint: POST /api/rag/{url_identifier}/chat/

Request Body:

{
    "message": "What is this collection about?",
    "modelProvider": "llama-4-17b", // Optional. Available options: "llama-4-17b", "llama-3-8b", "deepseek-r1-8b", "qwen-3-8b"
    "markdown": false // Optional. Defaults to false. Set to true for markdown-formatted responses
}

Response:

{
    "status": "success",
    "chat_id": "550e8400-e29b-41d4-a716-446655440000",
    "messages": [
        {
            "content": "What is this collection about?",
            "is_user": true,
            "model_provider": "llama-4-17b",
            "sources": [],
            "created_at": "2025-01-01T00:00:00Z"
        },
        {
            "content": "This collection contains...",
            "is_user": false,
            "model_provider": "llama-4-17b",
            "sources": [
                {
                    "id": 1,
                    "title": "Document 1",
                    "description": "...",
                    "type": "file",
                    "page_number": 1
                }
            ],
            "created_at": "2025-01-01T00:00:00Z"
        }
    ]
}

Send Message

Endpoint: POST /api/rag/{url_identifier}/chat/{chat_id}/send/

Request Body:

{
    "message": "Tell me more about the first document",
    "modelProvider": "llama-4-17b", # Optional. Available options: "llama-4-17b", "llama-3-8b", "deepseek-r1-8b", "qwen-3-8b"
    "markdown": false # Optional. Defaults to false. Set to true for markdown-formatted responses
}

Response:

{
    "status": "success",
    "messages": [
        // Previous messages...
        {
            "content": "Tell me more about the first document",
            "is_user": true,
            "model_provider": "llama-4-17b",
            "sources": [],
            "created_at": "2025-01-01T00:00:00Z"
        },
        {
            "content": "The first document discusses...",
            "is_user": false,
            "model_provider": "llama-4-17b",
            "sources": [
                {
                    "id": 1,
                    "title": "Document 1",
                    "description": "...",
                    "type": "file",
                    "page_number": 2
                }
            ],
            "created_at": "2025-01-01T00:00:00Z"
        }
    ]
}

Get Chat History

Endpoint: GET /api/rag/{url_identifier}/chat/{chat_id}/messages/

Response:

{
    "status": "success",
    "messages": [
        {
            "content": "What is this collection about?",
            "is_user": true,
            "model_provider": "llama-4-17b",
            "sources": [],
            "created_at": "2025-01-01T00:00:00Z"
        },
        {
            "content": "This collection contains...",
            "is_user": false,
            "model_provider": "llama-4-17b",
            "sources": [
                {
                    "id": 1,
                    "title": "Document 1",
                    "description": "...",
                    "type": "file",
                    "page_number": 1
                }
            ],
            "created_at": "2025-01-01T00:00:00Z"
        }
    ]
}

List of all Collections

Endpoint: GET /api/rag/collections/

Response:

{
    "status": "success",
    "collections": [
        {
            "id": "abc12345",
            "name": "My Collection",
            "description": "A test collection",
            "type": "knowledge-base",
            "is_owner": true,
            "sharing_status": "restricted",
            "created_at": "2025-01-01T00:00:00Z",
            "updated_at": "2025-01-01T00:00:00Z",
            "document_count": 5,
            "is_vectordb_ready": true
        }
    ]
}

Create Collection

Endpoint: POST /api/rag/collections/create/

Request Body:

{
    "name": "My New Collection",
    "description": "A collection created via API",
    "type": "knowledge-base",
    "collection_external_knowledge_mode": false
}

Response:

{
    "status": "success",
    "collections": [
        {
            "id": "abc12345",
            "name": "My Collection",
            "description": "A test collection",
            "type": "knowledge-base",
            "is_owner": true,
            "sharing_status": "restricted",
            "created_at": "2025-01-01T00:00:00Z",
            "updated_at": "2025-01-01T00:00:00Z",
            "document_count": 5,
            "is_vectordb_ready": true
        }
    ]
}

Get Collection Details

Endpoint: GET /api/rag/collections/{url_identifier}/

Response:

{
    "status": "success",
    "collection": {
        "id": "abc12345",
        "name": "My Collection",
        "description": "A test collection",
        "type": "knowledge-base",
        "sharing_status": "restricted",
        "is_owner": true,
        "role": "owner",
        "created_at": "2025-01-01T00:00:00Z",
        "updated_at": "2025-01-01T00:00:00Z",
        "is_vectordb_ready": true,
        "collection_external_knowledge_mode": false,
        "document_count": 5
    }
}

Update Collection

Endpoint: PUT /api/rag/collections/{url_identifier}/update/

Request Body:

{
    "name": "Updated Collection Name",  # Optional
    "description": "Updated description",  # Optional
    "collection_external_knowledge_mode": false  # Optional
}

Response:

{
    "status": "success",
    "collection": {
        "id": "abc12345",
        "name": "Updated Collection Name",
        "description": "Updated description",
        "type": "knowledge-base",
        "collection_external_knowledge_mode": false,
        "updated_at": "2025-01-01T00:00:00Z"
    }
}

Delete Collection

Endpoint: DELETE /api/rag/collections/{url_identifier}/delete/

Response:

{
    "status": "success",
    "message": "Collection deleted successfully"
}

Get List of Documents in Collection

Endpoint: GET /api/rag/collections/{url_identifier}/documents/ Response:

{
    "status": "success",
    "documents": [
        {
            "id": "123",
            "title": "document.pdf",
            "type": "file",
            "uploaded_at": "2025-01-01T00:00:00Z",
            "size": 1024000,
            "url": "/media/1_username/document.pdf",
            "company": "Example Corp",
            "tags": ["finance", "report"]
        }
    ]
}

Upload Files to Collection

Upload files to your collection using standard multipart form data.

Endpoint: POST /api/rag/collections/{url_identifier}/documents/add/ Request Body:

{
    "files": [  // Optional
        {
            "filename": "document.pdf",
            "data": "my_docs/file_path.pdf" # file path
        }
    ]
}

Response:

{
    "status": "success",
    "message": "Successfully added 2 document(s)",
    "added_documents": [
        {
            "id": "123",
            "title": "document.pdf",
            "type": "file",
            "uploaded_at": "2025-01-01T00:00:00Z",
            "size": 1024000
        }
    ]
}

Delete Document

Endpoint: DELETE /api/rag/collections/{url_identifier}/documents/{document_id}/{document_type}/delete/ Parameters:

  • document_type: "file"

Response:

{
    "status": "success",
    "message": "Document deleted successfully"
}

Delete All Documents

Endpoint: DELETE /api/rag/collections/{url_identifier}/documents/delete-all/ Response:

{
    "status": "success",
    "message": "All documents deleted successfully"
}

Last updated