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

# Change labels of many placements

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

Applies one label change to up to 500 placements in one call: ADD appends the labels, OVERWRITE replaces the placement'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. Placements 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 Placement Labels permission, or if any placement's site is outside the caller's UPDATE share, nothing changes.

## Form params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `ids` | array<integer> | yes | `4001` | Placement 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 placement

## Example request

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

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