Full-text search across chat history
GET /v1/sessions/search — Search message content across every session, best match first (SQLite FTS5, bm25 rank). Each hit carries the matching me
GET /v1/sessions/search
Search message content across every session, best match first (SQLite FTS5, bm25 rank). Each hit carries the matching message id plus its session id/title/kind so a client can render a result row and deep-link into the conversation. snippet wraps matched terms in [ / ]. Tokens are implicitly ANDed and prefix-matched; FTS operator syntax in the query is neutralized, never an error.
| Method | GET |
| Path | /v1/sessions/search |
| Auth | Authorization: Bearer <token> required when GATEWAY_AUTH_TOKEN is set |
| Category | sessions |
Response body
{ "query": "btc momentum", "results": [ { "session_id": "chat_abc", "session_title": "BTC analysis", "kind": "chat", "origin": "web", "message_id": 42, "role": "assistant", "ts_ms": 1747000000000, "snippet": "…[BTC] shows strong [momentum] on the 4h…" } ] }