---
title: SCTE-35 Insertion
slug: zixi-broadcaster-zec-current-version/scte-35-insertion
docTags: 
createdAt: 2026-01-02T20:50:26.815Z
---

Zixi supports SCTE-35 Insertion on Inputs using the API (speak to your account rep for access to broadcaster API documentation)

The SCTE-35 payload must be pre-formed by the customer and encoded as base-64 or hex to be inserted.

SCTE-35 options can be enabled by using `?advanced=1 `option when logging into broadcaster GUI in version 17+.

## To insert SCTE-35 (version 19+)

### Setup

::::WorkflowBlock
:::WorkflowBlockItem
On supported inputs, select **Support SCTE-35 injection:**

![Support SCTE-35 injection](https://api.archbee.com/api/optimize/mzxtTQEvCNIdUNgF2kuwJ/YtAcQeC7KDfNAl7io49rr-20260102-203057.png)
:::

:::WorkflowBlockItem
Enter a **PID** number for SCTE-35 injection (or leave as **Auto** to match existing SCTE-35 PID):

![SCTE-35 PID](https://api.archbee.com/api/optimize/mzxtTQEvCNIdUNgF2kuwJ/6ZZ2kC_vGSKZDqblLJNLk-20260102-203241.png)
:::

:::WorkflowBlockItem
Select **Remove old SCTE-35 packets** to clear out existing packets:

![Remove old SCTE-35 packets ](https://api.archbee.com/api/optimize/mzxtTQEvCNIdUNgF2kuwJ/txJT62M0Kvt5D6MRvppxU-20260102-203455.png)
:::

:::WorkflowBlockItem
Designate an appropriate **timeout interval** when searching for NULL packet to replace with the SCTE-35 packet to maintain PCR accuracy in CBR streams. If no NULL Packet is detected by the time the timeout is reached, the SCTE-35 will be inserted anyway breaking PCR Accuracy momentarily. (if stream is VBR, set this to 0). The value is in cycle ticks, so 90,000 = 1000 ms, 180,000 = 2000 ms, etc.

![Timeout Interval for SCTE-35 Injection](https://api.archbee.com/api/optimize/mzxtTQEvCNIdUNgF2kuwJ/JS4ef-Has_7XdYLZXVz-O-20260102-204637.png)
:::
::::

### Insertion:

Use the API to insert desired SCTE-35 payload encoded as Base64 or Hex.

- Sign-in: use the same username and password as the Broadcaster's web interface, sent as HTTP basic authentication. No separate API account is needed.
- POST to `?add_stream_scte.json?stream=<stream-id>&scte=<base64-scte35-payload>`

## To insert SCTE-35 (pre version 19)

### Setup

::::WorkflowBlock
:::WorkflowBlockItem
On supported inputs, select **Support SCTE-35 injection:**

![Support SCTE-35 injection](https://api.archbee.com/api/optimize/mzxtTQEvCNIdUNgF2kuwJ/YtAcQeC7KDfNAl7io49rr-20260102-203057.png)
:::

:::WorkflowBlockItem
Enter a **PID** number for SCTE-35 injection (or leave as **Auto** to match existing SCTE-35 PID):

![SCTE-35 PID](https://api.archbee.com/api/optimize/mzxtTQEvCNIdUNgF2kuwJ/6ZZ2kC_vGSKZDqblLJNLk-20260102-203241.png)
:::

:::WorkflowBlockItem
Select **Remove old SCTE-35 packets** to clear out existing packets:

![Remove old SCTE-35 packets ](https://api.archbee.com/api/optimize/mzxtTQEvCNIdUNgF2kuwJ/txJT62M0Kvt5D6MRvppxU-20260102-203455.png)
:::

:::WorkflowBlockItem
Designate an appropriate **timeout interval** when searching for NULL packet to replace with the SCTE-35 packet to maintain PCR accuracy in CBR streams. If no NULL Packet is detected by the time the timeout is reached, the SCTE-35 will be inserted anyway breaking PCR Accuracy momentarily. (if stream is VBR, set this to 0). The value is in cycle ticks, so 90,000 = 1000 ms, 180,000 = 2000 ms, etc.
:::
::::

### Insertion:

Use the API to insert desired SCTE-35 payload encoded as Base64 or Hex.

- Sign-in: use the same username and password as the Broadcaster's web interface, sent as HTTP basic authentication. No separate API account is needed.
- POST to **?add\_stream\_scte.json?stream=\<stream-id>\&scte=\<base64-scte35-payload>**

## Good to know

- SCTE-35 injection must be turned on for the input, with an SCTE-35 PID. Otherwise the API call fails.
- The message is inserted on the input, before the stream is passed on, so every output and recording of that input carries it.
- SCTE-35 settings, including the insertion PID, are saved in the input's configuration. If that configuration is lost or replaced, set them again.
- Each API call inserts once, into the live stream. Inserted messages are not saved in the configuration.
