Creating a stream saves it to the server’s configuration and makes its RTMP ingest URL available immediately. You can supply push targets at creation time or add them later using the targets endpoint. The stream name must be unique; attempting to create a duplicate name returns an error.

Endpoint

POST /api/streams

Request body

name
string
required
A unique name for the stream. This value becomes the final segment of the RTMP ingest URL: rtmp://your-server/live/{name}.
targets
object[]
An optional list of RTMP push targets to configure at creation time. You can omit this field or pass an empty array and add targets later.

Example request

curl -X POST http://your-server:6070/api/streams \
  -H "Content-Type: application/json" \
  -d '{"name":"my-stream","targets":[{"name":"YouTube","url":"rtmp://a.rtmp.youtube.com/live2/KEY"}]}'
With authentication enabled:
curl -u user:pass -X POST http://your-server:6070/api/streams \
  -H "Content-Type: application/json" \
  -d '{"name":"my-stream","targets":[{"name":"YouTube","url":"rtmp://a.rtmp.youtube.com/live2/KEY"}]}'

Response

Returns 200 OK with an empty body on success.
Once the stream is created, point your encoder to rtmp://your-server/live/{name} to begin ingesting video.