# Python SDK

## Requirements

- Python 3.9 or newer
- a Memside API key

## Install

```bash
pip install memside
```

## Create a client

```python
from memside import MemsideClient

client = MemsideClient(api_key="mem_sk_example_key")
```

The client also reads `MEMSIDE_API_KEY` from the environment:

```python
from memside import MemsideClient

client = MemsideClient()
```

## Load startup context

```python
startup = client.context_startup()
print(startup)
```

## Search Memories

```python
results = client.memories_search(q="weekend trip", limit=5)
print(results)
```

## Get one Memory

```python
memory = client.memories_get("memory_id_here")
print(memory)
```

## Create a Memory

```python
created = client.memories_create({
    "text": "Weekend trip plan\nHotel confirmed. Choose activities next.",
    "type": "note",
    "sensitivity": "private",
    "tags": ["travel", "planning"],
})

print(created)
```

Creating, updating, and deleting changes account data. Review the request before
running it.

## Available methods

Context:

- `context_startup()`
- `context_resume()`
- `context_workspace_profile()`

Memories:

- `memories_list()`
- `memories_search()`
- `memories_get()`
- `memories_get_batch()`
- `memories_create()`
- `memories_update()`
- `memories_delete()`

## Errors

Failed requests raise `MemsideError`.

```python
from memside import MemsideClient, MemsideError

try:
    client.memories_get("missing_id")
except MemsideError as error:
    print(error.status, error.code, str(error))
```

## Source

[Python SDK on GitHub](https://github.com/memside/memside/tree/main/packages/python)

## Next steps

- [API keys](/developers/api-keys/)
- [REST API](/developers/api-reference/)
- [JavaScript SDK](/developers/javascript-sdk/)
