OpenAPI Specification
openapi: 3.0.0
info:
title: Restream Channels Events API
description: The Restream API enables developers to build live streaming integrations and manage multistreaming to 30+ platforms including YouTube, Twitch, Facebook, LinkedIn, and more. Supports REST endpoints for user profile, channels, stream keys, events, and real-time WebSocket updates.
version: v2
contact:
email: developers@restream.io
url: https://developers.restream.io
termsOfService: https://restream.io/terms
license:
name: Proprietary
servers:
- url: https://api.restream.io/v2
description: Restream REST API v2
tags:
- name: Events
description: Live event management and scheduling
paths:
/user/event/upcoming:
get:
operationId: listUpcomingEvents
summary: List Upcoming Events
description: Retrieve all upcoming live events for the authenticated user.
tags:
- Events
security:
- OAuth2:
- events.read
responses:
'200':
description: List of upcoming events
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Event'
'401':
$ref: '#/components/responses/Unauthorized'
/user/event/in-progress:
get:
operationId: listInProgressEvents
summary: List In-Progress Events
description: Retrieve all currently active live events for the authenticated user.
tags:
- Events
security:
- OAuth2:
- events.read
responses:
'200':
description: List of in-progress events
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Event'
'401':
$ref: '#/components/responses/Unauthorized'
/user/event/history:
get:
operationId: listEventHistory
summary: List Event History
description: Retrieve historical live events for the authenticated user.
tags:
- Events
security:
- OAuth2:
- events.read
parameters:
- name: limit
in: query
required: false
description: Maximum number of events to return
schema:
type: integer
- name: offset
in: query
required: false
description: Number of events to skip for pagination
schema:
type: integer
responses:
'200':
description: List of past events
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Event'
'401':
$ref: '#/components/responses/Unauthorized'
/user/event/{id}:
get:
operationId: getEvent
summary: Get Event
description: Retrieve details for a specific event by its ID.
tags:
- Events
security:
- OAuth2:
- events.read
parameters:
- name: id
in: path
required: true
description: Event identifier
schema:
type: string
responses:
'200':
description: Event details
content:
application/json:
schema:
$ref: '#/components/schemas/Event'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/user/event/{id}/streamKey:
get:
operationId: getEventStreamKey
summary: Get Event Stream Key
description: Retrieve the stream key for a specific event.
tags:
- Events
security:
- OAuth2:
- events.read
parameters:
- name: id
in: path
required: true
description: Event identifier
schema:
type: string
responses:
'200':
description: Event stream key
content:
application/json:
schema:
$ref: '#/components/schemas/StreamKey'
'401':
$ref: '#/components/responses/Unauthorized'
components:
responses:
Unauthorized:
description: Unauthorized - invalid or missing access token
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
StreamKey:
type: object
properties:
streamKey:
type: string
description: RTMP stream key
example: re_xxx_xxx
srtUrl:
type: string
nullable: true
description: SRT streaming URL, null if user does not have SRT access
Error:
type: object
properties:
statusCode:
type: integer
description: HTTP status code
status:
type: integer
code:
type: integer
description: Application error code
message:
type: string
description: Human-readable error message
name:
type: string
description: Error type identifier
Event:
type: object
properties:
id:
type: string
description: Event identifier
title:
type: string
description: Event title
description:
type: string
description: Event description
status:
type: string
enum:
- upcoming
- in-progress
- completed
description: Current event status
startedAt:
type: string
format: date-time
nullable: true
description: Event start time
endedAt:
type: string
format: date-time
nullable: true
description: Event end time
channels:
type: array
items:
type: integer
description: Channel IDs for this event
securitySchemes:
OAuth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://api.restream.io/oauth/authorize
tokenUrl: https://api.restream.io/oauth/token
refreshUrl: https://api.restream.io/oauth/token
scopes:
profile.read: Read user profile information
channels.read: Read channel information
channels.write: Update channel settings
stream.read: Read stream key information
events.read: Read event information
events.write: Create and update events
chat.read: Read chat messages