Appearance
POST /v1/memory/recall_text
POST /v1/memory/recall_text
Performs semantic recall from plain text query and returns a compact context payload.
Request schema
Required:
query_text
Common fields:
tenant_id?: stringscope?: stringquery_text: stringlimit?: number(default 30, max 200)neighborhood_hops?: 1 | 2(default 2)include_meta?: booleaninclude_slots?: booleancontext_token_budget?: numbercontext_char_budget?: number
Example request
bash
curl -sS "$BASE_URL/v1/memory/recall_text" \
-H 'content-type: application/json' \
-d '{
"tenant_id":"default",
"scope":"support",
"query_text":"invoice copy request",
"limit":5,
"include_meta":true
}' | jqResponse schema
Key response fields:
request_idtenant_idscopedata.context(assembled context text)data.candidates[](retrieved candidates)trajectoryandobservability(diagnostics)
Idempotency
- Functionally idempotent for the same query and data snapshot.
- Result ranking can change when memory graph or embeddings change between calls.
Rate limit
- Uses recall-class limiter and recall tenant quota.
- Also subject to embedding quota for recall-text requests.
- On
429, use bounded retry with backoff.
Error codes
Common errors:
invalid_request(400)no_embedding_provider(400)unauthorized/forbidden(401/403)rate_limited_*(429)
Replay IDs to persist
request_idtenant_idscope- caller-side
run_id(if this request feeds a policy/action flow) - related
commit_urivalues from resolved candidates when investigated later
Operational notes
- Use with
context_token_budgetorcontext_char_budgetin production callers. - Log query hash, not raw query text, when handling sensitive inputs.