Haijun Platform Docs
ID

Create a memory

POST /v1/memory_stores/{memory_store_id}/memories

Create a memory

Path parameters

  • memory_store_id: string

The ID of the memory store to create the memory in (memstore_...).

Query parameters

  • view: optional BetaManagedAgentsMemoryView

Selects which projection of a memory or memory_version the server returns. basic returns the object with content set to null; full populates content. When omitted, the default is endpoint-specific: retrieve operations default to full; list, create, and update operations default to basic. Listing with view=full caps limit at 20.

  • "basic"

Return the object with content set to null. The content_size_bytes and content_sha256 fields remain populated, so sync clients can diff without fetching content.

  • "full"

Return the object with content populated. On list endpoints, view=full caps limit at 20.

Headers

  • "juglow-beta": optional array of JuglowBeta

Optional header to specify the beta version(s) you want to use.

  • string
  • "message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
  • "message-batches-2024-09-24"
  • "prompt-caching-2024-07-31"
  • "computer-use-2024-10-22"
  • "computer-use-2025-01-24"
  • "pdfs-2024-09-25"
  • "token-counting-2024-11-01"
  • "token-efficient-tools-2025-02-19"
  • "output-128k-2025-02-19"
  • "files-api-2025-04-14"
  • "mcp-client-2025-04-04"
  • "mcp-client-2025-11-20"
  • "dev-full-thinking-2025-05-14"
  • "interleaved-thinking-2025-05-14"
  • "code-execution-2025-05-22"
  • "extended-cache-ttl-2025-04-11"
  • "context-1m-2025-08-07"
  • "context-management-2025-06-27"
  • "model-context-window-exceeded-2025-08-26"
  • "tracks-2025-10-02"
  • "fast-mode-2026-02-01"
  • "output-300k-2026-03-24"
  • "user-profiles-2026-03-24"
  • "user-profiles-2026-08-18"
  • "user-profiles-2026-09-04"
  • "advisor-tool-2026-03-01"
  • "managed-agents-2026-04-01"
  • "cache-diagnosis-2026-04-07"
  • "dreaming-2026-04-21"
  • "thinking-token-count-2026-05-13"
  • "server-side-fallback-2026-06-01"
  • "server-side-fallback-2026-07-01"
  • "fallback-credit-2026-06-01"
  • "fallback-credit-2026-07-01"
  • "agent-memory-2026-07-22"
  • "mid-conversation-tool-changes-2026-07-01"
  • "compact-2026-01-12"
  • "computer-use-2025-11-24"
  • "mcp-tunnels-2026-06-22"
  • "structured-outputs-2025-11-13"
  • "task-budgets-2026-03-13"
  • "thinking-display-updates-2026-08-18"
  • "ce-user-management-2026-07-13"
  • "mid-conversation-output-config-2026-07-01"
  • "thinking-binding-controls-2026-08-01"
  • "mid-conversation-system-clear-at-2026-08-21"
  • "compact-2026-09-04"
  • "inline-tools-2026-09-15"
  • "mcp-client-2026-09-15"
  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Body parameters

  • content: string or null

UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass "" explicitly to create an empty memory.

  • path: string

Hierarchical path for the new memory, e.g. /projects/foo/notes.md. Must start with /, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, . or .. segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive.

minLength: 2, maxLength: 1024

Returns

  • BetaManagedAgentsMemory object

A memory object: a single text document at a hierarchical path inside a memory store. The content field is populated when view=full and null when view=basic; the content_size_bytes and content_sha256 fields are always populated so sync clients can diff without fetching content. Memories are addressed by their mem_... ID; the path is the create key and can be changed via update.

  • type: "memory"
  • id: string

Unique identifier for this memory (a mem_... value). Stable across renames; use this ID, not the path, to read, update, or delete the memory.

  • content_sha256: string

Lowercase hex SHA-256 digest of the UTF-8 content bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a content_sha256 precondition on update. Always populated, regardless of view.

  • content_size_bytes: number

Size of content in bytes (the UTF-8 plaintext length). Always populated, regardless of view.

format: int32

  • created_at: string

When this memory was created, in RFC 3339 format.

format: date-time

  • memory_store_id: string

ID of the memory store this memory belongs to (a memstore_... value).

  • memory_version_id: string

ID of the memory_version representing this memory's current content (a memver_... value). This is the authoritative head pointer; memory_version objects do not carry an is_latest flag, so compare against this field instead. Enumerate the history via List memory versions.

  • path: string

Hierarchical path of the memory within the store, e.g. /projects/foo/notes.md. Always starts with /. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes.

  • updated_at: string

When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's created_by via List memory versions.

format: date-time

  • content: optional string or null

