# update_memory

Source: <https://everruns.com/docs/api/operations/update_memory/>

PATCH

/v1/memories/{memory\_id}

Select code samplecURL (shell:curl)

```js
const url = 'https://app.everruns.com/api/v1/memories/example';
const options = {
  method: 'PATCH',
  headers: {'Content-Type': 'application/json'},
  body: '{"description":"example","name":"design-docs","source":{"branch":"main","repository":"acme/design-docs","root_folder":"docs/","type":"github"}}'
};


try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```sh
curl --request PATCH \
  --url https://app.everruns.com/api/v1/memories/example \
  --header 'Content-Type: application/json' \
  --data '{ "description": "example", "name": "design-docs", "source": { "branch": "main", "repository": "acme/design-docs", "root_folder": "docs/", "type": "github" } }'
```

* Production APIapp.everruns.com/api/v1/memories/{memory\_id}

Update a workspace memory. Only provided fields are modified.

## Parameters

### Path Parameters

**memory\_id**

required

string

Memory ID

## Request Bodyrequired

Media typeapplication/json

Request body for the `update_memory` operation.

object

**description**

Human-readable description. Safe to render in user-facing messages.

string | null

**name**

Human-readable name. Safe to render in user-facing messages.

string | null

##### Example

```plaintext
design-docs
```

**source**

One of:

* object

  One of:

  * object

    Source configuration. Example shape is defined on `CreateMemorySourceRequest`.

    object

    **branch**

    Branch to sync. Defaults to the repository’s default branch when omitted.

    string | null

    ##### Example

    ```plaintext
    main
    ```

    **repository**

    required

    GitHub repository in `owner/repo` form.

    string

    ##### Example

    ```plaintext
    acme/design-docs
    ```

    **root\_folder**

    Sub-directory within the repository to sync. Empty / omitted = whole tree.

    string | null

    ##### Example

    ```plaintext
    docs/
    ```

    **sync\_interval\_secs**

    Automatic resync interval in seconds. Omit or set 0 for manual-only; scheduled sync accepts 300 through 604800.

    integer | null format: int32

    <= 604800

    ##### Example

    ```json
    3600
    ```

    **type**

    required

    string

    Allowed values: github

    ##### Example

    ```json
    {
      "branch": "main",
      "repository": "acme/design-docs",
      "root_folder": "docs/",
      "type": "github"
    }
    ```

  * object

    Source configuration. Example shape is defined on `CreateMemorySourceRequest`.

    object

    **branch**

    Branch to sync. Defaults to the repository’s default branch when omitted.

    string | null

    ##### Example

    ```plaintext
    main
    ```

    **root\_folder**

    Sub-directory within the repository to sync. Empty / omitted = whole tree.

    string | null

    ##### Example

    ```plaintext
    docs/
    ```

    **sync\_interval\_secs**

    Automatic resync interval in seconds. Omit or set 0 for manual-only; scheduled sync accepts 300 through 604800.

    integer | null format: int32

    <= 604800

    ##### Example

    ```json
    3600
    ```

    **url**

    required

    Clonable git URL (SSH or HTTPS).

    string

    ##### Example

    ```plaintext
    https://github.com/acme/design-docs.git
    ```

    **type**

    required

    string

    Allowed values: git

    ##### Example

    ```json
    {
      "branch": "main",
      "repository": "acme/design-docs",
      "root_folder": "docs/",
      "type": "github"
    }
    ```

* null

  Source configuration. Example shape is defined on `CreateMemorySourceRequest`.

  object

  **branch**

  Branch to sync. Defaults to the repository’s default branch when omitted.

  string | null

  ##### Example

  ```plaintext
  main
  ```

  **repository**

  required

  GitHub repository in `owner/repo` form.

  string

  ##### Example

  ```plaintext
  acme/design-docs
  ```

  **root\_folder**

  Sub-directory within the repository to sync. Empty / omitted = whole tree.

  string | null

  ##### Example

  ```plaintext
  docs/
  ```

  **sync\_interval\_secs**

  Automatic resync interval in seconds. Omit or set 0 for manual-only; scheduled sync accepts 300 through 604800.

  integer | null format: int32

  <= 604800

  ##### Example

  ```json
  3600
  ```

  **type**

  required

  string

  Allowed values: github

  ##### Example

  ```json
  {
    "branch": "main",
    "repository": "acme/design-docs",
    "root_folder": "docs/",
    "type": "github"
  }
  ```

* object

  Source configuration. Example shape is defined on `CreateMemorySourceRequest`.

  object

  **branch**

  Branch to sync. Defaults to the repository’s default branch when omitted.

  string | null

  ##### Example

  ```plaintext
  main
  ```

  **root\_folder**

  Sub-directory within the repository to sync. Empty / omitted = whole tree.

  string | null

  ##### Example

  ```plaintext
  docs/
  ```

  **sync\_interval\_secs**

  Automatic resync interval in seconds. Omit or set 0 for manual-only; scheduled sync accepts 300 through 604800.

  integer | null format: int32

  <= 604800

  ##### Example

  ```json
  3600
  ```

  **url**

  required

  Clonable git URL (SSH or HTTPS).

  string

  ##### Example

  ```plaintext
  https://github.com/acme/design-docs.git
  ```

  **type**

  required

  string

  Allowed values: git

  ##### Example

  ```json
  {
    "branch": "main",
    "repository": "acme/design-docs",
    "root_folder": "docs/",
    "type": "github"
  }
  ```

* object

  null

## Responses

### 200

Memory updated

Media typeapplication/json

Response body for memory.

object

**archived\_at**

Timestamp when this resource was archived, if any (RFC 3339).

string | null format: date-time

**created\_at**

required

Timestamp when this resource was created (RFC 3339).

string format: date-time

**deleted\_at**

Timestamp when this resource was soft-deleted, if any (RFC 3339).

string | null format: date-time

**description**

Human-readable description. Safe to render in user-facing messages.

string | null

**id**

required

Prefixed public identifier. See [ID Schema](https://everruns.com/docs/advanced/id-schema/).

string

**is\_readonly**

required

Whether the memory is mounted read-only into sessions. Read-only memories accept no writes from the session sandbox.

boolean

**last\_sync\_error**

Most recent sync error message; cleared on the next successful sync.

string | null

**last\_synced\_at**

Timestamp of the most recent successful sync (RFC 3339). `None` if never synced.

string | null format: date-time

**name**

required

Human-readable name. Safe to render in user-facing messages.

string

**owner\_agent\_id**

Owning agent when `scope = agent`.

string | null

**owner\_user\_id**

Owning user when `scope = user`.

string | null format: uuid

**scope**

required

Ownership scope (`org`, `agent`, or `user`).

string

**source**

required

One of:

* object

  Source-specific configuration (git remote, github repo, manual upload).

  object

  **provider**

  required

  string

  Allowed values: manual

* object

  Source-specific configuration (git remote, github repo, manual upload).

  object

  **branch**

  required

  string

  **repository**

  required

  string

  **root\_folder**

  string | null

  **sync\_interval\_secs**

  Automatic resync interval in seconds. Omit or set 0 for manual-only; scheduled sync accepts 300 through 604800.

  integer | null format: int32

  <= 604800

  **provider**

  required

  string

  Allowed values: github

* object

  Source-specific configuration (git remote, github repo, manual upload).

  object

  **branch**

  required

  string

  **root\_folder**

  string | null

  **sync\_interval\_secs**

  Automatic resync interval in seconds. Omit or set 0 for manual-only; scheduled sync accepts 300 through 604800.

  integer | null format: int32

  <= 604800

  **url**

  required

  string

  **provider**

  required

  string

  Allowed values: git

**source\_type**

required

Source kind discriminator (`manual`, `git`, `github`). Determines which `source` variant is populated.

string

**status**

required

Current lifecycle status.

string

**sync\_status**

required

Current sync status (`idle`, `syncing`, `succeeded`, `failed`). Only meaningful when `source_type` is `git` or `github`.

string

**updated\_at**

required

Timestamp when this resource was last updated (RFC 3339).

string format: date-time

##### Example

```json
{
  "archived_at": "2026-05-26T00:00:00Z",
  "created_at": "2026-04-01T10:00:00Z",
  "deleted_at": "2026-05-26T00:00:00Z",
  "description": "Living design documents synced from GitHub",
  "id": "mem_01933b5a000070008000000000000001",
  "is_readonly": false,
  "last_sync_error": "ssh: connect to host github.com port 22: Connection timed out",
  "last_synced_at": "2026-05-25T08:00:00Z",
  "name": "design-docs",
  "owner_agent_id": "agent_01933b5a000070008000000000000001",
  "scope": "org",
  "source": {
    "provider": "manual"
  },
  "source_type": "github",
  "status": "active",
  "sync_status": "succeeded",
  "updated_at": "2026-05-25T08:00:00Z"
}
```

### 400

Invalid input

Media typeapplication/json

Standard error response.

Wire shape is [RFC 9457 Problem Details](https://www.rfc-editor.org/rfc/rfc9457): every error response includes `title` and `status`, and may include `detail`, `code`, `allowed_actions`, `retry_after_seconds`, `instance`, and `type`. The content type is rewritten to `application/problem+json` with the `application/problem+json` content type.

object

**allowed\_actions**

Recovery actions the caller can take next.

Array\<object>

Agent-actionable link describing a follow-up the caller can take. Used in two contexts:

* **Error recovery** — `ErrorResponse.allowed_actions` carries `rel`s like `retry`, `retry-later`, `unarchive`, `get-existing` so the agent knows the right next call after a 4xx/429.
* **Entity hypermedia** — `WithUrls<T>.allowed_actions` carries state-aware `rel`s like `cancel`, `events`, `self`, `update` on the entity itself so the agent can follow links instead of reconstructing routes from prose.

The shape is intentionally identical across both contexts; the closed `rel` vocabulary distinguishes them.

object

**hint**

Short, agent-readable hint (e.g. “Shorten ‘name’ to <= 200 chars.”, “Cancel the active turn for this session.”).

string | null

**href**

Absolute (preferred) or relative URL the caller may invoke directly. **Always present on entity hypermedia actions** (`WithUrls<T>.allowed_actions`); **optional on error-recovery actions** (`ErrorResponse.allowed_actions`) where the matching `operation_id` is enough and the URI is implicit from the failed call.

string | null

**method**

HTTP method to use against `href`. Required for entity hypermedia actions; usually omitted on error-recovery actions where the same operation is retried with its original method.

string | null

**operation\_id**

OpenAPI `operationId` the caller should invoke. Lets an MCP client resolve the call without parsing `href`.

string | null

**rel**

required

Link relation describing the action. Examples: `self`, `cancel`, `pause`, `resume`, `events`, `retry`, `retry-later`, `unarchive`, `get-existing`, `delete`, `update`.

string

**schema\_ref**

OpenAPI `$ref` to the request-body schema, when the action takes one (e.g. `#/components/schemas/UpdateSessionRequest`). Lets a tool-calling agent fetch the input shape without scanning the whole spec.

