search

GET /search/query

Execute a structured search query against the local encrypted search index. Returns HTTP 423 if the encryption session is locked.

ADR-008 wire change: total/hasMore are no longer top-level siblings of the envelope — they are folded INTO the data payload alongside the renamed items array (SearchQueryResultDto). The response is the canonical ApiEnvelope<SearchQueryResultDto> ({ data: { items, total, hasMore }, ts }).

get/search/query

Query parameters

querystring required

Required free-text query string.

operatorstring nullable

Optional explicit operator: "and" or "or".

timePresetstring nullable

Optional time preset: today, yesterday, last_24h, last_7d, last_30d, this_week, this_month.

fromMsinteger nullable

Absolute range start (ms since epoch). Must be paired with to_ms.

toMsinteger nullable

Absolute range end (ms since epoch). Must be paired with from_ms.

contentTypesstring nullable

Comma-separated file types (text, html, link, file, image, other).

extensionsstring nullable

Comma-separated file extensions (e.g. "md,txt").

sourceDevicesstring nullable

Comma-separated source device ids; restricts results to those origins.

limitinteger

Maximum results. Default 50, clamped to 200.

offsetinteger

Pagination offset. Default 0.

Response

Search results page

tsinteger required

Server time when the response was built (unix epoch milliseconds).

Changes