The memory's UTF-8 text content. Populated when view=full; null when view=basic. Maximum 100 kB (102,400 bytes).

Example

bash
curl https://haijun.my.id/v1/memory_stores/$MEMORY_STORE_ID/memories \
    -H 'Content-Type: application/json' \
    -H 'juglow-version: 2023-06-01' \
    -H 'juglow-beta: agent-memory-2026-07-22' \
    -H "X-Api-Key: $JUGLOW_API_KEY" \
    -d '{
          "content": "content",
          "path": "xx"
        }'

Response (200)

json
{
  "id": "id",
  "content_sha256": "content_sha256",
  "content_size_bytes": 0,
  "created_at": "2019-12-27T18:11:19.117Z",
  "memory_store_id": "memory_store_id",
  "memory_version_id": "memory_version_id",
  "path": "path",
  "type": "memory",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "content": "content"
}

List memories

GET /v1/memory_stores/{memory_store_id}/memories

List memories

Path parameters

  • memory_store_id: string

The ID of the memory store to list memories from (memstore_...).

Query parameters

  • depth: optional number

0 (or omitted) returns all descendants below path_prefix (recursive). 1 returns immediate children only; deeper entries roll up as memory_prefix items. depth=1 behaves like ls; omitting depth behaves like find.

format: int32

  • limit: optional number

Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when view=full. Both memory and memory_prefix items count toward the limit.

format: int32

  • page: optional string

Opaque pagination cursor (a page_... value). Pass the next_page value from a previous response to fetch the next page; omit for the first page.

  • path_prefix: optional string

Optional path prefix filter. Must end with / (segment-aligned), e.g., /notes/. This value appears in request URLs. Do not include secrets or personally identifiable information.

  • view: optional BetaManagedAgentsMemoryView

Which projection of each memory to return. Defaults to basic (content omitted). full populates content on each item and caps limit at 20; use this as the bulk-read path for export and sync.

  • "basic"

Return the object with content set to null. The content_size_bytes and content_sha256 fields remain populated, so sync clients can diff without fetching content.

  • "full"

Return the object with content populated. On list endpoints, view=full caps limit at 20.

Headers

  • "juglow-beta": optional array of JuglowBeta

Optional header to specify the beta version(s) you want to use.

  • string
  • "message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
  • "message-batches-2024-09-24"
  • "prompt-caching-2024-07-31"
  • "computer-use-2024-10-22"
  • "computer-use-2025-01-24"
  • "pdfs-2024-09-25"
  • "token-counting-2024-11-01"
  • "token-efficient-tools-2025-02-19"
  • "output-128k-2025-02-19"
  • "files-api-2025-04-14"
  • "mcp-client-2025-04-04"
  • "mcp-client-2025-11-20"
  • "dev-full-thinking-2025-05-14"
  • "interleaved-thinking-2025-05-14"
  • "code-execution-2025-05-22"
  • "extended-cache-ttl-2025-04-11"
  • "context-1m-2025-08-07"
  • "context-management-2025-06-27"
  • "model-context-window-exceeded-2025-08-26"
  • "tracks-2025-10-02"
  • "fast-mode-2026-02-01"
  • "output-300k-2026-03-24"
  • "user-profiles-2026-03-24"
  • "user-profiles-2026-08-18"
  • "user-profiles-2026-09-04"
  • "advisor-tool-2026-03-01"
  • "managed-agents-2026-04-01"
  • "cache-diagnosis-2026-04-07"
  • "dreaming-2026-04-21"
  • "thinking-token-count-2026-05-13"
  • "server-side-fallback-2026-06-01"
  • "server-side-fallback-2026-07-01"
  • "fallback-credit-2026-06-01"
  • "fallback-credit-2026-07-01"
  • "agent-memory-2026-07-22"
  • "mid-conversation-tool-changes-2026-07-01"
  • "compact-2026-01-12"
  • "computer-use-2025-11-24"
  • "mcp-tunnels-2026-06-22"
  • "structured-outputs-2025-11-13"
  • "task-budgets-2026-03-13"
  • "thinking-display-updates-2026-08-18"
  • "ce-user-management-2026-07-13"
  • "mid-conversation-output-config-2026-07-01"
  • "thinking-binding-controls-2026-08-01"
  • "mid-conversation-system-clear-at-2026-08-21"
  • "compact-2026-09-04"
  • "inline-tools-2026-09-15"
  • "mcp-client-2026-09-15"
  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Returns

  • data: optional array of BetaManagedAgentsMemoryListItem

One page of results. Each item is either a memory object or, when depth was set, a memory_prefix rollup marker. Items are returned in a stable, server-defined order.

  • BetaManagedAgentsMemory object

