Core memory operations
List memories
Page through the memories in the key's project, newest first. Filter by end user, by agent namespace, or both, omit them to list across every end user.
GET
/v1/memories
This returns stored memories in the list shape, id,
content, scope, and metadata, without the derived
facts array. To read the typed facts for a scope, use
Get facts.
Authentication
HTTP header, required: Authorization: Bearer kor_live_.... The key must carry the memories:read scope.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
user_id | string | Optional | Filter to one end user. When omitted, lists across all end users. |
agent_id | string | Optional | Filter to one agent namespace. |
run_id | string | Optional | Filter to one run or session. Max 255 chars. |
limit | integer | Optional | Page size. Default 50, min 1, max 200. |
offset | integer | Optional | Pagination offset. Default 0, min 0. |
Example request
curl -X GET "https://api.korely.ai/v1/memories?user_id=customer-giulia-4812&agent_id=onboarding-bot&limit=50&offset=0" \ -H "Authorization: Bearer kor_live_..."Response
200 OK. A page of memories plus the total count of matches
across all pages.
{ "memories": [ { "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 } ], "total": 1}| Field | Type | Description |
|---|---|---|
memories | array<Memory> | A page of Memory objects, newest first. Each has id (mem_ prefix), content, user_id (end user, nullable), agent_id (nullable), run_id (nullable), metadata (object), status (processing, ready or error: whether its typed facts are queryable yet), created_at and updated_at (ISO 8601, nullable; updated_at stays null until the memory is edited). No facts in the list shape. |
total | integer | Total matching memories across all pages, for paginating with offset. |
Errors
| Status | Code | Cause |
|---|---|---|
401 | invalid_key | Missing or invalid kor_live_ key, Invalid or missing API key: ..., then what is wrong. |
403 | forbidden | Key lacks the memories:read scope, API key missing required scope(s): memories:read. |
429 | quota_exceeded | Monthly query quota reached. Resets on the 1st of the month (UTC), or upgrade. |
429 | rate_limit_exceeded | Per-key rate limit exceeded. Respect the Retry-After header and retry. |
422 | invalid_request | limit out of the 1..200 range, or offset below 0. |
Notes
- Defaults.
limit=50, max200,offset=0. Page by advancingoffsetuntil you have readtotalitems. - Omit
user_idto list across all end users. Add it to scope the page to a single end user; addagent_idto scope to one namespace. - List shape only. Items are Memory objects without the
factsarray, read typed facts with Get facts. - Counts as a read. Each call counts against your monthly query quota.
Related
- Search memories, semantic recall instead of a flat page.
- Get facts, the typed bi-temporal facts for a scope.
- SDK reference, the typed client methods.