---
title: "Change labels of many banners"
type: reference
method: POST
path: /rest-api/banners/labels.do
tag: "Banners"
---

# Change labels of many banners

`POST https://YOUR-NETWORK-DOMAIN/rest-api/banners/labels.do`

Applies one label change to up to 500 banners in one call: ADD appends the labels, OVERWRITE replaces the banner's labels with them, REMOVE takes them off and CLEAR removes every label (labels is then ignored). Label names that do not exist yet are created when the caller holds the Create Labels permission, otherwise the call is a 400 naming them. Banners whose labels would not change are skipped as 'unchanged', deleted or unknown ids as 'deleted' / 'not-found'. The response lists changed ids and skipped {id, reason} pairs. The batch is all-or-nothing on permissions: without the Banner Labels permission, or if any banner's advertiser is outside the caller's UPDATE share, nothing changes.

## Form params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `ids` | array<integer> | yes | `3001` | Banner IDs to change, 1 to 500 |
| `labels` | array<string> | no | `premium` | Label names, comma-separated or repeated |
| `labelUpdateType` | string | no | `ADD` | ADD (default), OVERWRITE, REMOVE or CLEAR |

## Responses

- `200` — Batch applied
- `400` — No ids or more than 500, no labels for ADD / OVERWRITE / REMOVE, or a new label the caller may not create
- `401` — Authentication error
- `403` — Not enough permissions for the whole batch
- `404` — None of the ids names an existing banner

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/banners/labels.do' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'ids=3001' \
  --data-urlencode 'labels=premium' \
  --data-urlencode 'labelUpdateType=ADD'
```

Source: https://epom.com/ad-server/docs/api/banners/post-banners-labels