Core memory operations
Get a memory
Fetch one memory by id, including all typed facts currently extracted from it.
GET
/v1/memories/{memory_id}
SDK: korely.get(memory_id). Returns the stored memory plus the
facts currently active for it, the typed, bi-temporal triples Korely
extracted server-side. Use it to inspect a single memory and the knowledge
derived from it.
Authentication
HTTP header, required: Authorization: Bearer kor_live_....
Path parameter
This endpoint takes a single path parameter and no query parameters or request body.
| Parameter | Type | Required | Description |
|---|---|---|---|
memory_id | string | Required | The memory id from the URL path. Accepts a mem_-prefixed public id (e.g. mem_8f2c1a) or a bare UUID. |
Example request
curl https://api.korely.ai/v1/memories/mem_8f2c1a \ -H "Authorization: Bearer kor_live_..."Response
200 OK. The memory, plus every typed fact currently active for
it.
{ "id": "mem_8f2c1a", "content": "Giulia prefers async standups and works in CET.", "user_id": "customer-giulia-4812", "agent_id": "onboarding-bot", "run_id": null, "metadata": {"source": "slack"}, "status": "ready", "created_at": "2026-03-01T09:14:22+00:00", "updated_at": null, "facts": [ { "id": "fct_a1", "subject": "Giulia", "subject_type": "person", "predicate": "likes", "predicate_raw": "prefers", "object": "async standups", "object_is_literal": true, "predicate_family": "preferences", "confidence": 0.91, "user_id": "customer-giulia-4812", "agent_id": "onboarding-bot", "valid_from": "2026-03-01T00:00:00+00:00", "invalid_at": null, "invalidated_by": null, "source_memory_id": "mem_8f2c1a", "created_at": "2026-03-01T09:14:25+00:00", "subject_canonical": "Giulia", "object_canonical": "async standups", "tense": "current", "last_confirmed_at": "2026-03-01T00:00:00+00:00", "observation_count": 1, "source_memory_ids": ["mem_8f2c1a"] } ]}| Field | Type | Description |
|---|---|---|
id | string | Public memory id (mem_ prefixed). |
content | string | Memory content. |
user_id | string · null | End user this memory belongs to (engine end_user_id), nullable. |
agent_id | string · null | Agent namespace, nullable. |
run_id | string · null | Run sub-namespace, nullable. |
metadata | object | Developer metadata dict. |
created_at | string · null | ISO 8601 timestamp, nullable. |
updated_at | string · null | ISO 8601 timestamp of the last edit; null if the memory was never edited. |
status | string | processing while the facts are being extracted, ready once they are, error if extraction failed. |
facts | array<object> | The facts this memory states that are true now, born from it or restated by it, so source_memory_id can name another memory. Each fact has the shape of Get facts: id (fct_ prefixed), subject, subject_type, predicate, predicate_raw, object, object_is_literal, predicate_family, confidence, user_id, agent_id, valid_from, invalid_at, invalidated_by, source_memory_id, created_at, subject_canonical, object_canonical, tense, last_confirmed_at, observation_count and source_memory_ids. |
Errors
| Status | Code | Cause |
|---|---|---|
401 | invalid_key | Missing or invalid kor_live_ key, Invalid or missing API key: ..., then what is wrong. |
403 | forbidden | The key lacks the memories:read scope. |
404 | not_found | Unparseable memory id, or no memory matches that id, Memory not found. |
429 | quota_exceeded | Monthly query quota exceeded. |
429 | rate_limit_exceeded | Rate limit exceeded. Honor the Retry-After header. |
Notes
- Accepts both id forms. Pass a
mem_-prefixed public id or a bare UUID, both resolve to the same memory. - Facts are the active set. The
factsarray holds the currently active facts for this memory. Superseded facts are not returned here. - Counts as one read. Each get counts against your monthly query quota. The read is logged before the existence check, so a
404still counts.
Related
- Search memories, find memories by semantic query.
- Get context, the assembled recall block, facts plus memories.
- SDK reference, the typed client methods.