How Tos

Apply a logo overlay to a running Live stream

Set or clear the logo on a Live stream while it is on air, without stopping the broadcast.

Available in: UI · API

Set or clear the corner-bug / logo on a running Live stream without stopping the broadcast. The runtime operation is runtimeApplyLogo; it persists the change to the broadcast and the encoder picks it up on the next keyframe.

When to use this

When a logo must be added, swapped or removed while the broadcast is on air — for example a sponsor bug for a segment of a programme, or a clearance event that requires the bug to come off temporarily.

Prerequisites

  • A Live stream that is currently running (LiveStream.status = 2).
  • A user with the Operator or System Administrator role.
  • An image Asset in the logos bucket — list the available logos with listAssets({ fileType: "logos" }) or open Assets in the UI.

Via UI

Navigation: On air → <row> → Logo tab in the runtime panel.

Open the runtime panel

Click the row of the running Live stream on On air to expand its runtime panel.

Switch to the Logo tab

Click the Logo icon (logo.svg) in the runtime cluster. The Logo panel renders inline.

Pick a logo and position

  • Logo — pick an Asset from the logos bucket.
  • Position — pick one of the nine grid positions: Center, Left, Right, Top, Bottom, Top-Left, Top-Right, Bottom-Left, Bottom-Right.

Submit. The logo lands on the output on the next keyframe.

Submit the same panel with the Logo field cleared (empty filename). The position is preserved so a later call can re-apply a logo without re-specifying it.

Via API

ActionMethod + pathoperationId
Apply or clear the logoPOST /c21apiv2/livestreams/{id}/runtimeOptions/logoruntimeApplyLogo
curl -X POST "https://<your-host>/c21apiv2/livestreams/<livestreamId>/runtimeOptions/logo" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "logo": {
      "filename": "station.png",
      "position": "Top-Right"
    }
  }'

Body shape:

FieldNotes
logo.filenameAsset filename from the logos bucket. An empty string clears the logo while preserving the position.
logo.positionOne of the canonical LogoPosition enum values listed above. The legacy bitmask integer is still accepted on input for backwards compatibility.

The response is the standard envelope with data: null — runtime operations do not echo the new state. To confirm, call GET /c21apiv2/livestreams/{livestreamId} and inspect the Logo property.

Verify

  • The output of the broadcast shows the new logo on the next keyframe.
  • GET /c21apiv2/livestreams/{livestreamId} returns the updated Logo property with the new filename and position.

FAQ

Copyright © 2026