Skip to main content
POST

Authorizations

Authorization
string
header
required

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

query
string
required

Natural-language search query. Maximum 1500 characters.

Maximum string length: 1500
content_type
string[]

Filter 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).

attribute
string[]

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.

mode
enum<string>
default:text

Retrieval pipeline: "text" (hybrid search on DocumentChunk) or "vision" (image-based on VisionChunk).

  • text - text
  • vision - vision
Available options:
text,
vision
top_k
integer
default:20

Number of best candidates to score and return. Relevance scoring evaluates all top_k candidates from retrieval; scoring_and_filtering then keeps only those above the quality threshold. Range: 1–100.

Required range: 1 <= x <= 100
workspace_id
integer[]

Scope retrieval to specific workspace IDs (authorized only).

file_id
integer[]

Scope retrieval to specific file IDs (authorized only).

tag_id
integer[]

Scope retrieval to documents with any of these tag IDs (company-scoped).

relevance_scoring
enum<string>

Controls the relevance scoring step. "scoring_and_filtering" (default): Score candidates for relevance and only return those above the quality threshold. When no candidate clears the threshold, the few best-scoring candidates are returned instead of an empty result; their scores.relevance is then below the usual threshold. "scoring_only": Score every candidate for relevance but return them all, even low-scoring ones. Useful for building your own filtering logic. "none": Skip the relevance scoring step and return all candidates unfiltered. Fastest option, useful when you handle scoring yourself. Omit the field for the default; send "none" to skip. Overrides skip_rerank when both are sent.

  • none - none
  • scoring_only - scoring_only
  • scoring_and_filtering - scoring_and_filtering
Available options:
none,
scoring_only,
scoring_and_filtering
skip_rerank
boolean

Deprecated — use relevance_scoring. true → relevance_scoring=none, false → relevance_scoring=scoring_and_filtering. Ignored when relevance_scoring is provided.

include_image
boolean
default:false

Include base64-encoded page image in each result.

include_details
boolean
default:false

Expand document metadata in results. When true, content types include breadcrumb, code, and attribute definitions (type, required, choices).

Response

Chunks retrieved successfully. Empty array if no documents match.

query
string
required

The search query that was executed.

retrieve_params
object
required

Retrieval parameters used (including defaults).

scoping_params
object
required

Scoping parameters used to narrow retrieval.

results
object[]
required

Retrieved chunks with context, ordered by score descending.

warnings
object[]

Present only when a pipeline signal degrades. Absent in the happy path.