A memory object: a single text document at a hierarchical path inside a memory store. The content field is populated when view=full and null when view=basic; the content_size_bytes and content_sha256 fields are always populated so sync clients can diff without fetching content. Memories are addressed by their mem_... ID; the path is the create key and can be changed via update.

  • type: "memory"
  • id: string

Unique identifier for this memory (a mem_... value). Stable across renames; use this ID, not the path, to read, update, or delete the memory.

  • content_sha256: string

Lowercase hex SHA-256 digest of the UTF-8 content bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a content_sha256 precondition on update. Always populated, regardless of view.

  • content_size_bytes: number

Size of content in bytes (the UTF-8 plaintext length). Always populated, regardless of view.

format: int32

  • created_at: string

When this memory was created, in RFC 3339 format.

format: date-time

  • memory_store_id: string

ID of the memory store this memory belongs to (a memstore_... value).

  • memory_version_id: string

ID of the memory_version representing this memory's current content (a memver_... value). This is the authoritative head pointer; memory_version objects do not carry an is_latest flag, so compare against this field instead. Enumerate the history via List memory versions.

  • path: string

Hierarchical path of the memory within the store, e.g. /projects/foo/notes.md. Always starts with /. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes.

  • updated_at: string

When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's created_by via List memory versions.

format: date-time

  • content: optional string or null

The memory's UTF-8 text content. Populated when view=full; null when view=basic. Maximum 100 kB (102,400 bytes).

  • BetaManagedAgentsMemoryPrefix object

A rolled-up directory marker returned by List memories when depth is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page limit and interleaves with memory items in path order.

  • type: "memory_prefix"
  • path: string

The rolled-up path prefix, including a trailing / (e.g. /projects/foo/). Pass this value as path_prefix on a subsequent list call to drill into the directory.

  • next_page: optional string or null

Opaque cursor for the next page (a page_... value), or null if there are no more results. Pass as page on the next request.

Example

bash
curl https://haijun.my.id/v1/memory_stores/$MEMORY_STORE_ID/memories \
    -H 'juglow-version: 2023-06-01' \
    -H 'juglow-beta: agent-memory-2026-07-22' \
    -H "X-Api-Key: $JUGLOW_API_KEY"

Response (200)

json
{
  "data": [
    {
      "id": "id",
      "content_sha256": "content_sha256",
      "content_size_bytes": 0,
      "created_at": "2019-12-27T18:11:19.117Z",
      "memory_store_id": "memory_store_id",
      "memory_version_id": "memory_version_id",
      "path": "path",
      "type": "memory",
      "updated_at": "2019-12-27T18:11:19.117Z",
      "content": "content"
    }
  ],
  "next_page": "next_page"
}

Retrieve a memory

GET /v1/memory_stores/{memory_store_id}/memories/{memory_id}

Retrieve a memory

Path parameters

  • memory_store_id: string

The ID of the memory store that holds the memory (memstore_...).

  • memory_id: string

The ID of the memory to retrieve (mem_...).

Query parameters

  • view: optional BetaManagedAgentsMemoryView

Selects which projection of a memory or memory_version the server returns. basic returns the object with content set to null; full populates content. When omitted, the default is endpoint-specific: retrieve operations default to full; list, create, and update operations default to basic. Listing with view=full caps limit at 20.

  • "basic"

Return the object with content set to null. The content_size_bytes and content_sha256 fields remain populated, so sync clients can diff without fetching content.

  • "full"

Return the object with content populated. On list endpoints, view=full caps limit at 20.

Headers

  • "juglow-beta": optional array of JuglowBeta

Optional header to specify the beta version(s) you want to use.

  • string
  • "message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
  • "message-batches-2024-09-24"
  • "prompt-caching-2024-07-31"
  • "computer-use-2024-10-22"
  • "computer-use-2025-01-24"
  • "pdfs-2024-09-25"
  • "token-counting-2024-11-01"
  • "token-efficient-tools-2025-02-19"
  • "output-128k-2025-02-19"
  • "files-api-2025-04-14"
  • "mcp-client-2025-04-04"
  • "mcp-client-2025-11-20"
  • "dev-full-thinking-2025-05-14"
  • "interleaved-thinking-2025-05-14"
  • "code-execution-2025-05-22"
  • "extended-cache-ttl-2025-04-11"
  • "context-1m-2025-08-07"
  • "context-management-2025-06-27"
  • "model-context-window-exceeded-2025-08-26"
  • "tracks-2025-10-02"
  • "fast-mode-2026-02-01"
  • "output-300k-2026-03-24"
  • "user-profiles-2026-03-24"
  • "user-profiles-2026-08-18"
  • "user-profiles-2026-09-04"
  • "advisor-tool-2026-03-01"
  • "managed-agents-2026-04-01"
  • "cache-diagnosis-2026-04-07"
  • "dreaming-2026-04-21"
  • "thinking-token-count-2026-05-13"
  • "server-side-fallback-2026-06-01"
  • "server-side-fallback-2026-07-01"
  • "fallback-credit-2026-06-01"
  • "fallback-credit-2026-07-01"
  • "agent-memory-2026-07-22"
  • "mid-conversation-tool-changes-2026-07-01"
  • "compact-2026-01-12"
  • "computer-use-2025-11-24"
  • "mcp-tunnels-2026-06-22"
  • "structured-outputs-2025-11-13"
  • "task-budgets-2026-03-13"
  • "thinking-display-updates-2026-08-18"
  • "ce-user-management-2026-07-13"
  • "mid-conversation-output-config-2026-07-01"
  • "thinking-binding-controls-2026-08-01"
  • "mid-conversation-system-clear-at-2026-08-21"
  • "compact-2026-09-04"
  • "inline-tools-2026-09-15"
  • "mcp-client-2026-09-15"
  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Returns

  • BetaManagedAgentsMemory object

