---
title: "Update a video spec preset for publisher sites"
type: reference
method: POST
path: /rest-api/video-requirements/presets/{presetId}.do
tag: "Sites"
---

# Update a video spec preset for publisher sites

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

Changes only the fields in the body and keeps the others — {"asOf": "2026-10-17"} touches nothing else; requirements, when sent, replace the whole spec; {"active": false} deactivates the preset (left out of the list sites pick from) and {"active": true} reactivates it. The id never changes. A built-in preset is edited in place and keeps its id. Sites already filled from the preset keep their own copy of its requirements until it is applied to them again; their video-requirements answer marks them modified meanwhile. Invalid values come back per field in errors; fields that were sent but not applied are listed in 'ignoredFields', each with its reason in 'ignoredFieldReasons'. 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 |

## Body

A JSON body. An example, built from the field definitions:

```json
{
  "id": "acme-tv",
  "name": "Acme TV",
  "profile": "Mezzanine",
  "source": "https://ads.acme.tv/specs/video"
}
```

## Responses

- `200` — {preset, siteIds, ignoredFields, ignoredFieldReasons}
- `400` — Invalid body, each problem named in errors by field
- `401` — Authentication error
- `403` — Insufficient permissions, naming the missing one
- `404` — No preset with this id

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/video-requirements/presets/hulu.do' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "id": "acme-tv",
  "name": "Acme TV",
  "profile": "Mezzanine",
  "source": "https://ads.acme.tv/specs/video"
}'
```

Source: https://epom.com/ad-server/docs/api/sites/post-video-requirements-presets-by-preset-id