Get and list
Read a single memory by id, or list every memory in a scope. Both are free.
Sometimes you don't need ranked search — you just want to read back what's stored. FishMem gives you two plain reads: fetch one memory by its id, or list all memories in a scope. Both are GET requests and both are free.
Get one by id
Fetch a single memory by its id. The response is the memory object directly — no results wrapper.
curl https://fishmem.com/v1/memories/mem_124 \
-H "Authorization: Bearer fm_..."const client = new MemoryClient({ apiKey, host: "https://fishmem.com" });
const memory = await client.get("mem_124");Response:
{
"id": "mem_124",
"memory": "Is vegetarian",
"memory_type": "fact",
"importance": 0.8,
"user_id": "alice",
"agent_id": null,
"run_id": null,
"metadata": {},
"created_at": "2026-06-13T10:00:00Z",
"updated_at": "2026-06-13T10:00:00Z",
"event_date": "2026-06-13T10:00:00Z",
"valid_from": "2026-06-13T10:00:00Z",
"valid_to": null
}List by scope
List every memory bound to a scope by passing user_id, agent_id, or run_id as a query parameter. Unlike search, listing does not rank or filter by relevance — it returns the whole set.
curl "https://fishmem.com/v1/memories?user_id=alice" \
-H "Authorization: Bearer fm_..."const { results } = await client.getAll({ user_id: "alice" });Response:
{
"results": [
{ "id": "mem_123", "memory": "Lives in Berlin", "user_id": "alice", "...": "..." },
{ "id": "mem_124", "memory": "Is vegetarian", "user_id": "alice", "...": "..." }
]
}Parameters
| Operation | Parameter | Notes |
|---|---|---|
| Get one | {id} (path) | The memory id. |
| List | user_id | Optional scope filter. |
| List | agent_id | Optional scope filter. |
| List | run_id | Optional scope filter. |
Each item is the full memory object: id, memory, memory_type, importance, user_id, agent_id, run_id, metadata, created_at, updated_at, event_date, valid_from, valid_to.
Credits
Reads are free. Both get-one and list cost nothing.
See the full contracts at /api-reference/get and /api-reference/list.