---
title: "Set site video creative requirements"
type: reference
method: POST
path: /rest-api/sites/{siteId}/video-requirements.do
tag: "Sites"
---

# Set site video creative requirements

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

Replaces the publisher's video creative requirements set on the site with the request body; an empty object clears them. The switch is set separately (video-requirements/enable, /disable). Every requirement is optional and only those present are checked: resolutions (each with an optional bitrate range in Mbps that wins over videoBitrate), videoBitrate {min, max} in Mbps, durations in seconds with durationTolerance (default 0.5), frameRates, containers (MP4, MOV, WEBM), videoCodecs (H264, HEVC, PRORES, VP9, AV1, MPEG2), audioCodecs (AAC, PCM, AC3, EAC3, MP3, OPUS), minAudioBitrate in kbps, audioChannels, maxFileSizeMb and loudness {target, tolerance} in LKFS. While the site's switch (enabled) is on, an uploaded video (LOCAL_VIDEO, or the best file of ADVANCED_LOCAL_VIDEOS) that fails them is linked as usual but not served on this site's placements; external video, VAST tags and DSP bids are not checked. Off keeps them but checks nothing. The ad servers apply the change within seconds. Requires UPDATE access to the site and ENABLED level on the SITE_VIDEO_CREATIVE_REQUIREMENTS permission.

## Path params

| Name | Type | Required | Example | Description |
|---|---|---|---|---|
| `siteId` | integer | yes | `5001` | Unique numeric ID of the site |

## Body

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

```json
{
  "bitrateExemptsProRes": "true",
  "durations": [
    15,
    30
  ],
  "durationTolerance": "0.5",
  "frameRates": [
    23.976,
    29.97
  ]
}
```

## Responses

- `200` — Requirements saved; the stored requirements are returned
- `400` — Invalid body, each problem named in errors by field — e.g. a negative duration, a bitrate range whose min exceeds its max, an unknown codec or container
- `401` — Authentication error
- `403` — Insufficient permissions, naming the missing one
- `404` — Site not found or deleted

## Example request

```bash
curl --request POST \
  --url 'https://YOUR-NETWORK-DOMAIN/rest-api/sites/5001/video-requirements.do' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "bitrateExemptsProRes": "true",
  "durations": [
    15,
    30
  ],
  "durationTolerance": "0.5",
  "frameRates": [
    23.976,
    29.97
  ]
}'
```

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