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

# Add a video spec preset for publisher sites

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

Adds a publisher video spec to the network's list, for site editors to apply with video-requirements/apply-preset. name and at least one requirement are needed; id is made from name and profile unless given. Invalid values come back per field in errors (requirements.durations[0], name, asOf, …). The response is the stored preset; 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).

## 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
- `409` — A preset with this id already exists

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/video-requirements/presets.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