---
title: "Get Knowledge Base V2"
method: GET
path: "/v1/knowledge-bases/{knowledge_base_id}"
tags: ["V1 - Knowledge Bases"]
---

# Get Knowledge Base V2

`GET /v1/knowledge-bases/{knowledge_base_id}`

## Request

- Base URL: `https://api.app.noxus.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.app.noxus.ai/v1/knowledge-bases/{knowledge_base_id}`
- Auth: API key in header `X-API-Key`

## Path parameters

- `knowledge_base_id` string, required

## Response `200`

Successful Response

- KnowledgeBaseWithDocuments
  - `id` string, uuid, required
  - `group_id` string, uuid, required
  - `name` string, required
  - `status` 'created' | 'trained' | 'training' | 'error', required
  - `description` string, required
  - `document_types` string[], required
  - `kb_type` 'temporary' | 'entity', required
  - `size` number, required
  - `num_docs` integer, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `error` object, nullable, required
  - `version` 'v2' | 'v3', required
  - `summary` string, nullable
  - `needs_summary_update` boolean
  - `meta` object, nullable
  - `embedding_health` EmbeddingHealth
    - `healthy` boolean, required
    - `message` string
    - `embedding_model` string
  - `health` KBHealth: Structural health of a v3 knowledge base, computed at request time. Returned on every ``GET /kbs/{id}`` so the FE can surface an inline banner + CTA when the KB needs repair. Four concrete issues can be detected by ``KBManagementService.compute_health``: - ``vector_table_missing`` — pgvector table was never created or was dropped out from under us. Repair rebuilds the table at the declared dim and queues every document for re-ingestion. - ``index_struct_missing`` — the pgvector table is present but the kirby ``index_struct`` row is absent. Repair rebuilds the struct anchored to the existing column; no documents need reprocessing. - ``dim_drift`` — declared dim no longer matches the pgvector column width. Retrieval still works against the actual dim, but new INSERTs fail. Repair recreates the table at the declared dim and queues every document for re-ingestion. - ``resolver_error`` — the resolver itself failed (DB outage, unexpected column type). Not a repair-able state; the user is asked to retry later. HTTP stays 200 so the FE can render the apology inline instead of a blank error page.
    - `status` 'ok' | 'needs_repair' | 'error', required
    - `issue` 'vector_table_missing' | 'index_struct_missing' | 'dim_drift' | 'resolver_error' | 'embedding_config_error', nullable
    - `detected_dim` integer, nullable
    - `declared_dim` integer, nullable
    - `message` string
    - `action` string
  - `total_documents` integer, required
  - `training_documents` integer, required
  - `trained_documents` integer, required
  - `error_documents` integer, required
  - `uploaded_documents` integer, required
  - `source_types` object, required
  - `training_source_types` string[], required
  - `settings_` KBConfig
    - `retrieval_info` string: Information about retrieval settings
    - `retrieval_method` string
    - `reranking_enabled` boolean: Retrieve a wider candidate pool, then reorder it with a reranker before returning results.
    - `rerankers` string[]: Tried in order. If one is unavailable the next takes over. Leave empty to use the rerankers enabled for your workspace.
    - `retrieval_top_k` integer: Maximum number of results to return
    - `retrieval_top_k_window` integer[]: Searches against this Knowledge Base always return between min and max results. Requested top_k values outside this window are clamped.
    - `fts_weight` number: Weight for keyword search in hybrid methods
    - `semantic_weight` number: Weight for semantic search in hybrid methods
    - `rrf_k` integer: RRF constant k - higher values reduce the impact of rank differences
    - `threshold_enabled` boolean: Semantic retrieval only: exclude results below the minimum similarity score. Ignored by every other retrieval method.
    - `threshold` number: Minimum cosine similarity for semantic retrieval results. Ignored by every other retrieval method.
    - `reranker_type` string: The reranking method to use after initial retrieval
    - `reranker_top_k` integer: Number of results to return from reranker
    - `reranker_threshold_enabled` boolean: Enable minimum score threshold for reranker
    - `reranker_threshold` number: Minimum score threshold for reranker results
    - `vertex_model` string: Vertex AI ranking model to use
    - `ingestion_info` string: Information about ingestion settings
    - `batch_size` integer: Number of documents to process in each batch
    - `default_chunk_size` integer: Default size for text chunks in characters
    - `default_chunk_overlap` integer: Default overlap between chunks in characters
    - `enrich_chunks_mode` string: How to enrich chunks with additional context
    - `enrich_pre_made_qa` boolean: Generate Q&A pairs from the document content
    - `pdf_info` string: PDF-specific processing settings
    - `pdf_extract_images` boolean: Extract and process images from PDF files
    - `pdf_chunk_size` integer: Chunk size for PDF documents
    - `pdf_chunk_overlap` integer: Chunk overlap for PDF documents
    - `pdf_ocr_enabled` boolean: Enable OCR processing for scanned PDFs
    - `pdf_ocr_confidence` number: Minimum confidence threshold for OCR text recognition
    - `pdf_ocr_language` string: Language hint for OCR processing
    - `text_info` string: Text-specific processing settings
    - `text_chunking_enabled` boolean: Enable automatic chunking for text files
    - `text_chunk_size` integer: Chunk size for text documents
    - `text_chunk_overlap` integer: Chunk overlap for text documents
    - `text_preserve_formatting` boolean: Preserve original text formatting and structure
    - `html_info` string: HTML-specific processing settings
    - `html_extract_text_only` boolean: Extract only text content from HTML
    - `html_include_tables` boolean: Include table content from HTML
    - `html_include_images` boolean: Include image references from HTML
    - `html_ingest_as_markdown` boolean: Convert HTML to Markdown before chunking. Preserves headings, lists, links, and tables while dropping tag noise, producing smaller, more semantic chunks. Recommended for crawled web pages; turn off only to reproduce legacy raw-HTML behaviour.
    - `image_info` string: Image-specific processing settings
    - `image_ocr_enabled` boolean: Enable OCR processing for images
    - `image_ocr_confidence` number: Minimum confidence threshold for image OCR
    - `csv_row_as_document` boolean: Treat each row as a separate chunk.
    - `csv_include_headers` boolean: Include headers in the text representation
    - `csv_auto_detect_delimiter` boolean: Automatically detect CSV delimiter
    - `csv_delimiter` string: Custom delimiter for CSV parsing
    - `csv_encoding` string: File encoding for CSV files
    - `xlsx_row_as_document` boolean: Excel: emit one chunk per row (with cell coordinates and detected headers). Off → render the whole sheet as a markdown table and chunk by token budget, closer to the legacy text-based behavior. Default on; toggle off if a workbook has unusual structure that confuses row mode.
    - `xlsx_include_headers` boolean: Excel: include detected column headers alongside cell coordinates in row chunks.
    - `tabular_ingest_all_rows` boolean: Ingest every row regardless of size. Turn on only for small-to-medium workbooks; very large files will slow retrieval and may exhaust worker memory.
    - `tabular_max_rows` integer: Excel & CSV: max rows ingested per sheet when the 'Ingest all rows' toggle is off. Rows beyond this are dropped and the document is flagged as truncated.
    - `embedding_model` string[]: The model to use for embedding documents
    - `embedding_dimension` integer, nullable: Leave unset to use the model's default dimension.
    - `mm_embedding_model` string[]: The model to use for embedding documents
    - `auto_summary` boolean: Keep an AI-generated summary of this Knowledge Base up to date
    - `citation_mode` 'source_url' | 'noxus_url' | 'metadata_key': Where a citation of a document from this Knowledge Base points.
    - `citation_url_key` string: Metadata field holding the URL to cite. Use a dot for nested fields. Documents without it fall back to the Noxus copy.
    - `citation_title_mode` 'document_name' | 'source_title' | 'metadata_key': What a citation of a document from this Knowledge Base reads as.
    - `citation_title_key` string: Metadata field holding the title to show. Use a dot for nested fields. Documents without it are cited by their name.
  - `documents` KnowledgeBaseDocumentWithCitation[]
    - `id` string, uuid, required
    - `summary` string, nullable, required
    - `short_summary` string, nullable
    - `doc_type` string, nullable
    - `source_type` string, nullable
    - `source_external_id` string, nullable
    - `source_metadata` object, nullable
    - `content_type` string, nullable
    - `has_conversion` boolean, nullable
    - `status` 'trained' | 'training' | 'error' | 'uploaded' | 'folder' | 'outdated', required
    - `doc_metadata` object, nullable
    - `error` object, nullable, required
    - `name` string, nullable
    - `prefix` string, nullable
    - `uri` string, nullable
    - `updated_at` string, date-time, required
    - `created_at` string, date-time, required
    - `size` integer, required
    - `file_id` string, uuid, nullable
    - `run_id` string, uuid, nullable
    - `dismissed` boolean, nullable
    - `warnings` unknown[], nullable
      - unknown
    - `needs_reingestion` boolean, nullable
    - `citation_url` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/noxus/apis/noxus-backend.md) - [All operations](https://skmtc.dev/noxus/apis/noxus-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/noxus/apis/noxus-backend/revisions/0e37810b7ad5?raw)
