---
title: Creating a Failover Source
slug: zen-master-api/creating-a-failover-source
docTags: 
createdAt: 2025-07-08T18:42:09.389Z
---

## Overview

Failover sources provide redundancy by combining two or more sources in a primary/backup/slate configuration.&#x20;

![Sample Configuration for Failover Source](https://api.archbee.com/api/optimize/amUtKWPrNQCS-26DKyGuI-bkvU7AR9JqMgiDoyMHfu8-20250708-192900.svg)

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:

1. Create two or more sources.
2. Create a failover source that combines the multiple sources in a primary/backup/slate (slate is optional) scheme.
3. 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](docId\:fCx7vkZ9lRRzW06WoKM-5).

## 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:

1. 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](docId:8rVjfs6-skYEDlJ8WpYf7)).
2. Create a **Manual Cluster** in ZEN Master.
3. Add a **Broadcaster** with at least **3 inputs** to ZEN Master to your manual cluster.
4. Create three basic sources from the three Broadcaster inputs.
5. 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.

::::WorkflowBlock
:::WorkflowBlockItem
Get the `id` for your Broadcaster Cluster by going to the **clusters >&#x20;**`GET`**&#x20;List all Clusters** request in Postman:

::Image[]{src="https://api.archbee.com/api/optimize/amUtKWPrNQCS-26DKyGuI-Aa0e4xIbeVJ1-6NP276ui-20250701-192722.png" size="46" width="772" height="796" position="center" alt="GET Clusters Request" showCaption="false"}
:::

:::WorkflowBlockItem
Uncheck all the request **parameters -&#x20;**&#x75;nless 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:

![Request Parameters](https://api.archbee.com/api/optimize/amUtKWPrNQCS-26DKyGuI-WcX-3TARy1rUW-bXTlI1g-20250701-193623.png)
:::

:::WorkflowBlockItem
With or without the `name` parameter, click **Send** to **submit** the request.
:::

:::WorkflowBlockItem
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:

![Searching in the Postman Response](https://api.archbee.com/api/optimize/amUtKWPrNQCS-26DKyGuI-VpUfaB8zVcdtA-c92uOgC-20250701-194007.png)
:::

:::WorkflowBlockItem
Save the cluster `id` for use in steps below.
:::

:::WorkflowBlockItem
Now do the same for **Broadcasters:&#x20;**`GET`**&#x20;broadcasters**, using the name parameter if you have the exact name, or find it in the list and save its `id` as well:

::Image[]{src="https://api.archbee.com/api/optimize/amUtKWPrNQCS-26DKyGuI-g9xub0coWy0YYPCC_NbNg-20250702-135115.png" size="58" width="1272" height="1062" position="center" alt="GET Broadcasters" showCaption="false"}
:::

:::WorkflowBlockItem
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 `POST`request and enter a `name` for the tag. You will find the `id` for the tag in the response after you send the request.

![Create tag Request Body](https://api.archbee.com/api/optimize/amUtKWPrNQCS-26DKyGuI-b4tGnXii_vJ3bjAhYGjus-20250702-163554.png)
:::

:::WorkflowBlockItem
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

::::WorkflowBlock
:::WorkflowBlockItem
Now that you have your ids, go to **Sources>failover>**`POST`**&#x20;Create Failover Source:**

::Image[]{src="https://api.archbee.com/api/optimize/amUtKWPrNQCS-26DKyGuI-KbRKSsSdW1sVzwRpeGHsZ-20250709-180844.png" size="42" width="562" height="1418" position="center" alt="Create Failover Source" showCaption="false"}
:::

:::WorkflowBlockItem
For the **Body**, use the following:

```json
{
    "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:

![Sample Request Body](https://api.archbee.com/api/optimize/amUtKWPrNQCS-26DKyGuI-APC8jxyLk_3HYO8z774A1-20250709-184950.png)
:::

:::WorkflowBlockItem
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).
:::
::::



