---
title: "Pause or resume a campaign"
method: PUT
path: "/v1/ads/campaigns/{campaignId}/status"
tags: ["Ad Campaigns"]
---

# Pause or resume a campaign

`PUT /v1/ads/campaigns/{campaignId}/status`

Updates the status of all ads in a campaign. Makes one platform API call (not per-ad) since status cascades through the campaign hierarchy.
Ads in terminal statuses (rejected, completed, cancelled) are automatically skipped.

## Path parameters

- `campaignId` string, required

## Request body

- object
  - `status` 'active' | 'paused', required
  - `platform` 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai', required

## Response `200`

Campaign status updated

- object
  - `updated` integer — Number of ads updated
  - `skipped` integer — Number of ads skipped
  - `skippedReasons` string[]
  - `message` string — Human-readable summary (present when no ads were actionable)

## Other responses

- `400` — Invalid input or campaign spans multiple social accounts
- `401` — Unauthorized
- `404` — No ads found for this campaign

---

[API](https://skmtc.net/zernio/apis/zernio-api.md) · [All operations](https://skmtc.net/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zernio/zernio-api/versions/f81ca70ea6b9/schema)
