> ## 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.

# Pause campaign

> Halt spend across every media buy and package on a campaign

`POST /api/v2/buyer/campaigns/:id/pause`

Halts spend across all media buys and packages on the campaign. The pause cascades to every media buy and package, and the campaign transitions to `PAUSED`.

<Note>
  To resume a paused campaign, use [reactivate](/v2/buyer/campaigns/tasks/reactivate-campaign) — `execute` does not resume a `PAUSED` campaign.
</Note>

## Request

```bash theme={null}
curl -X POST https://api.interchange.io/api/v2/buyer/campaigns/cmp_987654321/pause \
  -H "Authorization: Bearer $SCOPE3_API_KEY"
```

No request body.

## Parameters

| Field | Type   | Required | Notes                         |
| ----- | ------ | -------- | ----------------------------- |
| `id`  | string | Yes      | Campaign ID (path parameter). |

## Response

```json theme={null}
{
  "campaignId": "cmp_987654321",
  "campaignName": "Q2 2026 Tech Launch",
  "previousStatus": "ACTIVE",
  "newStatus": "PAUSED",
  "totalMediaBuys": 2,
  "successCount": 2,
  "failureCount": 0,
  "mediaBuyResults": [
    { "mediaBuyId": "mb_abc123", "name": "Q2 2026 Tech Launch - Example Media", "previousStatus": "ACTIVE", "success": true },
    { "mediaBuyId": "mb_def456", "name": "Q2 2026 Tech Launch - Display", "previousStatus": "ACTIVE", "success": true }
  ]
}
```

* `campaignId` — the campaign that was paused.
* `campaignName` — the campaign's display name.
* `previousStatus` / `newStatus` — campaign status before and after the call.
* `totalMediaBuys` — number of media buys the cascade attempted.
* `successCount` / `failureCount` — how many media buy cascade operations succeeded or failed. Partial failures are possible; the campaign is still marked `PAUSED` even when `failureCount > 0`.
* `mediaBuyResults` — per-media-buy outcome. Each entry includes `mediaBuyId`, `name`, `previousStatus`, `success`, and an optional `error` string when the ADCP pause call failed for that buy.

<Warning>
  `failureCount > 0` means the campaign status changed to `PAUSED` but one or more media buys failed to pause at the ADCP level. Check `mediaBuyResults` entries where `success: false` to identify affected buys and their error messages.
</Warning>

## Errors

| Code               | When                                                      |
| ------------------ | --------------------------------------------------------- |
| `VALIDATION_ERROR` | Campaign is not in a pausable status.                     |
| `NOT_FOUND`        | Campaign ID does not exist for the authenticated account. |

See [Errors](/v2/reference/errors) for the full error shape and recovery semantics.

## Related

<CardGroup cols={2}>
  <Card title="Reactivate campaign" href="/v2/buyer/campaigns/tasks/reactivate-campaign" icon="play">
    Resume a PAUSED campaign back to ACTIVE
  </Card>

  <Card title="Execute campaign" href="/v2/buyer/campaigns/tasks/execute-campaign" icon="rocket">
    Launch a DRAFT or COMPLETED campaign
  </Card>

  <Card title="Media buy status" href="/v2/buyer/campaigns/tasks/get-media-buy-status" icon="signal-stream">
    Poll live ADCP status
  </Card>

  <Card title="Campaign overview" href="/v2/object-guides/campaign" icon="rocket">
    The campaign object and lifecycle
  </Card>
</CardGroup>
