Livepush Developers

Destinations

Create new stream destination

POST https://octopus.livepush.io/streams/{stream_id}/destinations

Base URL https://octopus.livepush.io — Core Streams & Media APIs

Creates and attaches a new streaming destination to the specified live stream.

This endpoint is used to add platforms such as YouTube, Facebook, or custom RTMP destinations to an existing live stream.

Authorization

Send a valid access token in the Authorization header.

  • bearerAuth — Bearer token (JWT)
headers.txt
Authorization: Bearer YOUR_API_TOKEN

Try it

POST https://octopus.livepush.io/streams/{stream_id}/destinations — This call changes live data on your account.

Parameters

Path parameters

  • stream_id string required
    Unique identifier of the live stream

Request body

application/json required

  • label string required
    Human-readable name for the destination
  • appName string required
    Destination platform identifier (e.g. youtube, facebook)
  • rtmpBase string required
    Base RTMP ingest URL
  • rtmpKey string required
    RTMP stream key
Example request body response.json
{
  "label": "string",
  "appName": "string",
  "rtmpBase": "string",
  "rtmpKey": "string"
}

Code samples

request.sh
curl -X POST 'https://octopus.livepush.io/streams/<stream_id>/destinations' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "label": "string",
    "appName": "string",
    "rtmpBase": "string",
    "rtmpKey": "string"
  }'
const response = await fetch('https://octopus.livepush.io/streams/<stream_id>/destinations', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "label": "string",
    "appName": "string",
    "rtmpBase": "string",
    "rtmpKey": "string"
  }),
});

if (!response.ok) {
  throw new Error(`Livepush API error ${response.status}`);
}

const data = await response.json();
import requests

headers = {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
}

payload = {
    "label": "string",
    "appName": "string",
    "rtmpBase": "string",
    "rtmpKey": "string"
}

response = requests.post('https://octopus.livepush.io/streams/<stream_id>/destinations', headers=headers, json=payload, timeout=30)
response.raise_for_status()
data = response.json()

Responses

Stream destination created successfully

application/json

  • id string
  • appName string
  • label string
  • rtmpBase string
  • oauth DestinationOAuthConfig
    • keepDefaultTitles boolean
    • titlesSource string
      originalstream-titlescustom
    • title string
    • description string
    • privacy string
    • autoStart boolean
    • autoStop boolean
    • rewind boolean
    • plannedStartTime string<date-time>
    • metadata object
    • userAppDetails object
  • updatedAt string<date-time>
  • isPinned boolean
  • isDisabled boolean
Example 200 response response.json
{
  "id": "pb_xxxxxxxxx",
  "appName": "youtube",
  "label": "string",
  "rtmpBase": "string",
  "oauth": {
    "keepDefaultTitles": false,
    "titlesSource": "original",
    "title": "string",
    "description": "string",
    "privacy": "string",
    "autoStart": false,
    "autoStop": false,
    "rewind": false,
    "plannedStartTime": "2026-01-31T09:00:00.000Z",
    "metadata": {},
    "userAppDetails": {}
  },
  "updatedAt": "2026-01-31T09:00:00.000Z",
  "isPinned": false,
  "isDisabled": false
}

Unauthorized

Stream not found