Memories
api/beta/memory_stores/memories
Nearest release: v2.1.245, published an hour after this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
api/beta/memory_stores/memories Changed · +141 / -124 lines
### Path parameters ### Query parameters ### Headers ### Body parameters #### Response (200) ### Path parameters ### Query parameters ### Headers #### Response (200) ### Path parameters ### Query parameters ### Headers #### Response (200) ### Path parameters ### Query parameters ### Headers ### Body parameters #### Response (200) ### Path parameters ### Query parameters ### Headers #### Response (200) ## Domain types ### Path Parameters ### Query Parameters ### Header Parameters ### Body Parameters #### Response ### Path Parameters ### Query Parameters ### Header Parameters #### Response ### Path Parameters ### Query Parameters ### Header Parameters #### Response ### Path Parameters ### Query Parameters ### Header Parameters ### Body Parameters #### Response ### Path Parameters ### Query Parameters ### Header Parameters #### Response ## Domain Types
---- -title: Memories -url: https://platform.claude.com/docs/en/api/beta/memory_stores/memories ---- - # Memories ## Create a memory -**post** `/v1/memory_stores/{memory_store_id}/memories` +**POST** `/v1/memory_stores/{memory_store_id}/memories` Create a memory -### Path Parameters +### Path parameters - `memory_store_id: string` -### Query Parameters +### Query parameters - `view: optional BetaManagedAgentsMemoryView`
- `"full"` -### Header Parameters +### Headers - `"anthropic-beta": optional array of AnthropicBeta`
- `"mid-conversation-tool-changes-2026-07-01"` -### Body Parameters +### Body parameters - `content: string or null`
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, and must be NFC-normalized. Paths are case-sensitive. + minLength: 2, maxLength: 1024 + ### Returns -- `BetaManagedAgentsMemory object { id, content_sha256, content_size_bytes, 7 more }` +- `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.
Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + format: int32 + - `created_at: string` A timestamp in RFC 3339 format + format: date-time + - `memory_store_id: string` ID of the memory store this memory belongs to (a `memstore_...` value).
- `type: "memory"` - - `"memory"` - - `updated_at: string` A timestamp in RFC 3339 format + 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 -```http +```bash curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories \ -H 'Content-Type: application/json' \ -H 'anthropic-version: 2023-06-01' \
}' ``` -#### Response +#### Response (200) ```json {
## List memories -**get** `/v1/memory_stores/{memory_store_id}/memories` +**GET** `/v1/memory_stores/{memory_store_id}/memories` List memories -### Path Parameters +### Path parameters - `memory_store_id: string` -### Query Parameters +### 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.
- `"full"` -### Header Parameters +### Headers - `"anthropic-beta": optional array of AnthropicBeta`
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 { id, content_sha256, content_size_bytes, 7 more }` + - `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.
Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + format: int32 + - `created_at: string` A timestamp in RFC 3339 format + format: date-time + - `memory_store_id: string` ID of the memory store this memory belongs to (a `memstore_...` value).
- `type: "memory"` - - `"memory"` - - `updated_at: string` A timestamp in RFC 3339 format + 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 { path, type }` + - `BetaManagedAgentsMemoryPrefix object` A rolled-up directory marker returned by [List memories](/docs/en/api/beta/memory_stores/memories/list) 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"` - - `"memory_prefix"` - - `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 -```http +```bash curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories \ -H 'anthropic-version: 2023-06-01' \ -H 'anthropic-beta: agent-memory-2026-07-22' \
-H "X-Api-Key: $ANTHROPIC_API_KEY" ``` -#### Response +#### Response (200) ```json {
## Retrieve a memory -**get** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` +**GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` Retrieve a memory -### Path Parameters +### Path parameters - `memory_store_id: string` - `memory_id: string` -### Query Parameters +### Query parameters - `view: optional BetaManagedAgentsMemoryView`
- `"full"` -### Header Parameters +### Headers - `"anthropic-beta": optional array of AnthropicBeta`
### Returns -- `BetaManagedAgentsMemory object { id, content_sha256, content_size_bytes, 7 more }` +- `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.
Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + format: int32 + - `created_at: string` A timestamp in RFC 3339 format + format: date-time + - `memory_store_id: string` ID of the memory store this memory belongs to (a `memstore_...` value).
- `type: "memory"` - - `"memory"` - - `updated_at: string` A timestamp in RFC 3339 format + 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 -```http +```bash curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMORY_ID \ -H 'anthropic-version: 2023-06-01' \ -H 'anthropic-beta: agent-memory-2026-07-22' \
-H "X-Api-Key: $ANTHROPIC_API_KEY" ``` -#### Response +#### Response (200) ```json {
## Update a memory -**post** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` +**POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` Update a memory -### Path Parameters +### Path parameters - `memory_store_id: string` - `memory_id: string` -### Query Parameters +### Query parameters - `view: optional BetaManagedAgentsMemoryView`
- `"full"` -### Header Parameters +### Headers - `"anthropic-beta": optional array of AnthropicBeta`
- `"mid-conversation-tool-changes-2026-07-01"` -### Body Parameters +### Body parameters - `content: 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, 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` 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"` - - `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 { id, content_sha256, content_size_bytes, 7 more }` +- `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.
Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + format: int32 + - `created_at: string` A timestamp in RFC 3339 format + format: date-time + - `memory_store_id: string` ID of the memory store this memory belongs to (a `memstore_...` value).
- `type: "memory"` - - `"memory"` - - `updated_at: string` A timestamp in RFC 3339 format + 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 -```http +```bash curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMORY_ID \ -H 'Content-Type: application/json' \ -H 'anthropic-version: 2023-06-01' \
-d '{}' ``` -#### Response +#### Response (200) ```json {
## Delete a memory -**delete** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` +**DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` Delete a memory -### Path Parameters +### Path parameters - `memory_store_id: string` - `memory_id: string` -### Query Parameters +### Query parameters - `expected_content_sha256: optional string` Query parameter for expected_content_sha256 -### Header Parameters +### Headers - `"anthropic-beta": optional array of AnthropicBeta`
### Returns -- `BetaManagedAgentsDeletedMemory object { id, type }` +- `BetaManagedAgentsDeletedMemory object` Tombstone returned by [Delete a memory](/docs/en/api/beta/memory_stores/memories/delete). The memory's version history persists and remains listable via [List memory versions](/docs/en/api/beta/memory_stores/memory_versions/list) until the store itself is deleted.
- `type: "memory_deleted"` - - `"memory_deleted"` - ### Example -```http +```bash curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMORY_ID \ -X DELETE \ -H 'anthropic-version: 2023-06-01' \
-H "X-Api-Key: $ANTHROPIC_API_KEY" ``` -#### Response +#### Response (200) ```json {
} ``` -## Domain Types +## Domain types ### Beta Managed Agents Conflict Error -- `BetaManagedAgentsConflictError object { type, message }` +- `BetaManagedAgentsConflictError object` - `type: "conflict_error"` - - `"conflict_error"` - - `message: optional string` ### Beta Managed Agents Content Sha256 Precondition -- `BetaManagedAgentsContentSha256Precondition object { type, content_sha256 }` +- `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"` - - `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 { id, type }` +- `BetaManagedAgentsDeletedMemory object` Tombstone returned by [Delete a memory](/docs/en/api/beta/memory_stores/memories/delete). The memory's version history persists and remains listable via [List memory versions](/docs/en/api/beta/memory_stores/memory_versions/list) until the store itself is deleted.
- `type: "memory_deleted"` - - `"memory_deleted"` - ### Beta Managed Agents Error - `BetaManagedAgentsError = BetaInvalidRequestError or BetaAuthenticationError or BetaBillingError or 9 more` - - `BetaInvalidRequestError object { message, type }` + - `BetaInvalidRequestError object` - `message: string` + default: Invalid request + - `type: "invalid_request_error"` - - `"invalid_request_error"` + default: invalid_request_error - - `BetaAuthenticationError object { message, type }` + - `BetaAuthenticationError object` - `message: string` + default: Authentication error + - `type: "authentication_error"` - - `"authentication_error"` + default: authentication_error - - `BetaBillingError object { message, type }` + - `BetaBillingError object` - `message: string` + default: Billing error + - `type: "billing_error"` - - `"billing_error"` + default: billing_error - - `BetaPermissionError object { message, type }` + - `BetaPermissionError object` - `message: string` + default: Permission denied + - `type: "permission_error"` - - `"permission_error"` + default: permission_error - - `BetaNotFoundError object { message, type }` + - `BetaNotFoundError object` - `message: string` + default: Not found + - `type: "not_found_error"` - - `"not_found_error"` + default: not_found_error - - `BetaRateLimitError object { message, type }` + - `BetaRateLimitError object` - `message: string` + default: Rate limited + - `type: "rate_limit_error"` - - `"rate_limit_error"` + default: rate_limit_error - - `BetaGatewayTimeoutError object { message, type }` + - `BetaGatewayTimeoutError object` - `message: string` + default: Request timeout + - `type: "timeout_error"` - - `"timeout_error"` + default: timeout_error - - `BetaAPIError object { message, type }` + - `BetaAPIError object` - `message: string` + default: Internal server error + - `type: "api_error"` - - `"api_error"` + default: api_error - - `BetaOverloadedError object { message, type }` + - `BetaOverloadedError object` - `message: string` + default: Overloaded + - `type: "overloaded_error"` - - `"overloaded_error"` + default: overloaded_error - - `BetaManagedAgentsMemoryPreconditionFailedError object { type, message }` + - `BetaManagedAgentsMemoryPreconditionFailedError object` - `type: "memory_precondition_failed_error"` - - `"memory_precondition_failed_error"` - - `message: optional string` - - `BetaManagedAgentsMemoryPathConflictError object { type, conflicting_memory_id, conflicting_path, message }` + - `BetaManagedAgentsMemoryPathConflictError object` - `type: "memory_path_conflict_error"` - - `"memory_path_conflict_error"` - - `conflicting_memory_id: optional string` - `conflicting_path: optional string`
- `message: optional string` - - `BetaManagedAgentsConflictError object { type, message }` + - `BetaManagedAgentsConflictError object` - `type: "conflict_error"` - - `"conflict_error"` - - `message: optional string` ### Beta Managed Agents Memory -- `BetaManagedAgentsMemory object { id, content_sha256, content_size_bytes, 7 more }` +- `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.
Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + format: int32 + - `created_at: string` A timestamp in RFC 3339 format + format: date-time + - `memory_store_id: string` ID of the memory store this memory belongs to (a `memstore_...` value).
- `type: "memory"` - - `"memory"` - - `updated_at: string` A timestamp in RFC 3339 format + 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).
One item in a [List memories](/docs/en/api/beta/memory_stores/memories/list) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. - - `BetaManagedAgentsMemory object { id, content_sha256, content_size_bytes, 7 more }` + - `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.
Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + format: int32 + - `created_at: string` A timestamp in RFC 3339 format + format: date-time + - `memory_store_id: string` ID of the memory store this memory belongs to (a `memstore_...` value).
- `type: "memory"` - - `"memory"` - - `updated_at: string` A timestamp in RFC 3339 format + 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 { path, type }` + - `BetaManagedAgentsMemoryPrefix object` A rolled-up directory marker returned by [List memories](/docs/en/api/beta/memory_stores/memories/list) 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"` - - `"memory_prefix"` - ### Beta Managed Agents Memory Path Conflict Error -- `BetaManagedAgentsMemoryPathConflictError object { type, conflicting_memory_id, conflicting_path, message }` +- `BetaManagedAgentsMemoryPathConflictError object` - `type: "memory_path_conflict_error"` - - `"memory_path_conflict_error"` - - `conflicting_memory_id: optional string` - `conflicting_path: optional string`
### Beta Managed Agents Memory Precondition Failed Error -- `BetaManagedAgentsMemoryPreconditionFailedError object { type, message }` +- `BetaManagedAgentsMemoryPreconditionFailedError object` - `type: "memory_precondition_failed_error"` - - `"memory_precondition_failed_error"` - - `message: optional string` ### Beta Managed Agents Memory Prefix -- `BetaManagedAgentsMemoryPrefix object { path, type }` +- `BetaManagedAgentsMemoryPrefix object` A rolled-up directory marker returned by [List memories](/docs/en/api/beta/memory_stores/memories/list) 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"` - - `"memory_prefix"` - ### Beta Managed Agents Memory View - `BetaManagedAgentsMemoryView = "basic" or "full"`
### Beta Managed Agents Precondition -- `BetaManagedAgentsPrecondition object { type, content_sha256 }` +- `BetaManagedAgentsPrecondition 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"` - `content_sha256: optional string`