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

# Campaign autonomy settings

> Control whether the agent acts automatically or pauses for buyer approval per campaign

Autonomy settings let a buyer control how independently the agent operates on a campaign. The preference persists across sessions, so the buyer does not have to repeat it each time they start a conversation.

## Two dimensions

Each campaign has two independent autonomy dimensions:

| Dimension            | Controls                                                                                          |
| -------------------- | ------------------------------------------------------------------------------------------------- |
| `inventorySelection` | Whether the agent stages media buys automatically or pauses for buyer approval before each one    |
| `rebriefing`         | Whether the agent updates the campaign brief automatically or proposes changes for buyer approval |

## Three modes

Each dimension accepts one of three mode values:

| Mode        | Meaning                                                                                                                                          |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `manual`    | Human-driven. The agent proposes the action and the buyer executes it. This is the default when no preference has been saved.                    |
| `propose`   | Agent drafts, buyer approves. The agent prepares the action and presents it for an explicit yes before proceeding.                               |
| `automatic` | Agent acts. The agent executes the action without a per-action confirmation, relying on the campaign brief and budget as the standing authority. |

## Setting autonomy via the API

Pass the `autonomy` field to the campaign create or update operation. Each dimension is optional — omitting a dimension leaves its current value unchanged.

```json theme={null}
{
  "autonomy": {
    "inventorySelection": "automatic",
    "rebriefing": "propose"
  }
}
```

At least one dimension must be present when the `autonomy` object is supplied.

## Reading the stored preference

The response shape differs between the V2 REST API and the V3 MCP agent surface.

### V2 REST API

The V2 REST campaign response includes `autonomy` only when at least one dimension has been explicitly set. Each present dimension is returned as a plain enum string:

```json theme={null}
{
  "autonomy": {
    "inventorySelection": "automatic"
  }
}
```

An absent dimension means no preference has been saved and the effective mode is `manual`. The `autonomy` object itself is absent from the response when neither dimension is set.

### V3 MCP agent surface

The V3 campaign workspace always returns both dimensions, each as an object:

| Field    | Values                               | Meaning                     |
| -------- | ------------------------------------ | --------------------------- |
| `mode`   | `manual` \| `propose` \| `automatic` | The effective mode          |
| `source` | `inherited` \| `overridden`          | How the mode was determined |

A `source` of `inherited` means no preference has been saved and the dimension is using its default (`manual`). A `source` of `overridden` means the buyer explicitly set the mode.

```json theme={null}
{
  "autonomy": {
    "inventorySelection": { "mode": "automatic", "source": "overridden" },
    "rebriefing": { "mode": "manual", "source": "inherited" }
  }
}
```

## Scope and persistence

Autonomy is a per-campaign setting. Changing it on one campaign does not affect other campaigns for the same advertiser or account. The preference survives session restarts and is included in every campaign read response.
