---
title: "Update a campaign"
method: PATCH
path: "/campaigns/{campaignId}"
tags: ["Campaigns"]
---

# Update a campaign

`PATCH /campaigns/{campaignId}`

## Request

- Base URL: `https://www.fandom.ai/api/v1`
- URL: `https://www.fandom.ai/api/v1/campaigns/{campaignId}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/skilledstars/apis/super-fans-enterprise-api/docs/campaigns/:campaignId/patch.ts> (a function with typed inputs; its response is checked against the schema)

Send only the fields to change. Google Ads settings are saved in Fandom; a campaign already in Google Ads picks them up on its next sync from the app.

Scope: `campaigns:write`.

Send an `Idempotency-Key` header to make retries safe.

## Path parameters

- `campaignId` string, required

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `name` string
  - `objective` string: What the campaign should achieve and for whom. Drives targeting.
  - `brandId` string, nullable: Brand id.
  - `industry` string
  - `language` string: Language code. Default `en`.
  - `locations` string[]: Country or region codes, e.g. `["US"]`. Default `["US"]`.
  - `successMetrics` string[]
  - `campaignType` 'SEARCH' | 'DEMAND_GEN' | 'VIDEO' | 'DISPLAY': Google Ads campaign type.
  - `budget` number, nullable
  - `budgetType` 'daily' | 'total'
  - `endDate` string, nullable: YYYY-MM-DD. Required for a total budget.
  - `biddingStrategy` 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE' | 'TARGET_CPA' | 'TARGET_ROAS' | 'TARGET_CPC' | 'TARGET_SPEND' | 'MANUAL_CPC', nullable: Google Ads bidding strategy.
  - `targetCpa` number, nullable
  - `targetRoas` number, nullable

## Response `200`

Success

- object
  - `id` string, required
  - `name` string, required
  - `status` string, required: `draft`, `loading` (collecting data), `ready` or `error`.
  - `objective` string, required
  - `brandId` string, nullable, required
  - `brand` object, required
    - `name` string, required
    - `website` string, required
    - `description` string, required
  - `industry` string, required
  - `language` string, required
  - `locations` string[], required
  - `successMetrics` string[], required
  - `campaignType` string, nullable, required
  - `budget` number, nullable, required: In the account's currency.
  - `budgetType` 'daily' | 'total', nullable, required
  - `endDate` string, nullable, required
  - `biddingStrategy` string, nullable, required
  - `targetCpa` number, nullable, required
  - `targetRoas` number, nullable, required
  - `audiences` object[], required
    - `id` string, required: This audience's slot on the campaign. Stable; use it for targeting.
    - `name` string, required
    - `audienceId` string, nullable, required: The saved audience, or null for the campaign's own primary audience.
    - `dataStoreIds` string[], required
  - `googleAds` object, required
    - `customerId` string, nullable, required
    - `accountName` string, nullable, required
    - `campaignId` string, nullable, required: Set once the campaign exists in Google Ads.
    - `status` string, nullable, required
  - `url` string, required: Opens the campaign in Fandom.
  - `createdAt` string, nullable, required
  - `updatedAt` string, nullable, required

## Other responses

- `400`: The request is missing something or has a bad value. The message says what.
- `401`: No API key, or the key is wrong or revoked.
- `403`: The key doesn't have the scope, or isn't allowed this campaign or account.
- `404`: Nothing with that id in this workspace.
- `409`: The current state doesn't allow this (for example, it's already done or still generating).
- `429`: More than 120 requests in a minute. Wait and retry.

## Changes

- **2026-10-07** `dfe5b1c3d84f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/skilledstars/apis/super-fans-enterprise-api/changes/campaigns/:campaignId/patch.md)

---

[API](https://skmtc.dev/skilledstars/apis/super-fans-enterprise-api.md) - [All operations](https://skmtc.dev/skilledstars/apis/super-fans-enterprise-api/llms.txt) - [OpenAPI document](https://skmtc.dev/skilledstars/apis/super-fans-enterprise-api/revisions/6c1a68a75970?raw)
