Mjara Docs
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:

ParameterTypeDefaultDescription
pageint1Page number (>=1)
page_sizeint20Items 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
  }
}

On this page