> ## Documentation Index
> Fetch the complete documentation index at: https://gcore.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create broadcast

> Broadcast entity is for setting up HTML video player, which serves to combine:
- many live streams,
- advertising,
- and design in one config.

If you use other players or you get streams by direct .m3u8/.mpd links, then you will not need this entity.

  


Scheme of "broadcast" entity using:
![Scheme of "broadcast" using](https://demo-files.gvideo.io/apidocs/broadcasts.png)



## OpenAPI

````yaml /api-reference/services_documented/streaming_api.yaml post /streaming/broadcasts
openapi: 3.1.0
info:
  title: Gcore OpenAPI – Streaming API
  description: >-
    This OpenAPI is an aggregated OpenAPI specification that unifies all Gcore
    products into a single file. It covers Cloud, CDN, DNS, WAAP, DDoS
    Protection, Object Storage, Streaming, and FastEdge services.
  version: '2026-05-15T06:37:28.230198+00:00'
servers:
  - url: https://api.gcore.com
security:
  - APIKey: []
tags:
  - name: AI
    x-displayName: AI
  - name: Broadcasts
    x-displayName: Broadcasts
  - name: Directories
    x-displayName: Directories
  - name: Overlays
    x-displayName: Overlays
  - name: Players
    x-displayName: Players
  - name: Playlists
    x-displayName: Playlists
  - name: QualitySets
    x-displayName: QualitySets
  - name: Restreams
    x-displayName: Restreams
  - name: Streaming Statistics
    x-displayName: Statistics
  - name: Streams
    x-displayName: Streams
  - name: Subtitles
    x-displayName: Subtitles
  - name: Videos
    x-displayName: Videos
paths:
  /streaming/broadcasts:
    post:
      tags:
        - Broadcasts
      summary: Create broadcast
      description: >-
        Broadcast entity is for setting up HTML video player, which serves to
        combine:

        - many live streams,

        - advertising,

        - and design in one config.


        If you use other players or you get streams by direct .m3u8/.mpd links,
        then you will not need this entity.

          


        Scheme of "broadcast" entity using:

        ![Scheme of "broadcast"
        using](https://demo-files.gvideo.io/apidocs/broadcasts.png)
      operationId: post_broadcasts
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                broadcast:
                  $ref: '#/components/schemas/createBroadcast'
        required: false
      responses:
        '200':
          description: Successful
          content: {}
        '422':
          description: |-
            Possible error messages:   
             **{ "errors": { "name": [ "can't be blank" ] } }**   
             *Name* is a required parameter, so it must be specified   
             **{ "errors": { "status": [ "can't be blank" ] } }**   
             *Status* is a required parameter, so it must be specified
          content: {}
      x-codeSamples:
        - lang: Python
          source: |-
            import os
            from gcore import Gcore

            client = Gcore(
                api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
            )
            client.streaming.broadcasts.create()
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\n\t\"github.com/G-Core/gcore-go\"\n\t\"github.com/G-Core/gcore-go/option\"\n\t\"github.com/G-Core/gcore-go/streaming\"\n)\n\nfunc main() {\n\tclient := gcore.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\terr := client.Streaming.Broadcasts.New(context.TODO(), streaming.BroadcastNewParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n"
components:
  schemas:
    createBroadcast:
      required:
        - name
      type: object
      properties:
        name:
          type: string
          description: Broadcast name
        status:
          type: string
          description: |-
            Broadcast statuses:  
             **Pending** — default “Broadcast isn’t started yet” or custom message (see `pending_message` parameter) is shown, users don't see the live stream  
             **Live** — broadcast is live, and viewers can see it  
             **Paused** — “Broadcast is paused” message is shown, users don't see the live stream  
             **Finished** — “Broadcast is finished” message is shown, users don't see the live stream  
             The users' browsers start displaying the message/stream immediately after you change the broadcast status
        share_url:
          type: string
          description: >-
            Custom URL or iframe displayed in the link field when a user clicks
            on a sharing button in player. If empty, the link field and social
            network sharing is disabled
        custom_iframe_url:
          type: string
          description: >-
            Custom URL of iframe for video player to be shared via sharing
            button in player. Auto generated iframe URL is provided by default
        show_dvr_after_finish:
          type: boolean
          description: >-
            Regulates if a DVR record is shown once a broadcast is finished. Has
            two possible values:


            - **true** — record is shown

            - **false** — record isn't shown

              
            Default is false
        pending_message:
          type: string
          description: >-
            A custom message that is shown if broadcast status is set to
            pending. If empty, a default message is shown
        ad_id:
          type: integer
          description: >-
            ID of ad to be displayed in a live stream. If empty the default ad
            is show. If there is no default ad, no ad is shown
        player_id:
          type: integer
          description: >-
            ID of player to be used with a broadcast. If empty the default
            player is used
        stream_ids:
          type: array
          description: IDs of streams used in a broadcast
          items:
            type: integer
        poster:
          type: string
          description: Uploaded poster file
      example:
        name: Broadcast
        status: live
        share_url: ''
        custom_iframe_url: ''
        show_dvr_after_finish: true
        ad_id: 1
        player_id: 14
        stream_ids:
          - 10
  securitySchemes:
    APIKey:
      description: >-
        API key for authentication. Make sure to include the word `apikey`,
        followed by a single space and then your token.

        Example: `apikey 1234$abcdef`
      type: apiKey
      in: header
      name: Authorization

````