A memory object: a single text document at a hierarchical path inside a memory store. The content field is populated when view=full and null when view=basic; the content_size_bytes and content_sha256 fields are always populated so sync clients can diff without fetching content. Memories are addressed by their mem_... ID; the path is the create key and can be changed via update.

  • type: "memory"
  • id: string

Unique identifier for this memory (a mem_... value). Stable across renames; use this ID, not the path, to read, update, or delete the memory.

  • content_sha256: string

Lowercase hex SHA-256 digest of the UTF-8 content bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a content_sha256 precondition on update. Always populated, regardless of view.

  • content_size_bytes: number

Size of content in bytes (the UTF-8 plaintext length). Always populated, regardless of view.

format: int32

  • created_at: string

When this memory was created, in RFC 3339 format.

format: date-time

  • memory_store_id: string

ID of the memory store this memory belongs to (a memstore_... value).

  • memory_version_id: string

ID of the memory_version representing this memory's current content (a memver_... value). This is the authoritative head pointer; memory_version objects do not carry an is_latest flag, so compare against this field instead. Enumerate the history via List memory versions.

  • path: string

Hierarchical path of the memory within the store, e.g. /projects/foo/notes.md. Always starts with /. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes.

  • updated_at: string

When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's created_by via List memory versions.

format: date-time

  • content: optional string or null

The memory's UTF-8 text content. Populated when view=full; null when view=basic. Maximum 100 kB (102,400 bytes).

Example

bash
curl https://haijun.my.id/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMORY_ID \
    -H 'juglow-version: 2023-06-01' \
    -H 'juglow-beta: agent-memory-2026-07-22' \
    -H "X-Api-Key: $JUGLOW_API_KEY"

Response (200)

json
{
  "id": "id",
  "content_sha256": "content_sha256",
  "content_size_bytes": 0,
  "created_at": "2019-12-27T18:11:19.117Z",
  "memory_store_id": "memory_store_id",
  "memory_version_id": "memory_version_id",
  "path": "path",
  "type": "memory",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "content": "content"
}

Update a memory

POST /v1/memory_stores/{memory_store_id}/memories/{memory_id}

Update a memory

Path parameters

  • memory_store_id: string

The ID of the memory store that holds the memory (memstore_...).

  • memory_id: string

The ID of the memory to update (mem_...).

Query parameters

  • view: optional BetaManagedAgentsMemoryView

Selects which projection of a memory or memory_version the server returns. basic returns the object with content set to null; full populates content. When omitted, the default is endpoint-specific: retrieve operations default to full; list, create, and update operations default to basic. Listing with view=full caps limit at 20.

  • "basic"

Return the object with content set to null. The content_size_bytes and content_sha256 fields remain populated, so sync clients can diff without fetching content.

  • "full"

Return the object with content populated. On list endpoints, view=full caps limit at 20.

Headers

  • "juglow-beta": optional array of JuglowBeta

