Livepush Developers

Streams

Create a new stream

POST https://octopus.livepush.io/streams

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

Creates a new live stream for the authenticated user. The stream is initialized with the provided category and name and is assigned to a default processing zone.

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 — This call changes live data on your account.

Request body

application/json required

  • category string required
    Stream category
    simulcastschedule
  • name string required
    Display name for the stream
Example request body response.json
{
  "category": "simulcast",
  "name": "Luke Skywalker Apricot Fascinating"
}

Code samples

request.sh
curl -X POST 'https://octopus.livepush.io/streams' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "category": "simulcast",
    "name": "Luke Skywalker Apricot Fascinating"
  }'
const response = await fetch('https://octopus.livepush.io/streams', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "category": "simulcast",
    "name": "Luke Skywalker Apricot Fascinating"
  }),
});

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 = {
    "category": "simulcast",
    "name": "Luke Skywalker Apricot Fascinating"
}

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

Responses

Stream created successfully

application/json

  • id string
  • chatId string
  • embedId string
  • createdAt string<date-time>
  • metadata object
    • name string
    • category string
      simulcastschedule
  • config object
    • pullUrlMaxRetry integer
    • recordingTier string
  • destinations object[]
  • zone string
    Assigned processing zone ID
  • unsafeContent boolean
  • hasValidated boolean
Example 201 response response.json
{
  "id": "st_xxxxxxxxxxxxx",
  "chatId": "mc_xxxxxxxxxxxx",
  "embedId": "em_xxxxxxxxxxxx",
  "createdAt": "2026-01-31T09:00:00.000Z",
  "metadata": {
    "name": "Luke Skywalker Apricot Fascinating",
    "category": "simulcast"
  },
  "config": {
    "pullUrlMaxRetry": 5,
    "recordingTier": "rise"
  },
  "destinations": [
    {}
  ],
  "zone": "zn_xxxxxxxxx",
  "unsafeContent": true,
  "hasValidated": true
}

Invalid request payload

Unauthorized