Search

Find matching content items

Runs the retrieval and returns only the distinct documents that matched — no chunks, no AI answer. Each item carries the document's kb_node_id alongside its content_id and title, so a match can be read, renamed, moved or deleted through the /org/kb/nodes/{kb_node_id} endpoints without a further lookup. Use this to discover which documents are relevant. Each call consumes search credits.

post/org/search/content

Request

  • Base URL
    https://apiv2.senso.ai/api/v1
  • Auth
    API key in header X-API-Key

Headers

X-Senso-Signalsstring

Send off to keep this search out of your organization's gap report. The search still runs, consumes credits and is recorded in search history; it is only never counted towards a gap. false, 0, no, skip and none mean the same, case-insensitively. Any other value, or no header, leaves the search eligible. Use it on automated, synthetic or test traffic. Only POST /org/search, /org/search/full and /org/search/stream ever file gaps; /org/search/context and /org/search/content accept the header and never file one either way.

Request body

querystring required

The search query. Required and non-empty; there is a maximum length.

max_resultsinteger

Maximum results to return. Defaults to 5; values ≤ 0 fall back to 5 and values above 20 are capped at 20.

content_idsstring[]

Restrict the search to these content items.

require_scoped_idsboolean

When true, content_ids must be non-empty — the request is rejected with 400 otherwise. Use it to guarantee a scoped search never silently widens.

search_typestring

Retrieval pipeline to use. One of hybrid (default), lexical, or vector. Matching is case-insensitive; an empty or omitted value selects hybrid. Any other value is rejected with 400.

neighbor_radiusinteger

/org/search/context only. Adds up to this many chunks either side of each matched chunk to results, marked inclusion_reason: "neighbor", so each match can be read as a passage. Defaults to 0 (matched chunks only); values outside 0–5 are rejected with 400. Total returned text is capped at about 60,000 characters, trimming the farthest neighbours first. Ignored by the other search endpoints, whose answers already include neighbouring chunks.

Response

The distinct content items that matched.

querystring required
search_type'hybrid' | 'lexical' | 'vector' required

The retrieval pipeline that produced this response.

totalinteger required

Changes

No recorded changes to this operation across all 1 revision of this API.