Optional header to specify the beta version(s) you want to use.

  • string
  • "message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
  • "message-batches-2024-09-24"
  • "prompt-caching-2024-07-31"
  • "computer-use-2024-10-22"
  • "computer-use-2025-01-24"
  • "pdfs-2024-09-25"
  • "token-counting-2024-11-01"
  • "token-efficient-tools-2025-02-19"
  • "output-128k-2025-02-19"
  • "files-api-2025-04-14"
  • "mcp-client-2025-04-04"
  • "mcp-client-2025-11-20"
  • "dev-full-thinking-2025-05-14"
  • "interleaved-thinking-2025-05-14"
  • "code-execution-2025-05-22"
  • "extended-cache-ttl-2025-04-11"
  • "context-1m-2025-08-07"
  • "context-management-2025-06-27"
  • "model-context-window-exceeded-2025-08-26"
  • "tracks-2025-10-02"
  • "fast-mode-2026-02-01"
  • "output-300k-2026-03-24"
  • "user-profiles-2026-03-24"
  • "user-profiles-2026-08-18"
  • "user-profiles-2026-09-04"
  • "advisor-tool-2026-03-01"
  • "managed-agents-2026-04-01"
  • "cache-diagnosis-2026-04-07"
  • "dreaming-2026-04-21"
  • "thinking-token-count-2026-05-13"
  • "server-side-fallback-2026-06-01"
  • "server-side-fallback-2026-07-01"
  • "fallback-credit-2026-06-01"
  • "fallback-credit-2026-07-01"
  • "agent-memory-2026-07-22"
  • "mid-conversation-tool-changes-2026-07-01"
  • "compact-2026-01-12"
  • "computer-use-2025-11-24"
  • "mcp-tunnels-2026-06-22"
  • "structured-outputs-2025-11-13"
  • "task-budgets-2026-03-13"
  • "thinking-display-updates-2026-08-18"
  • "ce-user-management-2026-07-13"
  • "mid-conversation-output-config-2026-07-01"
  • "thinking-binding-controls-2026-08-01"
  • "mid-conversation-system-clear-at-2026-08-21"
  • "compact-2026-09-04"
  • "inline-tools-2026-09-15"
  • "mcp-client-2026-09-15"
  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Body parameters

  • content: optional string or null

New UTF-8 text content for the memory. Maximum 100 kB (102,400 bytes). Omit to leave the content unchanged (e.g., for a rename-only update).

  • path: optional string or null

New path for the memory (a rename). Must start with /, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, . or .. segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's id is preserved across renames. Omit to leave the path unchanged.

minLength: 2, maxLength: 1024

  • precondition: optional BetaManagedAgentsPrecondition

Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns memory_precondition_failed_error (HTTP 409). When omitted, the update is unconditional.

  • type: "content_sha256"
  • content_sha256: optional string

Expected content_sha256 of the stored memory (64 lowercase hexadecimal characters). Typically the content_sha256 returned by a prior read or list call. Because the server applies no content normalization, clients can also compute this locally as the SHA-256 of the UTF-8 content bytes.

Returns

  • BetaManagedAgentsMemory object

A memory object: a single text document at a hierarchical path inside a memory store. The content field is populated when view=full and null when view=basic; the content_size_bytes and content_sha256 fields are always populated so sync clients can diff without fetching content. Memories are addressed by their mem_... ID; the path is the create key and can be changed via update.

  • type: "memory"
  • id: string

Unique identifier for this memory (a mem_... value). Stable across renames; use this ID, not the path, to read, update, or delete the memory.

  • content_sha256: string

Lowercase hex SHA-256 digest of the UTF-8 content bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a content_sha256 precondition on update. Always populated, regardless of view.

  • content_size_bytes: number

Size of content in bytes (the UTF-8 plaintext length). Always populated, regardless of view.

format: int32

  • created_at: string

When this memory was created, in RFC 3339 format.

format: date-time

  • memory_store_id: string

ID of the memory store this memory belongs to (a memstore_... value).

  • memory_version_id: string

ID of the memory_version representing this memory's current content (a memver_... value). This is the authoritative head pointer; memory_version objects do not carry an is_latest flag, so compare against this field instead. Enumerate the history via List memory versions.

  • path: string

Hierarchical path of the memory within the store, e.g. /projects/foo/notes.md. Always starts with /. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes.

  • updated_at: string

When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's created_by via List memory versions.

format: date-time

  • content: optional string or null

The memory's UTF-8 text content. Populated when view=full; null when view=basic. Maximum 100 kB (102,400 bytes).

Example

bash
curl https://haijun.my.id/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMORY_ID \
    -H 'Content-Type: application/json' \
    -H 'juglow-version: 2023-06-01' \
    -H 'juglow-beta: agent-memory-2026-07-22' \
    -H "X-Api-Key: $JUGLOW_API_KEY" \
    -d '{}'

Response (200)

json
{
  "id": "id",
  "content_sha256": "content_sha256",
  "content_size_bytes": 0,
  "created_at": "2019-12-27T18:11:19.117Z",
  "memory_store_id": "memory_store_id",
  "memory_version_id": "memory_version_id",
  "path": "path",
  "type": "memory",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "content": "content"
}

Delete a memory

DELETE /v1/memory_stores/{memory_store_id}/memories/{memory_id}

Delete a memory

Path parameters

  • memory_store_id: string

The ID of the memory store that holds the memory (memstore_...).

  • memory_id: string

The ID of the memory to delete (mem_...).

Query parameters

  • expected_content_sha256: optional string

