Creating a Failover Source
Overview
Failover sources provide redundancy by combining two or more sources in a primary/backup/slate configuration.
By default, the source defined as primary will be delivered to targets. If it fails for some reason, a backup source (which could be identical to the primary or something else) will be used until the primary is a available again. Optionally, you can also have a slate source which will be used if the primary and backup sources are all unavailable.
The general process is:
- Create two or more sources.
- Create a failover source that combines the multiple sources in a primary/backup/slate (slate is optional) scheme.
- Create a pass-through channel for the failover source so that it can be assigned to targets.
All this can be done in the ZEN Master UI, but can also be done through the API. Here we will just create a failover channel. If you need to see how to create the initial sources to be combined, or the channel or the target, see Creating a Source, Channel, and Target.
Setup
To create your failover source, you will first need to complete the following steps, either in the ZEN Master UI or through the API:
- If you haven't already done so, set up Postman (either the desktop or online version) to work with the ZEN Master API (see Step 2 - Getting Started with Postman).
- Create a Manual Cluster in ZEN Master.
- Add a Broadcaster with at least 3 inputs to ZEN Master to your manual cluster.
- Create three basic sources from the three Broadcaster inputs.
- Create or choose a Tag that you will attach to your failover source.
Postman Instructions
Get IDs that will be needed to create the failover source
First we will get id values for the Broadcaster, Cluster, Tag, and sources that will be required for the API requests that we will be making.
Get the id for your Broadcaster Cluster by going to the clusters > GET List all Clusters request in Postman:

Uncheck all the request parameters - unless you know the exact name of you your cluster, in which case you can set that as the value of the name parameter to return just that object:

With or without the name parameter, click Send to submit the request.
If you used the name parameter, there should be just one object in the response. If not, you will get all the cluster objects, but you can find the one you are looking for by searching the response JSON for some portion of the cluster name:

Save the cluster id for use in steps below.
Now do the same for Broadcasters: GET broadcasters, using the name parameter if you have the exact name, or find it in the list and save its id as well:

You also need to GET or create a tag id. To do this, go to the tags section of the API and either GET a list of all tags and choose one, or use the POST request to create a new one. If you create a new one, just go to the Body of the POSTrequest and enter a name for the tag. You will find the id for the tag in the response after you send the request.

Finally, use the Sources GET List Sources request to get the id values for your 3 sources. If you know the exact name you gave each source, you can retrieve them one by one using the name parameter.
Create the failover source
Now that you have your ids, go to Sources>failover>POST Create Failover Source:

For the Body, use the following:
{
"broadcaster_cluster_id": YOUR_CLUSTER_ID,
"failoverSources": [
{
"priority": 2,
"source_id": THE_ID_OF_THE_PRIMARY_SOURCE_YOU_CREATED,
"min_bitrate": 1000
},
{
"priority": 1,
"source_id": THE_ID_OF_THE_BACKUP_SOURCE_YOU_CREATED,
"min_bitrate": 1000
},
{
"priority": 0,
"source_id": THE_ID_OF_THE_SLATE_SOURCE_YOU_CREATED,
"min_bitrate": 500
}
],
"latency": 2000,
"merge_mode": "content",
"name": "A_NAME_FOR_YOUR_FAILOVER_SOURCE",
"resource_tag_ids": [
YOUR_TAG_ID
],
"target_broadcaster_id": YOUR_BROADCASTER_ID
}You will need to replace all of the ALL_CAPS with the ids you collected in the previous section, and a unique name for your source, so that the code you paste into Postman looks something like this:

Click Send to submit the request. If you do not get a Success response, check to make sure you replaced all of the ALL_CAPS items correctly and did not put quotation marks around any id values (they are integers).