# memory.dreaming.save

Configure dreaming with scope, enabled, cadenceDays (1, 7 or 30), retentionDays and current revision. Organization changes require an administrator and accounting:admin. Organization dreaming uses configured shared business facts and repeated reviewed category choices, never private chats. Personal dreaming is opt-in and learns only future explicit language, answer-length, date-format or timezone preferences from the caller's own Ask AI turns; disabling erases captured sources.

`POST /api/v1/accounting/memory.dreaming.save`

Permissions: `accounting:read`, `accounting:write` · Roles: admin, finance, contributor, accountant · Idempotency key required · Send `expectedRevision`

MCP tool: `accounting_memory_dreaming_save`

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `scope` | enum |  | One of: `organization`, `personal`. Default `"organization"`. |
| `enabled` | boolean | Yes |  |
| `cadenceDays` | 1 or 7 or 30 | Yes | One of: `1`, `7`, `30`. |
| `retentionDays` | integer | Yes | 30 to 365. |
| `expectedRevision` | integer | Yes | The record's current revision, from the last time you read it. If someone changed the record since, the request is refused with a conflict so you can reload and check before trying again. 0 to 2147483646. |
| `idempotencyKey` | string | Yes | Any unique text you generate once per intended change, so a retried request only happens once. Send it as the Idempotency-Key header instead if you prefer; if you send both they must match. 8–200 characters. |

## Example request

```bash
curl https://app.getoatmilk.com/api/v1/accounting/memory.dreaming.save \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "enabled": true,
  "cadenceDays": 1,
  "retentionDays": 30,
  "expectedRevision": 3
}'
```

Reference page: https://app.getoatmilk.com/docs/api/memory.dreaming.save
