Videos APIGuides

Update call actions

Create, edit and delete the CTAs that appear over or under the video.

call_actions carries a feature toggle, enabled, above the items list it gates. The list merges per item: an item with an id patches that CTA, an item without one creates a new CTA, and an item with "_destroy": true deletes it. CTAs you don't mention stay as they are.

This is a merge-patch: send only the keys you want to change and everything else keeps its stored value.

Edit one CTA, create another, delete a third

curl -X PATCH https://api.vturb.com/v1/videos/{id} \
  -H "Authorization: Bearer vt_..." \
  -H "Content-Type: application/json" \
  -d '{ "call_actions": {
        "enabled": true,
        "items": [
          { "id": "66f2...", "window": { "start": 30 } },
          { "base": { "name": "Buy now", "type": "outside_video", "active": true },
            "window": { "start": 60, "end": 120 } },
          { "id": "66f3...", "_destroy": true }
        ]
      } }'

The feature toggle

KeyTypeWrites
enabledbooleanTurns the whole CTA feature on or off (sits beside items)

The item keys (inside items)

KeyTypeWrites
idstringTargets an existing CTA; omit to create one
_destroybooleantrue deletes the CTA the id points to
base.namestringInternal label — only accepted when action.as_html or image_as_button is set; on a text button the content is the label
base.typestringinside_video (over the player) or outside_video (below it)
base.activebooleanTurns the CTA on or off
window.startintegerSecond the CTA appears
window.endintegerSecond the CTA disappears
window.persist_on_video_endbooleanKeep the CTA visible after the video ends
action.contentstringButton label text (the structured, no-HTML path)
action.urlstringhttp(s) URL the CTA opens
action.open_in_new_tabbooleanOpen the URL in a new tab
action.htmlstringCustom HTML the CTA renders (requires action.as_html)
action.as_htmlbooleanTreat the content as raw HTML
design.typographyobjectFont of a text button: family, letter_spacing, line_height, size, weight
design.stylesobjectLook of a text button: the colors, border_radius, padding, shadow

A text button (no action.as_html, no image_as_button) requires action.content, action.url, and a complete design.typography + design.styles. Within an item, the merge is still shallow per group: patching window.start leaves window.end alone.

On this page