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

# Update advertiser

> Change an advertiser's name, brand, defaults, or caps

`PUT /api/v2/buyer/advertisers/{advertiserId}`

Updates an existing advertiser. All body fields are optional — send only what you want to change. `sandbox` cannot be changed after creation.

## Request

```bash curl theme={null}
curl -X PUT https://api.interchange.io/api/v2/buyer/advertisers/12345 \
  -H "Authorization: Bearer $SCOPE3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corporation",
    "optimizationApplyMode": "AUTO",
    "frequencyCaps": [
      { "max_impressions": 5, "window": { "interval": 7, "unit": "days" } }
    ]
  }'
```

## Parameters

| Field                      | Type          | Required | Notes                                                                                                                                                                                     |
| -------------------------- | ------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `advertiserId`             | string (path) | Yes      | Unique identifier for the advertiser                                                                                                                                                      |
| `name`                     | string        | No       | Updated name (1–255 chars)                                                                                                                                                                |
| `description`              | string        | No       | Updated description (max 1000 chars)                                                                                                                                                      |
| `brand`                    | string        | No       | Updated brand domain. Re-resolves the brand reference                                                                                                                                     |
| `optimizationApplyMode`    | enum          | No       | `AUTO` or `MANUAL`                                                                                                                                                                        |
| `primaryCurrency`          | string        | No       | ISO 4217 code. Only changeable when existing non-archived campaign budgets already use it                                                                                                 |
| `linkedAccounts`           | array         | No       | Accounts to **add**. Existing links are not removed. Each item may include `credentialId` from list available accounts to disambiguate duplicate account IDs across connected credentials |
| `utmConfig`                | array         | No       | **Replaces** all advertiser-level UTM params. Pass `[]` to clear                                                                                                                          |
| `dataDelivery`             | object        | No       | Data-delivery configuration. Omit to leave existing config untouched                                                                                                                      |
| `dataDelivery.credentials` | array         | No       | **Replaces** all existing live credentials. Pass `[]` to archive all                                                                                                                      |
| `dataDelivery.outputs`     | array         | No       | **Replaces** all existing advertiser-scoped Data Delivery Outputs. Pass `[]` to clear                                                                                                     |
| `frequencyCaps`            | array         | No       | **Replaces** all existing non-archived caps. Pass `[]` to clear; omit to leave untouched                                                                                                  |

## Response

```json theme={null}
{
  "id": "12345",
  "name": "Acme Corporation",
  "description": null,
  "status": "ACTIVE",
  "sandbox": false,
  "optimizationApplyMode": "AUTO",
  "primaryCurrency": "USD",
  "createdAt": "2025-01-15T10:30:00Z",
  "updatedAt": "2025-01-20T14:45:00Z",
  "brand": "acme.com",
  "linkedAccounts": [],
  "utmConfig": [],
  "frequencyCaps": []
}
```

Returns the full advertiser resource with the applied changes.

<Warning>
  `linkedAccounts` is additive (existing links stay), but `utmConfig` and `frequencyCaps` **replace** their entire existing set. Pass an empty array to clear, or omit the field to leave it untouched.
</Warning>

## Errors

* `400 VALIDATION_ERROR` — invalid field value, or a `primaryCurrency` change blocked by existing campaign budgets.
* `404 NOT_FOUND` — `advertiserId` does not exist or is not visible to the authenticated account.

See [Errors](/v2/reference/errors) for the full error contract.

## Related

<CardGroup cols={2}>
  <Card title="Advertiser tasks" href="/v2/buyer/advertisers/tasks" icon="list-check">
    All advertiser operations
  </Card>

  <Card title="Advertiser overview" href="/v2/object-guides/advertiser" icon="user-tie">
    Fields, lifecycle, and concepts
  </Card>

  <Card title="Get advertiser" href="/v2/buyer/advertisers/tasks/get-advertiser" icon="magnifying-glass">
    Read the current state first
  </Card>

  <Card title="Delete advertiser" href="/v2/buyer/advertisers/tasks/delete-advertiser" icon="trash">
    Archive when done
  </Card>
</CardGroup>
