Add Event Destination

Attach a channel as a destination to an existing event

Info

Required scope: stream.write

Warning

This method requires authentication

Attach an existing channel to an event as a destination. Create the event first with Create Event, and the channel with Add Channel. To detach it again, use Delete Event Destination.

Custom RTMP / SRT / …
YouTube
curl -X POST \
     -H "Authorization: Bearer [access token]" \
     -H "Content-Type: application/json" \
     -d '{"channelId": 12345, "streamingOrientation": "horizontal"}' \
     https://api.restream.io/v2/user/events/{eventId}/destinations

Path Parameters:

ParameterTypeDescription
eventIdstring (UUID)The UUID of the event (required)

Request Body

Common Fields

These fields apply to every platform.

FieldTypeRequiredDescription
channelIdnumberYesID of an existing channel that belongs to the authenticated user.
streamingOrientationstringNo"horizontal" or "vertical". Defaults to "horizontal".

Platform-Specific Fields

Some platforms accept extra fields alongside the common ones. Which fields are read depends on the platform of the channel passed in channelId; fields that belong to a different platform are ignored. Platforms not listed below take no platform-specific fields.

YouTube (platformId 5)

On YouTube the destination is a YouTube broadcast, so its metadata is part of the request.

FieldTypeRequiredDescription
titlestringYesBroadcast title. Must be non-empty.
descriptionstringNoBroadcast description. Empty when omitted.
privacyStatusstringNo"private", "public", or "unlisted". Defaults to "public".
videoCategoryIdstringNoVideo category ID for the broadcast.
latencyPreferencestringNo"normal", "low", or "ultraLow". Defaults to "normal", and is forced to "normal" when useEmbeddedClosedCaptions is true.
useEmbeddedClosedCaptionsbooleanNoEnable embedded closed captions. Disabled when omitted.
createEventPostbooleanNoCreate the broadcast on YouTube when the destination is added, instead of when the stream starts. Disabled when omitted.
reuseExistingBroadcastIdstringNoAttach to an existing YouTube broadcast instead of creating a new one.
enableMonetizationbooleanNoEnable monetization for the broadcast. Disabled when omitted. Requires adsFrequency.
adsFrequencystringNo"low", "medium", or "high". Required when enableMonetization is true.

Embed Player (platformId 83)

FieldTypeRequiredDescription
titlestringYesDisplay title for the player.

Supported Platforms

The channel's platform determines whether it can be attached.

PlatformplatformId
YouTube5
Custom RTMP29
Steam49
Nimo60
Naver61
Mixcloud68
Telegram72
Amazon Live74
Custom SRT78
Substack79
Mux80
Custom WHIP81
Custom HLS82
Embed Player83
Info

Channels on other platforms (Facebook, Instagram, TikTok, LinkedIn, X) are not yet supported.

Response

Success (201)
Error (Platform Not Supported)
Error (Invalid Body)
Error (Restricted Symbol)
Error (Destination Already Exists)
{
  "id": "8f3b1c2a-1d4e-4a9b-9c7d-2e5f6a7b8c9d"
}