Skip to content
Start here

Create a new output, connected to a live input

client.stream.liveInputs.outputs.create(stringliveInputIdentifier, OutputCreateParams { account_id, streamKey, url, enabled } params, RequestOptionsoptions?): Output { enabled, streamKey, uid, url }
POST/accounts/{account_id}/stream/live_inputs/{live_input_identifier}/outputs

Creates a new output that can be used to simulcast or restream live video to other RTMP or SRT destinations. Outputs are always linked to a specific live input — one live input can have many outputs.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
ParametersExpand Collapse
liveInputIdentifier: string

A unique identifier for a live input.

maxLength32
params: OutputCreateParams { account_id, streamKey, url, enabled }
account_id: string

Path param: Identifier.

maxLength32
streamKey: string

Body param: The streamKey used to authenticate against an output’s target.

url: string

Body param: The URL an output uses to restream.

enabled?: boolean

Body param: When enabled, live video streamed to the associated live input will be sent to the output URL. When disabled, live video will not be sent to the output URL, even when streaming to the associated live input. Use this to control precisely when you start and stop simulcasting to specific destinations like YouTube and Twitch.

ReturnsExpand Collapse
Output { enabled, streamKey, uid, url }
enabled?: boolean

When enabled, live video streamed to the associated live input will be sent to the output URL. When disabled, live video will not be sent to the output URL, even when streaming to the associated live input. Use this to control precisely when you start and stop simulcasting to specific destinations like YouTube and Twitch.

streamKey?: string

The streamKey used to authenticate against an output’s target.

uid?: string

A unique identifier for the output.

maxLength32
url?: string

The URL an output uses to restream.

Create a new output, connected to a live input

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const output = await client.stream.liveInputs.outputs.create('66be4bf738797e01e1fca35a7bdecdcd', {
  account_id: '023e105f4ecef8ad9ca31a8372d0c353',
  streamKey: 'uzya-f19y-g2g9-a2ee-51j2',
  url: 'rtmp://a.rtmp.youtube.com/live2',
});

console.log(output.uid);
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "enabled": true,
    "streamKey": "uzya-f19y-g2g9-a2ee-51j2",
    "uid": "baea4d9c515887b80289d5c33cf01145",
    "url": "rtmp://a.rtmp.youtube.com/live2"
  }
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "enabled": true,
    "streamKey": "uzya-f19y-g2g9-a2ee-51j2",
    "uid": "baea4d9c515887b80289d5c33cf01145",
    "url": "rtmp://a.rtmp.youtube.com/live2"
  }
}