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.
Reference
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
presetIdstringrequired
Preset id
hulu
Body
A JSON body. An example, built from the field definitions:
using var client = new HttpClient();
var request = new HttpRequestMessage(new HttpMethod("POST"), "https://YOUR-NETWORK-DOMAIN/rest-api/video-requirements/presets/hulu.do");
request.Headers.Add("X-Api-Key", "YOUR_API_KEY");
request.Content = new StringContent("{\"id\":\"acme-tv\",\"name\":\"Acme TV\",\"profile\":\"Mezzanine\",\"source\":\"https://ads.acme.tv/specs/video\"}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());