string | null

**code**

Stable, machine-readable error code (snake\_case).

string | null

**detail**

Human-readable explanation specific to this occurrence.

string | null

**instance**

Request URI for this occurrence.

string | null

**retry\_after\_seconds**

Seconds the caller should wait before retrying (429 / transient 503).

integer | null format: int32

**status**

required

HTTP status code; mirrors the response status line.

integer format: int32

**title**

required

Short, human-readable summary of the problem (e.g. “Not Found”).

string

**type**

RFC 9457 problem type URI. Optional; identifies the problem class.

string | null

##### Example

```json
{
  "allowed_actions": [
    {
      "method": "POST"
    }
  ],
  "code": "session_not_found",
  "detail": "Session session_01933b5a000070008000000000000001 not found in org org_01933b5a000070008000000000000001.",
  "instance": "/v1/sessions/session_01933b5a000070008000000000000001",
  "retry_after_seconds": 30,
  "status": 404,
  "title": "Session not found",
  "type": "https://everruns.com/docs/errors/session_not_found"
}
```

### 404

Memory not found

Media typeapplication/json

Standard error response.

Wire shape is [RFC 9457 Problem Details](https://www.rfc-editor.org/rfc/rfc9457): every error response includes `title` and `status`, and may include `detail`, `code`, `allowed_actions`, `retry_after_seconds`, `instance`, and `type`. The content type is rewritten to `application/problem+json` with the `application/problem+json` content type.

object

**allowed\_actions**

Recovery actions the caller can take next.

Array\<object>

Agent-actionable link describing a follow-up the caller can take. Used in two contexts:

* **Error recovery** — `ErrorResponse.allowed_actions` carries `rel`s like `retry`, `retry-later`, `unarchive`, `get-existing` so the agent knows the right next call after a 4xx/429.
* **Entity hypermedia** — `WithUrls<T>.allowed_actions` carries state-aware `rel`s like `cancel`, `events`, `self`, `update` on the entity itself so the agent can follow links instead of reconstructing routes from prose.

The shape is intentionally identical across both contexts; the closed `rel` vocabulary distinguishes them.

object

**hint**

Short, agent-readable hint (e.g. “Shorten ‘name’ to <= 200 chars.”, “Cancel the active turn for this session.”).

string | null

**href**

Absolute (preferred) or relative URL the caller may invoke directly. **Always present on entity hypermedia actions** (`WithUrls<T>.allowed_actions`); **optional on error-recovery actions** (`ErrorResponse.allowed_actions`) where the matching `operation_id` is enough and the URI is implicit from the failed call.

string | null

**method**

HTTP method to use against `href`. Required for entity hypermedia actions; usually omitted on error-recovery actions where the same operation is retried with its original method.

string | null

**operation\_id**

OpenAPI `operationId` the caller should invoke. Lets an MCP client resolve the call without parsing `href`.

string | null

**rel**

required

Link relation describing the action. Examples: `self`, `cancel`, `pause`, `resume`, `events`, `retry`, `retry-later`, `unarchive`, `get-existing`, `delete`, `update`.

string

**schema\_ref**

OpenAPI `$ref` to the request-body schema, when the action takes one (e.g. `#/components/schemas/UpdateSessionRequest`). Lets a tool-calling agent fetch the input shape without scanning the whole spec.

string | null

**code**

Stable, machine-readable error code (snake\_case).

string | null

**detail**

Human-readable explanation specific to this occurrence.

string | null

**instance**

Request URI for this occurrence.

string | null

**retry\_after\_seconds**

Seconds the caller should wait before retrying (429 / transient 503).

integer | null format: int32

**status**

required

HTTP status code; mirrors the response status line.

integer format: int32

**title**

required

Short, human-readable summary of the problem (e.g. “Not Found”).

string

**type**

RFC 9457 problem type URI. Optional; identifies the problem class.

string | null

##### Example

```json
{
  "allowed_actions": [
    {
      "method": "POST"
    }
  ],
  "code": "session_not_found",
  "detail": "Session session_01933b5a000070008000000000000001 not found in org org_01933b5a000070008000000000000001.",
  "instance": "/v1/sessions/session_01933b5a000070008000000000000001",
  "retry_after_seconds": 30,
  "status": 404,
  "title": "Session not found",
  "type": "https://everruns.com/docs/errors/session_not_found"
}
```

### 409

Duplicate memory name

Media typeapplication/json

Standard error response.

Wire shape is [RFC 9457 Problem Details](https://www.rfc-editor.org/rfc/rfc9457): every error response includes `title` and `status`, and may include `detail`, `code`, `allowed_actions`, `retry_after_seconds`, `instance`, and `type`. The content type is rewritten to `application/problem+json` with the `application/problem+json` content type.

object

**allowed\_actions**

Recovery actions the caller can take next.

Array\<object>

Agent-actionable link describing a follow-up the caller can take. Used in two contexts:

* **Error recovery** — `ErrorResponse.allowed_actions` carries `rel`s like `retry`, `retry-later`, `unarchive`, `get-existing` so the agent knows the right next call after a 4xx/429.
* **Entity hypermedia** — `WithUrls<T>.allowed_actions` carries state-aware `rel`s like `cancel`, `events`, `self`, `update` on the entity itself so the agent can follow links instead of reconstructing routes from prose.

The shape is intentionally identical across both contexts; the closed `rel` vocabulary distinguishes them.

object

**hint**

Short, agent-readable hint (e.g. “Shorten ‘name’ to <= 200 chars.”, “Cancel the active turn for this session.”).

string | null

**href**

Absolute (preferred) or relative URL the caller may invoke directly. **Always present on entity hypermedia actions** (`WithUrls<T>.allowed_actions`); **optional on error-recovery actions** (`ErrorResponse.allowed_actions`) where the matching `operation_id` is enough and the URI is implicit from the failed call.

string | null

**method**

HTTP method to use against `href`. Required for entity hypermedia actions; usually omitted on error-recovery actions where the same operation is retried with its original method.

string | null

**operation\_id**

OpenAPI `operationId` the caller should invoke. Lets an MCP client resolve the call without parsing `href`.

string | null

**rel**

required

Link relation describing the action. Examples: `self`, `cancel`, `pause`, `resume`, `events`, `retry`, `retry-later`, `unarchive`, `get-existing`, `delete`, `update`.

string

**schema\_ref**

OpenAPI `$ref` to the request-body schema, when the action takes one (e.g. `#/components/schemas/UpdateSessionRequest`). Lets a tool-calling agent fetch the input shape without scanning the whole spec.

string | null

**code**

Stable, machine-readable error code (snake\_case).

string | null

**detail**

Human-readable explanation specific to this occurrence.

string | null

**instance**

Request URI for this occurrence.

string | null

**retry\_after\_seconds**

Seconds the caller should wait before retrying (429 / transient 503).

integer | null format: int32

**status**

required

HTTP status code; mirrors the response status line.

integer format: int32

**title**

required

Short, human-readable summary of the problem (e.g. “Not Found”).

string

**type**

RFC 9457 problem type URI. Optional; identifies the problem class.

string | null

##### Example

```json
{
  "allowed_actions": [
    {
      "method": "POST"
    }
  ],
  "code": "session_not_found",
  "detail": "Session session_01933b5a000070008000000000000001 not found in org org_01933b5a000070008000000000000001.",
  "instance": "/v1/sessions/session_01933b5a000070008000000000000001",
  "retry_after_seconds": 30,
  "status": 404,
  "title": "Session not found",
  "type": "https://everruns.com/docs/errors/session_not_found"
}
```