Create Event

Create a new event for the authenticated user

Info

Required scope: stream.write

Warning

This method requires authentication

Create an event that the user can stream to later. The created event has no destinations attached — use Add Event Destination to attach the channels you want to broadcast to.

The streamType field selects the event's source. Pass "studio" or "encoder" for a live event, or "file" to play a file from the user's Video Storage.

Live (encoder)
File (Video Storage)
curl -X POST \
     -H "Authorization: Bearer [access token]" \
     -H "Content-Type: application/json" \
     -d '{"streamType": "encoder", "title": "My weekly show", "description": "Episode 12", "scheduledFor": "2026-05-10T15:00:00Z"}' \
     https://api.restream.io/v2/user/events/new

Request Body

FieldTypeDescription
streamTypestring"studio", "encoder", or "file" (required). See below.
titlestringEvent title (optional).
descriptionstringEvent description (optional).
scheduledForstringWhen the event is scheduled to start, ISO 8601 date-time (optional).
fileIdstringVideo Storage file UUID to play. Required when streamType is "file"; ignored otherwise.
loopsCountnumberHow many extra times to loop the file (09). Only for "file" events; omit or 0 plays once.

streamType:

ValueDescription
studioEvent will be streamed from Restream Studio.
encoderEvent will be streamed from a third-party encoder.
fileEvent will play a file from the user's Video Storage.
Info

Looping (loopsCount greater than 0) requires the looping feature on the user's plan. Without it, set loopsCount to 0 or omit it.

Response

Success (201)
Error (Title Too Long)
Error (Insufficient Scope)
Error (Looping Not Available)
Error (Loops Count Limit)
Error (File Not Found)
{
  "id": "2527849f-f961-4b1d-8ae0-8eae4f068327"
}