---
title: "Pause all Google Ads campaigns"
method: POST
path: "/api/apps/{app_id}/google-ads/campaigns/pause-all"
---

# Pause all Google Ads campaigns

`POST /api/apps/{app_id}/google-ads/campaigns/pause-all`

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Stops every campaign on the account serving, in one call. Useful as a spend kill switch.

The response reports how many campaigns paused out of how many were tried. A `status` of `partial` means at least one did not pause and is still serving. The call does not roll the others back, so retry it or pause the remaining campaigns individually to see why.

There is no matching resume-all. Resume each campaign with [Resume campaign](/api-reference/resume-google-ads-campaign), which re-checks billing per campaign.

<Warning>A 409 means the change may or may not have been applied. The request to Google Ads timed out after it was sent. Read the campaign back with [Get campaign](/api-reference/get-google-ads-campaign) before retrying, or you can end up applying it twice.</Warning>

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

## Path parameters

- `app_id` string, required — ID of the app whose Google Ads campaigns to manage.

## Response `200`

Successful Response

- PauseAllCampaignsResponse — Outcome of pausing every campaign on the account.
  - `status` string, required — Outcome of the request. A status of `paused` means every campaign paused, and `partial` means at least one did not.
  - `paused_count` integer, required — How many campaigns this call paused.
  - `total_count` integer, required — How many campaigns it tried to pause.
  - `failed_count` integer, required — How many could not be paused. Retry the call, or pause those campaigns individually to see why.

## Other responses

- `400` — Google Ads rejected the request, for example ad text that breaks its policies or a budget below the currency's minimum. The response message carries Google's reason.
- `401` — Missing or invalid credentials.
- `403` — You don't have access to this app, the app does not exist, or you used a workspace API key. A missing app and an app you cannot reach are deliberately the same answer.
- `404` — The app has no connected Google Ads account.
- `409` — The request to Google Ads timed out after being sent, so the change may or may not have been applied. Read the campaign back before retrying.
- `429` — Google Ads is rate limiting the account. Retry later.

## Changes

- **2026-08-30** `394136a6cdd4` — 1 info
  - removed the non-success response with the status `422`
- **2026-08-26** `df72f6cff1ca` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/idealspot/apis/base44-app-management-api/changes/api/apps/:app_id/google-ads/campaigns/pause-all/post.md)

---

[API](https://skmtc.dev/idealspot/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/idealspot/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/idealspot/base44-app-management-api/revisions/6ad855bf424f/schema)
