> ## Documentation Index
> Fetch the complete documentation index at: https://docs.maximem.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# configure

> Update SDK configuration. Must be called before initialize().

```python theme={null}
sdk.configure(**kwargs)
```

Adjusts SDK-wide settings such as cache backend, session timeout, retry policy, and logging. `configure()` is synchronous and **must be called before `initialize()`**. Once the SDK is initialized, re-configuration is rejected to prevent inconsistent runtime state. Any options not supplied keep their existing values.

### Parameters

<ParamField path="storage_path" type="str" required={false}>
  Override the default cache storage path on disk.
</ParamField>

<ParamField path="cache_backend" type="str | None" required={false}>
  Cache backend selection. Pass `"sqlite"` to enable on-disk caching, or `None` to disable it.
</ParamField>

<ParamField path="session_timeout_minutes" type="int" required={false}>
  Session timeout in minutes. Accepted range is `5`-`1440`.
</ParamField>

<ParamField path="timeouts" type="TimeoutConfig | dict" required={false}>
  Per-operation timeout overrides. Pass either a `TimeoutConfig` instance or a plain dict with the fields you want to override.
</ParamField>

<ParamField path="retry_policy" type="RetryPolicy | dict | None" required={false}>
  Retry policy for transient failures. Pass a `RetryPolicy`, a dict, or `None` to disable retries entirely.
</ParamField>

<ParamField path="log_level" type="str" required={false}>
  Logging verbosity. One of `"DEBUG"`, `"INFO"`, `"WARNING"`, `"ERROR"`.
</ParamField>

<ParamField path="logger" type="logging.Logger" required={false}>
  Custom logger instance to replace the SDK's internal logger.
</ParamField>

### Returns

Returns `None`.

### Example

```python theme={null}
from maximem_synap import MaximemSynapSDK

sdk = MaximemSynapSDK(api_key="synap_your_key_here")

# Configure BEFORE initialize().
sdk.configure(
    cache_backend="sqlite",
    session_timeout_minutes=60,
    log_level="INFO",
)

await sdk.initialize()
```

### Raises

* `InvalidInputError`: when `configure()` is called after `initialize()`, or when an option value falls outside its accepted range.

See [Error Codes](/sdk-reference/errors) for the full SDK exception hierarchy.

### See also

* [initialize](/sdk-reference/lifecycle/initialize): the next step after `configure()`.
* [shutdown](/sdk-reference/lifecycle/shutdown): graceful teardown on exit.
