Auto-generated from uteke-server route registry and type schemas. Do not edit manually β run cargo run -p docgen to regenerate.
Base URL: http://localhost:8767 (default)
Auth: Set --auth-token <TOKEN> to require Authorization: Bearer <TOKEN> header.
List all tags in a namespace. Accepts ?namespace=X query param.
Rename a tag across all memories.
Request body: TagRenameRequest
Delete a tag from all memories.
Request body: TagDeleteRequest
Pin a memory by ID (legacy β prefer /memory/pin).
Request body: PinRequest
Unpin a memory by ID (legacy β prefer /memory/pin with pin=false).
Request body: PinRequest
Returns the agent-facing memory tools guide for system prompt injection (#1010).
Response: GuideResponse
Related: #1010
Identity of the store this server serves: {"id": "<16 hex digits>"}, the SHA-256 prefix of the store's canonical path (uteke_core::store_identity). The CLI compares it with the store it resolved before routing a command here, so UTEKE_HOME pointing elsewhere is not sent to this server (#1445). The path itself is never returned. Needs the usual token when auth is on.
Related: #1445
List all namespaces in the memory store. ?with_counts=true adds count (total) plus active/deprecated breakdown fields (#1181).
Related: 1181
Rename a namespace ({from, to}). When to already exists this is a merge; the old name vanishes (derived view). Returns {from, to, moved, target_existed} (#1181).
Request body: NamespaceRenameRequest
Related: 1181
Delete a namespace with an explicit strategy for its memories ({name, strategy, target?}): refuse (default β 409 while any memory references the name), merge (move all memories to target), or deprecate (soft-delete β restorable, never hard-deleted) (#1181).
Request body: NamespaceDeleteRequest
Related: 1181
Get memory statistics (count, etc.) for a namespace. Accepts ?namespace=X query param.
Get memory statistics via POST body. Accepts {"namespace": "..."}.
Request body: JSON object (see handler source for fields)
Related: #786
Get a single memory by ID. Accepts ?id=... query param.
Response: Memory
Update an existing memory's content and/or metadata.
Request body: MemoryUpdateRequest
Check vector-index/SQLite consistency: row vs vector counts, mismatch flag (#1266).
Response: VerifyReport
Rebuild the vector index from stored embeddings to fix recall desync (#1266). SQLite data is untouched.
Response: RepairReport
Memory graph for visualisation: live memories as nodes, memory_edges (auto-links, supersession) plus explicit graph edges as edges, keyed by memory id. Accepts ?namespace=..., ?node_id=<memory id> (that memory's neighbourhood) and ?limit= (edges, default 500, max 5000); response carries truncated. Derived referenced_by backlinks are omitted.
Full provenance report for a memory (#1172): author/source fields, trust tier, source hash at write vs live-recomputed content hash (tamper evidence), and the full timeline event chain with actor + evidence. Accepts ?id=... query param.
Related: 1172
List superseded-but-not-restored memories (#1172) β the auditable contradiction resolution ledger (deprecated rows carrying a live superseded_by edge). Accepts ?namespace=...&limit=....
Related: 1172
Undo a contradiction resolution (#1172): restore the retired memory to active, remove the supersession pair, and record supersession_undone provenance events. Body: {id}.
Request body: ContradictionUndoRequest
Related: 1172
Run lifecycle aging cycle: deprecate old memories, optionally prune expired ones.
Related: #935
Restore a deprecated memory back to active status.
Related: #935
Get lifecycle status: active/deprecated counts and current configuration.
Related: #935
List deprecated memories with TTL metadata.
Related: #1007
Import memories from a JSON array.
Request body: ImportRequest
Export all memories as JSON. Accepts ?namespace=... query param.
Recompute importance scores for all memories.
Request body: ImportanceRequest
Remove orphaned memories (no room, no graph edges).
Request body: PruneRequest
Merge similar/duplicate memories automatically.
Request body: ConsolidateRequest
Consolidate a single caller-chosen duplicate pair: keep id_keep, deprecate (or hard-delete) id_remove.
Request body: ConsolidatePairRequest
Related: 1076
Run aging cleanup β deprioritize or remove old/stale memories.
Request body: AgingRequest
List orphaned memories (not in any room, no edges).
Request body: OrphansRequest
Extract entities and relationships from memory content.
Request body: ExtractRequest
Rebuild backlink indices for memory graph.
Health check β tokenless requests get {status} only; a valid bearer token (or auth-disabled server) returns status, version, memory counts, and update info
Response: HealthResponse
Machine-readable API route introspection: returns this registry (method, path, tier, description, request/response types) as JSON β the same source of truth that generates docs/api-reference.md (#1289).
Related: #1289
Create a new document with slug, title, content, tags.
Request body: DocCreateRequest
Get a document by slug.
Request body: DocGetRequest
List documents with optional namespace/limit/roots_only/parent filters.
Request body: DocListParams
Search documents by query with optional mode/namespace/limit.
Request body: DocSearchRequest
Update an existing document (content, title, tags, parent).
Request body: DocUpdateRequest
Move a document to a different parent.
Request body: DocMoveRequest
Delete a document by slug or ID.
Get memories that reference a specific document.
Request body: JSON object (see handler source for fields)
Add a directed edge between two memories. Accepts memory IDs (a linked graph node is ensured automatically, #1180) or existing graph node IDs. Returns {ok, source_node, target_node}.
Request body: GraphEdgeRequest
Related: 1180
Remove an edge between two nodes. Accepts memory IDs or graph node IDs via ?source=...&target=... query params (#1180).
Related: 1180
List all memory_edges of one memory (outgoing and incoming, including derived backlinks). Not an alias of /graph. Accepts ?id=... query param.
Get timeline of memory events for a memory. Accepts ?id=... query param.
Store a new memory. Accepts content, tags, namespace, type, metadata. Explicit type is honored as-is (no silent normalization, #1302); unknown types are rejected with 400 listing the valid vocabulary. Omit type to auto-infer.
Request body: RememberRequest
Response: Memory
Semantic search β recall memories by meaning. Returns ranked results. Set explain: true (#1160) to include per-result ranking signals (vector similarity/rank, RRF contributions, boosts); memory-only recall.
Excludes deprecated memories from results.
Request body: RecallRequest
Keyword search β find memories by matching words in content/tags.
Excludes deprecated memories from results.
Request body: SearchRequest
List memories with optional filters (namespace, tags, sort, limit, offset). Set include_meta: true (#1188) for a pagination envelope {memories, total, has_more, next_offset} instead of the bare array (not supported with at).
Excludes deprecated memories from results.
Request body: ListParams
Deprecate a memory by ID. Returns 404 if ID doesn't exist.
Get recently added memories. Accepts ?limit=N&namespace=X query params.
Excludes deprecated memories from results.
Create a new memory room. Accepts {"name": "..."}.
Request body: JSON object (see handler source for fields)
Store a memory linked to a room. Accepts room_id, content, tags, type, author.
Request body: RoomRememberRequest
Response: Memory
Related: #789
Semantic search within a room. Empty query returns all memories chronologically.
Excludes deprecated memories from results.
Request body: RoomRecallRequest
Related: #785
Get room summary with memory clusters and statistics.
Excludes deprecated memories from results.
Request body: JSON object (see handler source for fields)
Get room summary focused on document-type memories.
Excludes deprecated memories from results.
Request body: JSON object (see handler source for fields)
List all rooms.
Plan or execute segment-level LLM consolidation of room memories (#1088). Dry-run by default; apply: true executes with a hard budget cap. Write op β blocked for read-only tokens.
Request body: JSON object (see handler source for fields)
Related: #1088
Get memory count for a room. Includes deprecated memories (known discrepancy vs /room/summary).
Request body: JSON object (see handler source for fields)
Related: #784
List all memories in a room (chronological). Accepts ?room_id=... query param; optional ?author=... and ?namespace=... filters (#1288). Without namespace, returns ALL namespaces that contributed to the room.
Excludes deprecated memories from results.
Delete a room (unlink-only): room links are removed, memories and documents are preserved. Response: { deleted, unlinked_memories }. Accepts ?room_id=... query param.
Rename a room: the registry row and every member/document link move in one transaction; title, description, and namespace are preserved (#1202). Accepts { from, to }. Write op β blocked for read-only tokens.
Request body: JSON object (see handler source for fields)
Related: #1202
Update a room's title and/or description; omitted fields stay unchanged (#1202). Accepts { room_id, title?, description? }; 404 when the room is missing. Write op β blocked for read-only tokens.
Request body: JSON object (see handler source for fields)
Related: #1202
Move a memory from one room to another, preserving the link's author/role/joined_at provenance (#1202). Accepts { memory_id, from_room, to_room }; 404 when the memory has no link in from_room. Write op β blocked for read-only tokens.
Request body: JSON object (see handler source for fields)
Related: #1202
Store a reference document in a room (large content >500 chars).
Request body: JSON object (see handler source for fields)
List documents in a room.
Request body: JSON object (see handler source for fields)
Add a reference to an existing document in a room.
Request body: JSON object (see handler source for fields)
Remove a document reference from a room.
Request body: JSON object (see handler source for fields)
List rooms that reference a specific document.
Request body: JSON object (see handler source for fields)
Pin a memory so it won't be removed by aging/cleanup operations.
Request body: MemoryPinRequest
Get or set the importance score of a memory.
Request body: MemoryImportanceRequest
Submit positive/negative feedback on a memory for ranking signals.
Request body: MemoryFeedbackRequest
Get documents that reference a specific memory.
Request body: JSON object (see handler source for fields)
Get context window for a query (for LLM prompt enrichment).
Request body: JSON object (see handler source for fields)
Generate new memories/insights from existing memory corpus.
Request body: JSON object (see handler source for fields)
MCP (Model Context Protocol) bridge endpoint for AI agent tool calls.
Request body: JSON object (see handler source for fields)
Detailed field definitions for each request type.
| Field | Type | Required | Description |
|---|---|---|---|
action |
string |
No | |
dry_run |
boolean |
No | |
max_access_count |
any | No | Max access count threshold for preview/cleanup (default: 1). |
namespace |
any | No | |
older_than_days |
any | No | Days threshold for preview/cleanup (default: warm_days from config, fallback 90). |
| Field | Type | Required | Description |
|---|---|---|---|
dry_run |
boolean |
No | |
namespace |
any | No | |
threshold |
number |
No |
| Field | Type | Required | Description |
|---|---|---|---|
content |
string |
Yes | |
parent |
any | No | |
slug |
string |
Yes | |
tags |
string[] |
No | |
title |
any | No |
| Field | Type | Required | Description |
|---|---|---|---|
id |
any | No | |
slug |
any | No |
| Field | Type | Required | Description |
|---|---|---|---|
id |
any | No | |
new_parent |
any | No | |
new_sort_order |
any | No | Optional sort order for the moved document (#sort-order). |
slug |
any | No |
| Field | Type | Required | Description |
|---|---|---|---|
error |
string |
Yes |
| Field | Type | Required | Description |
|---|---|---|---|
content |
string |
Yes | |
max_facts |
any | No | Override max facts per document. |
model |
any | No | Override extraction model (else config default). |
namespace |
any | No | |
tags |
string[] |
No | |
type |
any | No |
| Field | Type | Required | Description |
|---|---|---|---|
edge_type |
any | No | |
source |
string |
Yes | |
target |
string |
Yes | |
weight |
any | No |
| Field | Type | Required | Description |
|---|---|---|---|
api_latest |
any | No | Latest API version (#737). |
api_versions |
any | No | Supported API versions (#737). |
memories |
integer |
Yes | |
namespaces |
integer |
Yes | |
status |
string |
Yes | |
update_available |
any | No | Latest version available on GitHub, if newer than current. |
Populated from cache (24h TTL) β may be None if cache is stale. |
|||
version |
string |
Yes | Server version (uteke-server crate version), so HTTP clients can gate |
| features on the actual server capability rather than a local CLI probe. |
| Field | Type | Required | Description |
|---|---|---|---|
content |
string |
Yes | JSONL content to import. |
namespace |
any | No | |
tags |
string[] |
No |
| Field | Type | Required | Description |
|---|---|---|---|
namespace |
any | No |
| Field | Type | Required | Description |
|---|---|---|---|
at |
any | No | Time-travel: list memories that existed at this RFC3339 timestamp. |
include_meta |
boolean |
No | Pagination metadata (#1188): when true, respond with an envelope |
{memories, total, has_more, next_offset} instead of the bare array. |
|||
| Default false β the bare-array shape is unchanged for existing | |||
clients. Not supported with at (point-in-time listing returns the |
|||
| bare array regardless). | |||
limit |
integer |
No | |
namespace |
any | No | |
offset |
integer |
No | |
tag |
any | No |
Request for memory feedback / trust scoring (#718).
| Field | Type | Required | Description |
|---|---|---|---|
feedback |
string |
Yes | "helpful" or "unhelpful" |
id |
string |
Yes |
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
Yes | |
importance |
number |
Yes |
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
Yes | |
pinned |
boolean |
Yes |
| Field | Type | Required | Description |
|---|---|---|---|
content |
any | No | New content. Triggers embedding regeneration. |
id |
string |
Yes | UUID of the memory to update (required). |
importance |
any | No | Set importance score (0.0β1.0). |
memory_type |
any | No | Set memory type (fact, procedure, preference, decision, context, note, insight, reference, event). |
metadata |
any | No | Replace metadata entirely with this object. |
namespace |
any | No | Move the memory to this namespace (#1181). Plain column update β no re-embed. |
pinned |
any | No | Set pinned state. |
tags |
any | No | Replace tags entirely with this list. |
| Field | Type | Required | Description |
|---|---|---|---|
limit |
integer |
No | |
namespace |
any | No | |
threshold |
number |
No |
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
Yes |
| Field | Type | Required | Description |
|---|---|---|---|
dry_run |
boolean |
No | |
namespace |
any | No | |
ttl_days |
integer |
No |
| Field | Type | Required | Description |
|---|---|---|---|
after |
any | No | Temporal range filter: only return memories created at or after this |
| RFC3339 timestamp (#902). | |||
at |
any | No | Time-travel: query memories that existed at this RFC3339 timestamp. |
before |
any | No | Temporal range filter: only return memories created at or before this |
| RFC3339 timestamp (#902). | |||
budget_chars |
any | No | Character budget for pack (default 4000). |
category |
any | No | Filter by category metadata. |
enrich |
boolean |
No | Enrich results with cross-entity links (docβmemory) (#689). |
When true, populates linked_doc_slugs on memory results and |
|||
linked_memory_ids on document results. |
|||
entity |
any | No | Filter by entity metadata. |
exclude_ids |
any | No | Memory IDs already injected this turn; excluded from pack results |
(reported as skipped with reason excluded). |
|||
explain |
boolean |
No | Explain mode (#1160): return per-result ranking signals alongside |
| each memory. Memory-only recall β rejected (400) together with | |||
| search_type/unified, at, before/after. | |||
limit |
integer |
No | |
min_score |
any | No | Minimum similarity score (0.0-1.0). Results below are filtered. |
Default: 0.0 (no filtering). Use strict=true for 0.5 default (#995). |
|||
namespace |
any | No | |
pack |
boolean |
No | Budgeted context pack (#1281 Phase 1): return a ContextPack |
| (selected/skipped/budget_used) instead of a bare ranked list. | |||
| Deterministic, LLM-free, rank-order preserving. | |||
query |
string |
Yes | |
search_type |
any | No | Search type filter: "all" (default, unified), "memory", or "doc" (#531). |
strategy |
any | No | Recall strategy: "fusion" (default since 0.16.0), "vector", "fts5", |
| "hybrid", or "graph" (#900, #1034, #1123). | |||
When absent, the server falls back to [recall] default_strategy from |
|||
| uteke.toml, then to "fusion" β matching the CLI default. | |||
| Invalid values return HTTP 400. | |||
strict |
boolean |
No | Use strict threshold (defaults to 0.5 if min_score not set). |
tags |
string[] |
No |
| Field | Type | Required | Description |
|---|---|---|---|
author |
any | No | Who wrote the memory (#1427 phase 2): free text, trimmed, 1 to 128 |
| characters. Optional, with or without a room; returned on the memory. | |||
author_type |
any | No | Author type: "human" |
category |
any | No | Category β stored as metadata key "category". |
content |
string |
Yes | |
detect_contradiction |
boolean |
No | |
entity |
any | No | Entity name β stored as metadata key "entity". |
metadata |
any | No | Extra metadata key=value pairs, merged into the metadata map. |
| Accepts an object (e.g. {"project": "uteke"}). | |||
namespace |
any | No | |
source |
any | No | Source provenance β set via set_source() after storage. |
source_type |
any | No | Source type (defaults to "user"). |
tags |
string[] |
No | |
type |
any | No | Memory type β validated against the MemoryType vocabulary and stored |
| as-is (no silent normalization, #1302). Unknown values are rejected | |||
| with 400 listing the valid types. Omit to let auto-inference decide. | |||
valid_from |
any | No | |
valid_until |
any | No |
| Field | Type | Required | Description |
|---|---|---|---|
at |
any | No | Time-travel: recall room state as of this RFC3339 timestamp (#1082). |
Memories created after at (or invalidated before it) are excluded. |
|||
author |
any | No | |
limit |
integer |
No | |
min_score |
any | No | |
query |
any | No | Semantic search query. When None or empty, falls back to |
chronological recall (equivalent to GET /room/memories) (#785). |
|||
room_id |
string |
Yes |
| Field | Type | Required | Description |
|---|---|---|---|
author |
any | No | Author β stored as participant role in room link. |
content |
string |
Yes | |
metadata |
any | No | |
namespace |
any | No | |
room_id |
string |
Yes | |
tags |
string[] |
No | |
type |
any | No |
| Field | Type | Required | Description |
|---|---|---|---|
limit |
integer |
No | |
namespace |
any | No | |
query |
string |
Yes | |
tags |
string[] |
No |
| Field | Type | Required | Description |
|---|---|---|---|
namespace |
any | No | |
tag |
string |
Yes |
| Field | Type | Required | Description |
|---|---|---|---|
namespace |
any | No | |
new |
string |
Yes | |
old |
string |
Yes |