StreamYard Broadcasts API

Manage live broadcasts and recordings. Broadcasts represent a streaming or recording session in the StreamYard studio.

Operations 8

GET /broadcasts List Broadcasts #
POST /broadcasts Create Broadcast #
GET /broadcasts/{broadcastId} Get Broadcast #
PATCH /broadcasts/{broadcastId} Update Broadcast #
DELETE /broadcasts/{broadcastId} Delete Broadcast #
GET /broadcasts/{broadcastId}/destinations List Broadcast Destinations #
POST /broadcasts/{broadcastId}/destinations Add Broadcast Destination #
DELETE /broadcasts/{broadcastId}/destinations/{destinationId} Remove Broadcast Destination #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/streamyard-broadcasts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

streamyard-broadcasts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: StreamYard Broadcasts API
  description: The StreamYard API provides programmatic access to StreamYard's professional live streaming and recording studio. Manage broadcasts, destinations (YouTube, Facebook, LinkedIn, Twitch, etc.), recordings, and guest invitations. StreamYard enables simultaneous multi-platform streaming with a browser-based studio. OAuth 2.0 is used for authentication.
  version: 1.0.0
  contact:
    name: StreamYard Developer Support
    url: https://developers.streamyard.com
  termsOfService: https://streamyard.com/resources/terms
servers:
- url: https://api.streamyard.com
  description: StreamYard API
security:
- streamyardBearerAuth: []
tags:
- name: Broadcasts
  description: Manage live broadcasts and recordings. Broadcasts represent a streaming or recording session in the StreamYard studio.
