OpenAPI Specification
openapi: 3.0.0
info:
title: Restream Channels 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: Channels
description: Channel management and configuration
paths:
/user/channel/all:
get:
operationId: listChannels
summary: List All Channels
description: Retrieve all channels associated with the authenticated user's account.
tags:
- Channels
security:
- OAuth2:
- channels.read
responses:
'200':
description: List of user channels
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Channel'
'401':
$ref: '#/components/responses/Unauthorized'
/user/channel/{id}:
get:
operationId: getChannel
summary: Get Channel
description: Retrieve a specific channel by its ID.
tags:
- Channels
security:
- OAuth2:
- channels.read
parameters:
- name: id
in: path
required: true
description: Channel identifier
schema:
type: integer
responses:
'200':
description: Channel details
content:
application/json:
schema:
$ref: '#/components/schemas/Channel'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateChannel
summary: Update Channel
description: Update settings for a specific channel.
tags:
- Channels
security:
- OAuth2:
- channels.write
parameters:
- name: id
in: path
required: true
description: Channel identifier
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChannelUpdate'
responses:
'200':
description: Updated channel
content:
application/json:
schema:
$ref: '#/components/schemas/Channel'
'401':
$ref: '#/components/responses/Unauthorized'
/user/channel/{id}/meta:
get:
operationId: getChannelMeta
summary: Get Channel Meta
description: Retrieve metadata for a specific channel.
tags:
- Channels
security:
- OAuth2:
- channels.read
parameters:
- name: id
in: path
required: true
description: Channel identifier
schema:
type: integer
responses:
'200':
description: Channel metadata
content:
application/json:
schema:
$ref: '#/components/schemas/ChannelMeta'
'401':
$ref: '#/components/responses/Unauthorized'
patch:
operationId: updateChannelMeta
summary: Update Channel Meta
description: Update metadata for a specific channel.
tags:
- Channels
security:
- OAuth2:
- channels.write
parameters:
- name: id
in: path
required: true
description: Channel identifier
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChannelMetaUpdate'
responses:
'200':
description: Updated channel metadata
content:
application/json:
schema:
$ref: '#/components/schemas/ChannelMeta'
'401':
$ref: '#/components/responses/Unauthorized'
components:
schemas:
ChannelMeta:
type: object
properties:
id:
type: integer
description: Channel identifier
title:
type: string
description: Stream title for this channel
description:
type: string
description: Stream description
tags:
type: array
items:
type: string
description: Stream tags
ChannelMetaUpdate:
type: object
properties:
title:
type: string
description: Stream title
description:
type: string
description: Stream description
tags:
type: array
items:
type: string
description: Stream tags
ChannelUpdate:
type: object
properties:
active:
type: boolean
description: Enable or disable the channel
displayName:
type: string
description: Channel display name
Channel:
type: object
properties:
id:
type: integer
description: Channel identifier
streamingPlatformId:
type: integer
description: Associated platform ID
embedUrl:
type: string
description: Embedded player URL
url:
type: string
description: Channel URL
identifier:
type: string
description: Channel identifier string
displayName:
type: string
description: Channel display name
active:
type: boolean
description: Whether the channel is active
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
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'
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