from line 1
1---
2title: Update a memory
3url: https://platform.claude.com/docs/en/api/beta/memory_stores/memories/update
4---
1# Update a memory
52
6## Update a memory
3**POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}`
74
8**post** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}`
9
105Update a memory
116
12### Path Parameters
7## Path parameters
138
149- `memory_store_id: string`
1510
1611- `memory_id: string`
1712
18### Query Parameters
13## Query parameters
1914
2015- `view: optional BetaManagedAgentsMemoryView`
2116
from line 20
2520
2621 - `"full"`
2722
28### Header Parameters
23## Headers
2924
3025- `"anthropic-beta": optional array of AnthropicBeta`
3126
from line 98
10398
10499 - `"mid-conversation-tool-changes-2026-07-01"`
105100
106### Body Parameters
101## Body parameters
107102
108103- `content: optional string or null`
109104
from line 108
113108
114109 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.
115110
111 minLength: 2, maxLength: 1024
112
116113- `precondition: optional BetaManagedAgentsPrecondition`
117114
118115 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.
from line 116
119116
120117 - `type: "content_sha256"`
121118
122 - `"content_sha256"`
123
124119 - `content_sha256: optional string`
125120
126121 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.
127122
128### Returns
123## Returns
129124
130- `BetaManagedAgentsMemory object { id, content_sha256, content_size_bytes, 7 more }`
125- `BetaManagedAgentsMemory object`
131126
132127 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.
133128
from line 138
143138
144139 Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`.
145140
141 format: int32
142
146143 - `created_at: string`
147144
148145 A timestamp in RFC 3339 format
149146
147 format: date-time
148
150149 - `memory_store_id: string`
151150
152151 ID of the memory store this memory belongs to (a `memstore_...` value).
from line 160
161160
162161 - `type: "memory"`
163162
164 - `"memory"`
165
166163 - `updated_at: string`
167164
168165 A timestamp in RFC 3339 format
169166
167 format: date-time
168
170169 - `content: optional string or null`
171170
172171 The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes).
173172
174### Example
173## Example
175174
176```http
175```bash
177176curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMORY_ID \
178177 -H 'Content-Type: application/json' \
179178 -H 'anthropic-version: 2023-06-01' \
from line 181
182181 -d '{}'
183182```
184183
185#### Response
184### Response (200)
186185
187186```json
188187{
No line in this hunk matches that.