# Change sets & audiences

**Read-only tools.** Read-side companions to the write tools: management connections, change sets and saved audiences.

| Tool | Purpose |
|---|---|
| [`list_management_connections`](#list_management_connections) | List management connections |
| [`list_change_sets`](#list_change_sets) | List change sets |
| [`get_change_set`](#get_change_set) | Get a change set |
| [`list_audiences`](#list_audiences) | List audiences |

## `list_management_connections`

**List management connections**

The ad-platform connections this organization can apply changes through, as { id, platform, name }. Call this BEFORE changes_draft: a draft must name one of these ids, and any other id is refused. Returns identifiers only — never tokens, credentials or account contents.

**Posture:** read-only · **Module gate:** none (needs only the agent entitlement) · **REST:** `POST /api/v1/tools/list_management_connections`

Takes no arguments. Send `{}` (any key at all is rejected).

## `list_change_sets`

**List change sets**

This organization's change sets, newest first, with their workflow status — including ones drafted by people in the app, not just by this endpoint. Use it to check whether a set you submitted has been approved, rejected or applied. Optionally filter by status.

**Posture:** read-only · **Module gate:** none (needs only the agent entitlement) · **REST:** `POST /api/v1/tools/list_change_sets`

| Argument | Type | Required | Notes |
|---|---|---|---|
| `limit` | integer | no | Max change sets to return, newest first (default 50, max 200). (1–200) |
| `status` | `DRAFT` \| `PENDING_FINANCE` \| `PENDING_ADMIN` \| `APPROVED` \| `APPLYING` \| `APPLIED` \| `PARTIAL_FAILED` \| `FAILED` \| `REJECTED` \| `CANCELLED` | no | Only return change sets in this workflow state. |

## `get_change_set`

**Get a change set**

One change set with its proposed items and its approval history (who approved or rejected it, and any comment). Use it after list_change_sets to read exactly what a set contains, or to see why a reviewer sent it back.

**Posture:** read-only · **Module gate:** none (needs only the agent entitlement) · **REST:** `POST /api/v1/tools/get_change_set`

| Argument | Type | Required | Notes |
|---|---|---|---|
| `change_set_id` | string | **yes** | The change set to read. (pattern `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$`) |

## `list_audiences`

**List audiences**

This organization's saved intent audiences, newest first, with the query each was built from, its filters, its status and its ContactBased feed id. Call this before creating one: audiences are capped per organization, and an existing audience can usually be refined with audience_update_filters instead.

**Posture:** read-only · **Module gate:** none (needs only the agent entitlement) · **REST:** `POST /api/v1/tools/list_audiences`

Takes no arguments. Send `{}` (any key at all is rejected).
