## Retrieve

`projects.memory.retrieve(strproject_id)  -> MemoryRetrieveResponse`

**get** `/projects/{projectId}/memory`

Get the caller's assistant memory scoped to this project (auto-learned). Returns 404 if empty.

### Parameters

- `project_id: str`

### Returns

- `class MemoryRetrieveResponse: …`

  - `memory: Memory`

    Public JSON shape returned by GET endpoints

    - `id: str`

      The memory ID — deterministic from scope + parent IDs (example: "mem_team_team_abc")

    - `content: str`

      Markdown content of the memory

    - `created_at: str`

      ISO 8601 timestamp when the memory was first written

    - `size_bytes: float`

      UTF-8 byte length of the content — used for quota enforcement

    - `updated_at: str`

      ISO 8601 timestamp when the memory was last updated

    - `updated_by: str`

      The userId of the last writer — useful for audit/UI

### Example

```python
import os
from scenario_sdk import Scenario

client = Scenario(
    api_key=os.environ.get("SCENARIO_SDK_API_KEY"),  # This is the default and can be omitted
    api_secret=os.environ.get("SCENARIO_SDK_API_SECRET"),  # This is the default and can be omitted
)
memory = client.projects.memory.retrieve(
    "projectId",
)
print(memory.memory)
```

#### Response

```json
{
  "memory": {
    "id": "id",
    "content": "content",
    "createdAt": "createdAt",
    "sizeBytes": 0,
    "updatedAt": "updatedAt",
    "updatedBy": "updatedBy"
  }
}
```
