Skip to main content
GET
JavaScript
The memory layers a workspace holds: the SKILLS layers you author, and the EPISODIC layers Cadenya creates when an agent writes to itself with store_memory.
systemManaged is the tell. A true layer is episodic memory Cadenya manages for an agent; you rarely create or edit one by hand. A false layer is one you authored.

Two types

MEMORY_LAYER_TYPE_UNSPECIFIED is rejected on create, so those two are all you see.

Filters, and which field each one hits

Five ways to narrow the list, and they target different fields. This matters, because the two prefix-style filters look alike and are not. The distinction, measured:
So prefix searches names and episodicKeyPrefix searches episodic keys. Reach for episodicKeyPrefix when you want every episodic session under a namespace, the way a customer/ prefix collects customer/42 and customer/43.
type combines with the rest. type: 'MEMORY_LAYER_TYPE_SKILLS' returns only the layers you author, which is usually what a configuration UI wants.

Expired episodic layers linger

An episodic layer carries a TTL that slides forward with each objective sharing its key. When the TTL passes, the entries stop resolving: get_memory and search_memory filter on entry expiry, so an agent reads nothing from an expired session. The layer row itself, though, stays in this list rather than being cleaned up. An EPISODIC row with an expiresAt in the past is expired memory the agent can no longer read, not a live layer.

Create a memory layer

The SKILLS layers you author, and their TTL.

Memory layers

The cascade, episodic memory, and which layer wins a key.

List memory entries

The keyed values inside one layer.

Create an agent

enableEpisodicMemory, which makes the system-managed layers.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

workspaceId
string
required
Example:

"workspace_01HXKD2E5NQM3T9AYWCF133E3Q"

Query Parameters

limit
integer<int32>

Maximum number of results to return

cursor
string

Pagination cursor from previous response

prefix
string

Filter expression (query param: prefix)

query
string

Free-form search query

type
enum<string>

Filter by layer type

Available options:
MEMORY_LAYER_TYPE_UNSPECIFIED,
MEMORY_LAYER_TYPE_EPISODIC,
MEMORY_LAYER_TYPE_SKILLS
agentId
string

Filter to episodic layers belonging to this agent.

Example:

"agent_01HXKD2E5NQM3T9AYWCFMGWT9Y"

episodicKeyPrefix
string

Filter to episodic layers whose episodic key starts with this prefix (e.g. "customer/" matches "customer/42" and "customer/43"). Useful for namespaced keys, similar to a redis key scan.

labels
string

Filters by metadata labels. Comma-separated key=value pairs, e.g. "env=prod,team=ai". A resource matches only if every pair matches exactly (AND semantics).

sortOrder
string

Sort order for results (asc or desc by creation time)

includeInfo
boolean

When set to true you may use more of your alloted API rate-limit

Response

OK

items
object[]
pagination
object

Page carries cursor-based pagination state. There is no total: the cursor walks the result set without ever counting it, and a count would cost a second query on every list.