Update Memory

Database and user

Use a registered memory-capable database, such as the SQLite database in the example API server. Supply db_id when several database IDs are available. A table selector requires db_id and selects a configured adapter; it does not create arbitrary storage.

Scoped identity overrides a supplied user_id. JWT user isolation is opt-in; non-admin service-account PAT callers always self-scope. When authorization is enforced, use the appropriate memories:read, memories:write or memories:delete scope.

Replacement behavior

Send the complete new memory text. Omitted or null topics becomes an empty list. Unscoped calls require user_id (400 if absent).

The local unscoped path upserts: a missing memory_id can create a row. A scoped caller must own an existing row, otherwise the request returns 404. Do not rely on this endpoint to reject missing IDs in every deployment.

PATCH/memories/{memory_id}

Update an existing user memory's content and topics. Replaces the entire memory content and topic list with the provided values.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

memory_id*Memory Id

Memory ID to update

Query Parameters

db_id?|

Database ID to use for update

table?|

Table to use for update

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Define the payload expected for creating a new user memory

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl --request PATCH 'https://example.com/memories/string' \  --header 'Content-Type: application/json' \  --data-raw '{"memory":"string"}'
{  "memory_id": "f9361a69-2997-40c7-ae4e-a5861d434047",  "memory": "User likes coffee.",  "topics": [    "preferences"  ],  "user_id": "123",  "updated_at": "2025-09-01T07:53:17Z"}