How merge-patch works
The one rule behind every video update: send only what you want to change.
PATCH /v1/videos/{id} accepts the whole player config, but you rarely change
all of it at once. The body is a merge-patch: send only what you want to
change. Any group you omit — and any key inside a group you omit — keeps its
stored value. So flipping one toggle is a one-key body:
{
"controls": {
"seekbar": false
}
}Every other control, and every other feature, is untouched. This works the same for every feature group — the per-feature guides in this section each show a focused example.
Collections
call_actions and pixels.items are collections, and the merge works per
item: an item with an id patches that entry, an item without one
creates a new entry, and an item with "_destroy": true deletes it. Entries
you don't mention stay as they are.
Arrays of values
Plain value lists — like traffic_filter.countries — replace the stored list
instead of merging with it. Always send the full list you want.
Read-only leaves
Some keys appear on GET but belong to the platform — experiment state,
derived colors, the subtitle track file. Sending them in a patch is silently
ignored, not rejected; each feature guide points out which ones.