Skip to main content
POST
/
streams
curl --request POST \
  --url https://api.tenbyte.io/v1/livestream/streams \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Live TV Channel",
  "type": "linear",
  "mode": "video",
  "region": "sg-edge-04",
  "ingest": {
    "kind": "push",
    "protocols": [
      "rtmp",
      "srt"
    ]
  },
  "output_protocols": [
    "hls",
    "dash"
  ],
  "ladder": {
    "video": [
      {
        "name": "1080p",
        "width": 1920,
        "height": 1080,
        "fps": 25,
        "gop": 50,
        "bitrate_kbps": 3000,
        "max_bitrate_kbps": 3500,
        "buf_size_kbps": 6000,
        "codec": "h264",
        "preset": "veryfast",
        "profile": "main",
        "level": "4.0",
        "rate_control": "cbr",
        "crf": 21,
        "bframes": 0,
        "ref_frames": 1,
        "rc_lookahead": 10,
        "audio": {
          "codec": "aac",
          "channels": 2,
          "sample_rate_hz": 48000,
          "audio_bitrate_kbps": 128
        }
      },
      {
        "name": "720p",
        "width": 1280,
        "height": 720,
        "fps": 25,
        "gop": 50,
        "bitrate_kbps": 1500,
        "max_bitrate_kbps": 2000,
        "buf_size_kbps": 4000,
        "codec": "h264",
        "preset": "veryfast",
        "profile": "main",
        "level": "4.0",
        "rate_control": "cbr",
        "crf": 23,
        "bframes": 0,
        "ref_frames": 1,
        "rc_lookahead": 10,
        "audio": {
          "codec": "aac",
          "channels": 2,
          "sample_rate_hz": 48000,
          "audio_bitrate_kbps": 96
        }
      },
      {
        "name": "480p",
        "width": 854,
        "height": 480,
        "fps": 25,
        "gop": 50,
        "bitrate_kbps": 700,
        "max_bitrate_kbps": 900,
        "buf_size_kbps": 1800,
        "codec": "h264",
        "preset": "veryfast",
        "profile": "main",
        "level": "3.1",
        "rate_control": "cbr",
        "crf": 25,
        "bframes": 0,
        "ref_frames": 1,
        "rc_lookahead": 10,
        "audio": {
          "codec": "aac",
          "channels": 2,
          "sample_rate_hz": 48000,
          "audio_bitrate_kbps": 64
        }
      }
    ]
  },
  "packaging": {
    "hls": {
      "segment_format": "mpegts",
      "playlist_size": 6,
      "preserved_segments": 6,
      "low_latency": false
    },
    "dash": {
      "segment_format": "fmp4",
      "window_s": 60,
      "min_buffer_s": 4
    }
  }
}
'
{
  "success": true,
  "message": "Created Successfully",
  "data": {
    "id": "0000cf2e-ae90-46bc-b119-f5f626258434",
    "organization_id": "7f8c3a2e-1d4b-4e5a-9c6d-2b8e1f3a4d5c",
    "name": "Live TV Channel",
    "type": "linear",
    "mode": "video",
    "status": "idle",
    "region": "sg-edge-04",
    "stream_key": "9f4c8a1e-2b6d-4e3f-8a7c-1d5b9e6f3a2c",
    "ingest": {
      "kind": "push",
      "protocols": [
        "rtmp",
        "srt"
      ],
      "rtmp": "rtmp://ingest.sg.vidinfra.com:1935/live",
      "srt": "srt://ingest.sg.vidinfra.com:9710?streamid=#!::r=live/9f4c8a1e-2b6d-4e3f-8a7c-1d5b9e6f3a2c,m=publish"
    },
    "output_protocols": [
      "hls",
      "dash"
    ],
    "ladder": {
      "video": [
        {
          "name": "1080p",
          "width": 1920,
          "height": 1080,
          "fps": 25,
          "gop": 50,
          "bitrate_kbps": 3000,
          "max_bitrate_kbps": 3500,
          "buf_size_kbps": 6000,
          "crf": 21,
          "codec": "h264",
          "preset": "veryfast",
          "profile": "main",
          "level": "4.0",
          "rate_control": "cbr",
          "ref_frames": 1,
          "rc_lookahead": 10,
          "audio": {
            "codec": "aac",
            "channels": 2,
            "sample_rate_hz": 48000,
            "audio_bitrate_kbps": 128
          }
        },
        {
          "name": "720p",
          "width": 1280,
          "height": 720,
          "fps": 25,
          "gop": 50,
          "bitrate_kbps": 1500,
          "max_bitrate_kbps": 2000,
          "buf_size_kbps": 4000,
          "crf": 23,
          "codec": "h264",
          "preset": "veryfast",
          "profile": "main",
          "level": "4.0",
          "rate_control": "cbr",
          "ref_frames": 1,
          "rc_lookahead": 10,
          "audio": {
            "codec": "aac",
            "channels": 2,
            "sample_rate_hz": 48000,
            "audio_bitrate_kbps": 96
          }
        }
      ]
    },
    "packaging": {
      "hls": {
        "segment_format": "mpegts",
        "playlist_size": 6,
        "preserved_segments": 6,
        "low_latency": false
      },
      "dash": {
        "segment_format": "fmp4",
        "window_s": 60,
        "min_buffer_s": 4
      }
    },
    "playback": {
      "hls": "https://cdn.vidinfra.com/0000cf2e-ae90-46bc-b119-f5f626258434/master.m3u8",
      "dash": "https://cdn.vidinfra.com/0000cf2e-ae90-46bc-b119-f5f626258434/manifest.mpd"
    },
    "meta": {},
    "created_at": "2026-04-26T10:15:30Z",
    "updated_at": "2026-04-26T10:15:30Z"
  }
}

Authorizations

Authorization
string
header
required

RSA-signed JWT token

Body

application/json
name
string
required
Required string length: 1 - 255
type
enum<string>
required

linear (24/7) or event (up to 6h)

Available options:
linear,
event
mode
enum<string>
required
Available options:
video,
audio
region
string
required

Region code, e.g. sg-edge-04, bd-edge-01.

ingest
object
required
output_protocols
enum<string>[]
required

dash not allowed when mode=audio.

Required array length: 1 - 2 elements
Available options:
hls,
dash
ladder
object
required

Provide video[] for mode=video (max 6 renditions) or audio[] for mode=audio (max 3 renditions). Mixing is rejected.

packaging
object
required

Per-protocol settings. hls required when output_protocols includes hls. dash required when output_protocols includes dash. dash is not allowed for mode=audio.

recording
object
webhook_url
string<uri>
meta
object

Custom key-value metadata

Response

Stream created

success
boolean
Example:

true

message
string
data
object