Delete the memory only if its current content_sha256 equals this value, given as 64 lowercase hexadecimal characters. Omit it to delete unconditionally.

If the hashes differ, the request fails with HTTP status 409 and nothing is deleted.

Headers

  • "juglow-beta": optional array of JuglowBeta

Optional header to specify the beta version(s) you want to use.

  • string
  • "message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
  • "message-batches-2024-09-24"
  • "prompt-caching-2024-07-31"
  • "computer-use-2024-10-22"
  • "computer-use-2025-01-24"
  • "pdfs-2024-09-25"
  • "token-counting-2024-11-01"
  • "token-efficient-tools-2025-02-19"
  • "output-128k-2025-02-19"
  • "files-api-2025-04-14"
  • "mcp-client-2025-04-04"
  • "mcp-client-2025-11-20"
  • "dev-full-thinking-2025-05-14"
  • "interleaved-thinking-2025-05-14"
  • "code-execution-2025-05-22"
  • "extended-cache-ttl-2025-04-11"
  • "context-1m-2025-08-07"
  • "context-management-2025-06-27"
  • "model-context-window-exceeded-2025-08-26"
  • "tracks-2025-10-02"
  • "fast-mode-2026-02-01"
  • "output-300k-2026-03-24"
  • "user-profiles-2026-03-24"
  • "user-profiles-2026-08-18"
  • "user-profiles-2026-09-04"
  • "advisor-tool-2026-03-01"
  • "managed-agents-2026-04-01"
  • "cache-diagnosis-2026-04-07"
  • "dreaming-2026-04-21"
  • "thinking-token-count-2026-05-13"
  • "server-side-fallback-2026-06-01"
  • "server-side-fallback-2026-07-01"
  • "fallback-credit-2026-06-01"
  • "fallback-credit-2026-07-01"
  • "agent-memory-2026-07-22"
  • "mid-conversation-tool-changes-2026-07-01"
  • "compact-2026-01-12"
  • "computer-use-2025-11-24"
  • "mcp-tunnels-2026-06-22"
  • "structured-outputs-2025-11-13"
  • "task-budgets-2026-03-13"
  • "thinking-display-updates-2026-08-18"
  • "ce-user-management-2026-07-13"
  • "mid-conversation-output-config-2026-07-01"
  • "thinking-binding-controls-2026-08-01"
  • "mid-conversation-system-clear-at-2026-08-21"
  • "compact-2026-09-04"
  • "inline-tools-2026-09-15"
  • "mcp-client-2026-09-15"
  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Returns

  • BetaManagedAgentsDeletedMemory object

Tombstone returned by Delete a memory. Deleting a memory does not erase its version history: its versions remain listable via List memory versions while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted).

  • type: "memory_deleted"
  • id: string

ID of the deleted memory (a mem_... value).

Example

bash
curl https://haijun.my.id/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMORY_ID \
    -X DELETE \
    -H 'juglow-version: 2023-06-01' \
    -H 'juglow-beta: agent-memory-2026-07-22' \
    -H "X-Api-Key: $JUGLOW_API_KEY"

Response (200)

json
{
  "id": "id",
  "type": "memory_deleted"
}

Domain types

Beta Managed Agents Conflict Error

  • BetaManagedAgentsConflictError object
  • type: "conflict_error"
  • message: optional string

Beta Managed Agents Content Sha256 Precondition

  • BetaManagedAgentsContentSha256Precondition object

Optimistic-concurrency precondition: the update applies only if the memory's stored content_sha256 equals the supplied value. On mismatch, the request returns memory_precondition_failed_error (HTTP 409); re-read the memory and retry against the fresh state. If the precondition fails but the stored state already exactly matches the requested content and path, the server returns 200 instead of 409.

  • type: "content_sha256"
  • content_sha256: optional string

Expected content_sha256 of the stored memory (64 lowercase hexadecimal characters). Typically the content_sha256 returned by a prior read or list call. Because the server applies no content normalization, clients can also compute this locally as the SHA-256 of the UTF-8 content bytes.

Beta Managed Agents Deleted Memory

  • BetaManagedAgentsDeletedMemory object

Tombstone returned by Delete a memory. Deleting a memory does not erase its version history: its versions remain listable via List memory versions while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted).

  • type: "memory_deleted"
  • id: string

ID of the deleted memory (a mem_... value).

Beta Managed Agents Error

  • BetaManagedAgentsError = BetaInvalidRequestError or BetaAuthenticationError or BetaBillingError or 9 more
  • BetaInvalidRequestError object
  • type: "invalid_request_error"

default: invalid_request_error

  • message: string

default: Invalid request

  • BetaAuthenticationError object
  • type: "authentication_error"

default: authentication_error

  • message: string

default: Authentication error

  • BetaBillingError object
  • type: "billing_error"

