DokuBrain

Corpus

RAG queries, hybrid search, and AI reasoning

RAG query — ask questions about your documents

Ask a natural-language question and get an AI-generated answer with source citations from your document library.

POST
/corpus/query

Authorization

AuthorizationRequiredBearer <token>

Use a JWT access token or API key. Include as: Authorization: Bearer <token>

In: header

Request Body

application/jsonRequired
queryRequiredstring

The question to ask

conversation_idstring

Continue an existing conversation

project_idsarray<string>

Scope to specific projects

modestring
Value in: "default" | "detailed" | "concise"
max_citationsinteger
Default: 5
temperaturenumber
Minimum: 0Maximum: 2
filtersobject
curl -X POST "https://api.dokubrain.com/api/v1/corpus/query" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "string",
    "conversation_id": "string",
    "project_ids": [
      "string"
    ],
    "mode": "default",
    "max_citations": 5,
    "temperature": 2,
    "filters": {
      "document_types": [
        "string"
      ]
    }
  }'

RAG answer with sources

{
  "success": true,
  "data": {
    "answer": "string",
    "conversation_id": "string",
    "sources": [
      {
        "documentId": "string",
        "documentName": "string",
        "chunkText": "string",
        "page": 0,
        "score": 0
      }
    ],
    "quality": {
      "relevancy": 0,
      "grounding": 0,
      "hallucinationRisk": "low"
    }
  }
}

Hybrid search across documents

Combines semantic (vector) search with keyword matching to find relevant document chunks.

POST
/corpus/search

Authorization

AuthorizationRequiredBearer <token>

Use a JWT access token or API key. Include as: Authorization: Bearer <token>

In: header

Request Body

application/jsonRequired
queryRequiredstring
project_idsarray<string>
limitinteger
Default: 10Maximum: 100
score_thresholdnumber
Default: 0.5
filtersobject
highlightboolean
Default: true
curl -X POST "https://api.dokubrain.com/api/v1/corpus/search" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "string",
    "project_ids": [
      "string"
    ],
    "limit": 10,
    "score_threshold": 0.5,
    "filters": {},
    "highlight": true
  }'

Search results

{
  "success": true,
  "data": {
    "results": [
      {
        "documentId": "string",
        "documentName": "string",
        "chunkText": "string",
        "page": 0,
        "score": 0,
        "highlights": [
          "string"
        ]
      }
    ],
    "total": 0
  }
}

Synthesize insights from specific documents

POST
/corpus/synthesize

Authorization

AuthorizationRequiredBearer <token>

Use a JWT access token or API key. Include as: Authorization: Bearer <token>

In: header

Request Body

application/jsonRequired
document_idsRequiredarray<string>
taskRequiredstring

What to synthesize (e.g., 'compare', 'summarize', 'extract key differences')

focusstring
output_formatstring
Value in: "paragraph" | "bullet_points" | "table"
curl -X POST "https://api.dokubrain.com/api/v1/corpus/synthesize" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "document_ids": [
      "string"
    ],
    "task": "string",
    "focus": "string",
    "output_format": "paragraph"
  }'

Synthesis result

{
  "success": true,
  "data": {},
  "message": "string"
}

Multi-step reasoning across documents

Complex analysis that chains multiple retrieval and reasoning steps for compliance reviews, risk assessments, and cross-document analysis.

POST
/corpus/reason

Authorization

AuthorizationRequiredBearer <token>

Use a JWT access token or API key. Include as: Authorization: Bearer <token>

In: header

Request Body

application/jsonRequired
questionRequiredstring
project_idsarray<string>
depthstring
Value in: "shallow" | "medium" | "deep"
show_reasoning_stepsboolean
Default: false
curl -X POST "https://api.dokubrain.com/api/v1/corpus/reason" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "string",
    "project_ids": [
      "string"
    ],
    "depth": "shallow",
    "show_reasoning_steps": false
  }'

Reasoning result

{
  "success": true,
  "data": {},
  "message": "string"
}

List RAG conversations

GET
/corpus/conversations

Authorization

AuthorizationRequiredBearer <token>

Use a JWT access token or API key. Include as: Authorization: Bearer <token>

In: header

Query Parameters

pageinteger
per_pageinteger
searchstring
curl -X GET "https://api.dokubrain.com/api/v1/corpus/conversations?page=0&per_page=0&search=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

Conversations

{
  "success": true,
  "data": {},
  "message": "string"
}