paths:
  /broadcasts:
    get:
      operationId: listBroadcasts
      summary: List Broadcasts
      description: Returns a list of broadcasts in the authenticated account, sorted by creation date (newest first). Includes both live and completed broadcasts.
      tags:
      - Broadcasts
      parameters:
      - name: page
        in: query
        description: Page number for pagination
        schema:
          type: integer
          default: 1
      - name: perPage
        in: query
        description: Number of broadcasts per page (max 100)
        schema:
          type: integer
          default: 10
          maximum: 100
      responses:
        '200':
          description: A list of broadcasts
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Broadcast'
                  total:
                    type: integer
                    description: Total number of broadcasts
                  page:
                    type: integer
                  perPage:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createBroadcast
      summary: Create Broadcast
      description: Creates a new broadcast in the StreamYard studio. A broadcast must be created before going live or recording. You can specify the title, scheduled time, and whether it is a live stream or recording.
      tags:
      - Broadcasts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BroadcastCreateRequest'
      responses:
        '201':
          description: Broadcast created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Broadcast'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /broadcasts/{broadcastId}:
    get:
      operationId: getBroadcast
      summary: Get Broadcast
      description: Returns the details of a specific broadcast including its status, destinations, and recording URLs when available.
      tags:
      - Broadcasts
      parameters:
      - $ref: '#/components/parameters/BroadcastId'
      responses:
        '200':
          description: The broadcast details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Broadcast'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateBroadcast
      summary: Update Broadcast
      description: Updates a broadcast's title, description, or scheduled time. Only broadcasts that have not started can be updated.
      tags:
      - Broadcasts
      parameters:
      - $ref: '#/components/parameters/BroadcastId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BroadcastUpdateRequest'
      responses:
        '200':
          description: Broadcast updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Broadcast'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteBroadcast
      summary: Delete Broadcast
      description: Deletes a broadcast. Only broadcasts that have not started or have completed can be deleted.
      tags:
      - Broadcasts
      parameters:
      - $ref: '#/components/parameters/BroadcastId'
      responses:
        '204':
          description: Broadcast deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /broadcasts/{broadcastId}/destinations:
    get:
      operationId: listBroadcastDestinations
      summary: List Broadcast Destinations
      description: Returns the destinations associated with a specific broadcast. Destinations are the platforms where the broadcast will be streamed.
      tags:
      - Broadcasts
      parameters:
      - $ref: '#/components/parameters/BroadcastId'
      responses:
        '200':
          description: A list of broadcast destinations
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/BroadcastDestination'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: addBroadcastDestination
      summary: Add Broadcast Destination
      description: Adds a streaming destination to a broadcast. The destination must be a previously connected platform account. Multiple destinations can be added for simultaneous multi-streaming.
      tags:
      - Broadcasts
      parameters:
      - $ref: '#/components/parameters/BroadcastId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BroadcastDestinationRequest'
      responses:
        '201':
          description: Destination added successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BroadcastDestination'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /broadcasts/{broadcastId}/destinations/{destinationId}:
    delete:
      operationId: removeBroadcastDestination
      summary: Remove Broadcast Destination
      description: Removes a destination from a broadcast. The broadcast must not be currently live.
      tags:
      - Broadcasts
      parameters:
      - $ref: '#/components/parameters/BroadcastId'
      - name: destinationId
        in: path
        required: true
        description: The identifier of the destination
        schema:
          type: string
      responses:
        '204':
          description: Destination removed successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    BroadcastDestination:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the broadcast destination
        destinationId:
          type: string
          description: The identifier of the connected destination account
        platform:
          type: string
          enum:
          - youtube
          - facebook
          - linkedin
          - twitter
          - twitch
          - rtmp
          description: The streaming platform
        title:
          type: string
          description: The title for this platform's stream
        description:
          type: string
          nullable: true
          description: The description for this platform's stream
        status:
          type: string
          enum:
          - pending
          - live
          - completed
          - error
          description: The streaming status on this destination
        viewerCount:
          type: integer
          nullable: true
          description: Current viewer count on this destination
        streamUrl:
          type: string
          format: uri
          nullable: true
          description: The URL of the stream on the destination platform
    BroadcastDestinationRequest:
      type: object
      required:
      - destinationId
      properties:
        destinationId:
          type: string
          description: The ID of the connected destination account to stream to
        title:
          type: string
          description: The title for this platform's stream (overrides broadcast title)
        description:
          type: string
          description: The description for this platform's stream
        privacy:
          type: string
          enum:
          - public
          - unlisted
          - private
          description: Privacy setting for the stream (where supported by the platform)
    BroadcastUpdateRequest:
      type: object
      properties:
        title:
          type: string
          description: Updated broadcast title
        description:
          type: string
          description: Updated broadcast description
        scheduledAt:
          type: string
          format: date-time
          description: Updated scheduled start time
    BroadcastCreateRequest:
      type: object
      required:
      - title
      properties:
        title:
          type: string
          description: The title of the broadcast
        description:
          type: string
          description: An optional description of the broadcast
        type:
          type: string
          enum:
          - live
          - recording
          default: live
          description: Whether this is a live stream or recording session
        scheduledAt:
          type: string
          format: date-time
          description: Optional scheduled start time
    Error:
      type: object
      properties:
        error:
          type: string
          description: The error code
        message:
          type: string
          description: A human-readable error message
    Broadcast:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the broadcast
        title:
          type: string
          description: The title of the broadcast
        description:
          type: string
          nullable: true
          description: The description of the broadcast
        status:
          type: string
          enum:
          - created
          - live
          - completed
          - cancelled
          description: The current status of the broadcast
        type:
          type: string
          enum:
          - live
          - recording
          description: Whether this is a live stream or a recording session
        scheduledAt:
          type: string
          format: date-time
          nullable: true
          description: The scheduled start time of the broadcast (ISO 8601)
        startedAt:
          type: string
          format: date-time
          nullable: true
          description: The actual start time of the broadcast
        endedAt:
          type: string
          format: date-time
          nullable: true
          description: The time the broadcast ended
        studioUrl:
          type: string
          format: uri
          description: The URL to join the broadcast studio
        guestUrl:
          type: string
          format: uri
          nullable: true
          description: A shareable URL for guests to join the broadcast
        createdAt:
          type: string
          format: date-time
          description: When the broadcast was created
        destinations:
          type: array
          items:
            $ref: '#/components/schemas/BroadcastDestination'
          description: The destinations associated with this broadcast
  parameters:
    BroadcastId:
      name: broadcastId
      in: path
      required: true
      description: The unique identifier of the broadcast
      schema:
        type: string
  responses:
    BadRequest:
      description: Bad request — invalid input or missing required fields
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized — missing or invalid OAuth token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Not found — the requested resource does not exist
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    streamyardBearerAuth:
      type: oauth2
      description: OAuth 2.0 Bearer token. Authenticate via StreamYard's OAuth flow at https://streamyard.com/oauth/authorize.
      flows:
        authorizationCode:
          authorizationUrl: https://streamyard.com/oauth/authorize
          tokenUrl: https://streamyard.com/oauth/token
          scopes:
            broadcasts: Create and manage broadcasts
            destinations: View and manage streaming destinations
            recordings: Access and download recordings
externalDocs:
  description: StreamYard API Documentation
  url: https://developers.streamyard.com/docs