---
title: "Re-apply a video spec preset to all publisher sites using it"
type: reference
method: POST
path: /rest-api/video-requirements/presets/{presetId}/apply-to-sites.do
tag: "Sites"
---

# Re-apply a video spec preset to all publisher sites using it

`POST https://YOUR-NETWORK-DOMAIN/rest-api/video-requirements/presets/{presetId}/apply-to-sites.do`

Pushes the preset's current values to every live site whose requirements were filled from it — what video-requirements/apply-preset does for one site, so a spec edited here reaches the sites that use it. Each site's own changes are replaced; its switch is not changed. Each site goes through the checks one apply-preset would: the SITE_VIDEO_CREATIVE_REQUIREMENTS permission (enabled) and UPDATE access to the site. A site that fails them is left as it is and listed in notUpdated with the reason (also in ignoredFields / ignoredFieldReasons as site:<id>); updated counts the sites changed, sites lists them (the first 100, with total and more). The ad servers pick the change up on their next reload, within seconds. Requires the VIDEO_REQUIREMENT_PRESETS admin permission (Admin → Creatives & tags → Video requirement presets).

## Path params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `presetId` | string | yes | `hulu` | Preset id |

## Responses

- `200` — {updated, sites: [{id, name}], total, more, notUpdated: [{id, name, reason}]}
- `400` — Bad request — invalid or missing parameters
- `401` — Authentication error
- `403` — Insufficient permissions, naming the missing one; also when no site could be updated for lack of rights
- `404` — No preset with this id

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/video-requirements/presets/hulu/apply-to-sites.do' \
  --header 'X-Api-Key: YOUR_API_KEY'
```

Source: https://epom.com/ad-server/docs/api/sites/post-video-requirements-presets-apply-to-sites