default: billing_error

  • message: string

default: Billing error

  • BetaPermissionError object
  • type: "permission_error"

default: permission_error

  • message: string

default: Permission denied

  • BetaNotFoundError object
  • type: "not_found_error"

default: not_found_error

  • message: string

default: Not found

  • BetaRateLimitError object
  • type: "rate_limit_error"

default: rate_limit_error

  • message: string

default: Rate limited

  • BetaGatewayTimeoutError object
  • type: "timeout_error"

default: timeout_error

  • message: string

default: Request timeout

  • BetaAPIError object
  • type: "api_error"

default: api_error

  • message: string

default: Internal server error

  • BetaOverloadedError object
  • type: "overloaded_error"

default: overloaded_error

  • message: string

default: Overloaded

  • BetaManagedAgentsMemoryPreconditionFailedError object

The error returned with HTTP status 409 when a request's precondition doesn't hold for the memory's current state, such as precondition on an update or expected_content_sha256 on a delete.

The error doesn't include the memory's current state. Retrieve the memory to see its current content and content_sha256 before you retry.

See the memory guide to learn more about safe content edits with content hash preconditions.

  • type: "memory_precondition_failed_error"
  • message: optional string

A human-readable explanation of why the precondition failed.

  • BetaManagedAgentsMemoryPathConflictError object

The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path.

Two paths overlap when one is an ancestor of the other, such as /notes and /notes/todo.md. To free the path, rename or delete the memory that conflicting_memory_id references, then retry. To change that memory instead of creating a new one, update it.

  • type: "memory_path_conflict_error"
  • conflicting_memory_id: optional string

The ID of the memory that blocked the write (mem_...), or an empty string if that memory can't be identified.

Retry the request when it is empty.

  • conflicting_path: optional string

The path that blocked the write: the requested path, or the path of a memory that is an ancestor or descendant of it.

  • message: optional string

A human-readable explanation of the conflict. To handle the error in code, use conflicting_path and conflicting_memory_id instead.

  • BetaManagedAgentsConflictError object
  • type: "conflict_error"
  • message: optional string

Beta Managed Agents Memory

  • BetaManagedAgentsMemory object

A memory object: a single text document at a hierarchical path inside a memory store. The content field is populated when view=full and null when view=basic; the content_size_bytes and content_sha256 fields are always populated so sync clients can diff without fetching content. Memories are addressed by their mem_... ID; the path is the create key and can be changed via update.

  • type: "memory"
  • id: string

Unique identifier for this memory (a mem_... value). Stable across renames; use this ID, not the path, to read, update, or delete the memory.

  • content_sha256: string

Lowercase hex SHA-256 digest of the UTF-8 content bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a content_sha256 precondition on update. Always populated, regardless of view.

  • content_size_bytes: number

Size of content in bytes (the UTF-8 plaintext length). Always populated, regardless of view.

format: int32

  • created_at: string

When this memory was created, in RFC 3339 format.

format: date-time

  • memory_store_id: string

ID of the memory store this memory belongs to (a memstore_... value).

  • memory_version_id: string

ID of the memory_version representing this memory's current content (a memver_... value). This is the authoritative head pointer; memory_version objects do not carry an is_latest flag, so compare against this field instead. Enumerate the history via List memory versions.

  • path: string

Hierarchical path of the memory within the store, e.g. /projects/foo/notes.md. Always starts with /. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes.

  • updated_at: string

When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's created_by via List memory versions.

format: date-time

  • content: optional string or null

The memory's UTF-8 text content. Populated when view=full; null when view=basic. Maximum 100 kB (102,400 bytes).

Beta Managed Agents Memory List Item

  • BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory or BetaManagedAgentsMemoryPrefix

One item in a List memories response: either a memory object or, when depth is set, a memory_prefix rollup marker.

  • BetaManagedAgentsMemory object

A memory object: a single text document at a hierarchical path inside a memory store. The content field is populated when view=full and null when view=basic; the content_size_bytes and content_sha256 fields are always populated so sync clients can diff without fetching content. Memories are addressed by their mem_... ID; the path is the create key and can be changed via update.

  • type: "memory"
  • id: string

Unique identifier for this memory (a mem_... value). Stable across renames; use this ID, not the path, to read, update, or delete the memory.

  • content_sha256: string

Lowercase hex SHA-256 digest of the UTF-8 content bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a content_sha256 precondition on update. Always populated, regardless of view.

  • content_size_bytes: number

Size of content in bytes (the UTF-8 plaintext length). Always populated, regardless of view.

format: int32

  • created_at: string

When this memory was created, in RFC 3339 format.

format: date-time

  • memory_store_id: string

ID of the memory store this memory belongs to (a memstore_... value).

  • memory_version_id: string

