# experiments.update

Turn experimental mode on or off for the signed-in person (mode), or turn one experiment on or off (experiment with enabled). Only an experiment offered to this workspace can be turned on. Pass expectedRevision from experiments.get and an idempotencyKey. It never changes anyone else's choice.

`POST /api/v1/accounting/experiments.update`

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

MCP tool: `accounting_experiments_update`

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `mode` | boolean |  | Experimental mode for the signed-in person. Off stops every experiment for them without forgetting which ones they turned on. |
| `experiment` | enum |  | The experiment to turn on or off. One of: `rts-mode`. |
| `enabled` | boolean |  | On or off for the experiment named in experiment. |
| `expectedRevision` | integer |  | The revision you last read. A different revision means the choices changed first. 0 to 9007199254740990. |
| `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/experiments.update \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "mode": true
}'
```

Reference page: https://app.getoatmilk.com/docs/api/experiments.update
