Ask a question over your documents
Retrieval-augmented generation: searches your indexed corpus, then generates an LLM answer grounded in the retrieved passages.
Modes:
stream=false(default): returns a single JSON response withresultsandanswer.stream=true: returns Server-Sent Events —event: sources(retrieved chunks),event: token(answer tokens),event: done(stream complete), orevent: error(generation failure).
Model: defaults to mistral-large-latest (flagship, best answer quality).
Pass model=alfred-ft5 for the lighter, faster LightOn fine-tune.
Company-specific custom models (custom-{company_id}-{uuid}) are also accepted.
Any other value returns 422.
Relevance scoring: relevance scoring always runs in scoring_and_filtering
mode — candidates are scored for relevance and only those above the quality
threshold are used as context. score equals the relevance score
(scores.relevance, 0–1). Results are returned in descending order of score.
If the scoring model is temporarily unavailable, score falls back to the
combined retrieval score (higher is better, no fixed upper bound) and
scores.relevance is null.
Scoping: same rules as /api/v3/search — use workspace_id and/or tag_id
to narrow results, or file_id to target specific files. file_id cannot be
combined with workspace_id or tag_id (422).
Facet filtering: use content_type and attribute to narrow results by facet
metadata. Content type uses colon-separated paths (e.g. legal:contract:nda).
Repeated attribute entries are ANDed; values inside one entry are ORed with
| (pipe, recommended). Example: attribute=fiscal_year:2024|2025&attribute=status:active
→ (fiscal_year 2024 OR 2025) AND (status active). Supports operators (>, >=,
<, <=), prefix (name:prefix*), smart dates, and content-type scoping.
If the reranker is temporarily unavailable, results are returned in retrieval
order and each result item includes a warnings array. Each warning has a
code matching the degraded scores key (e.g. relevance) and a reason
classifying the failure: model_not_found, timeout, service_error, or
unknown. The warnings key is absent from result items when all pipeline
steps succeed.
Billing: 1 search-with-generation credit per request.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
DRF serializer mixin providing content_type and attribute fields.
Compose into any request serializer via multiple inheritance::
Natural-language question. Maximum 1500 characters.
1500Filter by content type path. Multiple values are OR. Exact-or-subtree matching by default (e.g. legal matches legal, legal:contract). Wildcards: *contract* (contains), legal:contract* (prefix).
Filter by attribute value. Repeated attribute entries are ANDed; values inside one entry are ORed with | (pipe is the recommended OR delimiter — comma also works but can be ambiguous with multi-key values). Example: attribute=fiscal_year:2024|2025&attribute=status:active → (fiscal_year 2024 OR 2025) AND (status active). Formats: name (has any value), name:value (exact), name:>value / name:>=value (gt/gte), name:<value / name:<=value (lt/lte), name:prefix* (starts with, case-insensitive), name:*text* (contains, case-insensitive), name:a|b (OR). Smart dates: filing_date:2023 (year), filing_date:2023-06 (month). Type-aware: booleans (true/false), multi-select (membership check). Scoped: content_type(legal:compliance).regulation:AML.
Maximum number of chunks to retrieve for context. Range: 1–50.
1 <= x <= 50Restrict search to these workspace IDs. Cannot combine with file_id.
Restrict to documents carrying any of these tag IDs (OR). Cannot combine with file_id.
Restrict to specific file IDs. Cannot combine with workspace_id or tag_id.
Controls the relevance scoring step used during retrieval. "none": Skip scoring — lowest latency, relevance score is null in each result. "scoring_only": Score every candidate but return them all. Omit for the default (score and filter).
none- nonescoring_only- scoring_onlyscoring_and_filtering- scoring_and_filtering
none, scoring_only, scoring_and_filtering When true, response is streamed as Server-Sent Events.
LLM used for answer generation. Standard values:
mistral-large-latest: Mistral Large 2 — flagship general-purpose model. Best answer quality (default).alfred-ft5: Alfred FT5 — LightOn fine-tuned model, lighter and faster for straightforward questions. Custom model technical names (e.g.custom-{company_id}-{uuid}) are also accepted.
Response
Synchronous mode (stream=false): complete answer with sources.
Streaming mode (stream=true): Server-Sent Events with event: sources, event: token, and event: done (or event: error).