ID of the memory_version representing this memory's current content (a memver_... value). This is the authoritative head pointer; memory_version objects do not carry an is_latest flag, so compare against this field instead. Enumerate the history via List memory versions.

  • path: string

Hierarchical path of the memory within the store, e.g. /projects/foo/notes.md. Always starts with /. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes.

  • updated_at: string

When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's created_by via List memory versions.

format: date-time

  • content: optional string or null

The memory's UTF-8 text content. Populated when view=full; null when view=basic. Maximum 100 kB (102,400 bytes).

  • BetaManagedAgentsMemoryPrefix object

A rolled-up directory marker returned by List memories when depth is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page limit and interleaves with memory items in path order.

  • type: "memory_prefix"
  • path: string

The rolled-up path prefix, including a trailing / (e.g. /projects/foo/). Pass this value as path_prefix on a subsequent list call to drill into the directory.

Beta Managed Agents Memory Path Conflict Error

  • BetaManagedAgentsMemoryPathConflictError object

The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path.

Two paths overlap when one is an ancestor of the other, such as /notes and /notes/todo.md. To free the path, rename or delete the memory that conflicting_memory_id references, then retry. To change that memory instead of creating a new one, update it.

  • type: "memory_path_conflict_error"
  • conflicting_memory_id: optional string

The ID of the memory that blocked the write (mem_...), or an empty string if that memory can't be identified.

Retry the request when it is empty.

  • conflicting_path: optional string

The path that blocked the write: the requested path, or the path of a memory that is an ancestor or descendant of it.

  • message: optional string

A human-readable explanation of the conflict. To handle the error in code, use conflicting_path and conflicting_memory_id instead.

Beta Managed Agents Memory Precondition Failed Error

  • BetaManagedAgentsMemoryPreconditionFailedError object

The error returned with HTTP status 409 when a request's precondition doesn't hold for the memory's current state, such as precondition on an update or expected_content_sha256 on a delete.

The error doesn't include the memory's current state. Retrieve the memory to see its current content and content_sha256 before you retry.

See the memory guide to learn more about safe content edits with content hash preconditions.

  • type: "memory_precondition_failed_error"
  • message: optional string

A human-readable explanation of why the precondition failed.

Beta Managed Agents Memory Prefix

  • BetaManagedAgentsMemoryPrefix object

A rolled-up directory marker returned by List memories when depth is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page limit and interleaves with memory items in path order.

  • type: "memory_prefix"
  • path: string

The rolled-up path prefix, including a trailing / (e.g. /projects/foo/). Pass this value as path_prefix on a subsequent list call to drill into the directory.

Beta Managed Agents Memory View

  • BetaManagedAgentsMemoryView = "basic" or "full"

Selects which projection of a memory or memory_version the server returns. basic returns the object with content set to null; full populates content. When omitted, the default is endpoint-specific: retrieve operations default to full; list, create, and update operations default to basic. Listing with view=full caps limit at 20.

  • "basic"

Return the object with content set to null. The content_size_bytes and content_sha256 fields remain populated, so sync clients can diff without fetching content.

  • "full"

Return the object with content populated. On list endpoints, view=full caps limit at 20.

Beta Managed Agents Precondition

  • BetaManagedAgentsPrecondition object

Optional condition that must hold for an update to apply. When omitted, the update is unconditional. Asserts the current state of the memory being updated. When an update changes path, the precondition still refers to the memory's current content, not the destination path. Currently the only supported variant is content_sha256.

  • type: "content_sha256"
  • content_sha256: optional string

Expected content_sha256 of the stored memory (64 lowercase hexadecimal characters). Typically the content_sha256 returned by a prior read or list call. Because the server applies no content normalization, clients can also compute this locally as the SHA-256 of the UTF-8 content bytes.

On this page
Create a memoryPath parametersQuery parametersHeadersBody parametersReturnsExampleResponse (200)List memoriesPath parametersQuery parametersHeadersReturnsExampleResponse (200)Retrieve a memoryPath parametersQuery parametersHeadersReturnsExampleResponse (200)Update a memoryPath parametersQuery parametersHeadersBody parametersReturnsExampleResponse (200)Delete a memoryPath parametersQuery parametersHeadersReturnsExampleResponse (200)Domain typesBeta Managed Agents Conflict ErrorBeta Managed Agents Content Sha256 PreconditionBeta Managed Agents Deleted MemoryBeta Managed Agents ErrorBeta Managed Agents MemoryBeta Managed Agents Memory List ItemBeta Managed Agents Memory Path Conflict ErrorBeta Managed Agents Memory Precondition Failed ErrorBeta Managed Agents Memory PrefixBeta Managed Agents Memory ViewBeta Managed Agents Precondition