Livepeer multistream API

Operations related to multistream api

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/livepeer-multistream-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 email required.

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

OpenAPI Specification

livepeer-multistream-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Livepeer API Reference accessControl multistream API
  description: 'Welcome to the Livepeer API reference docs. Here you will find all the

    endpoints exposed on the standard Livepeer API, learn how to use them and

    what they return.

    '
  version: 1.0.0
servers:
- url: https://livepeer.studio/api
security:
- apiKey: []
tags:
- name: multistream
  description: Operations related to multistream api
paths:
  /multistream/target:
    get:
      operationId: getMultistreamTargets
      x-speakeasy-name-override: getAll
      summary: Retrieve Multistream Targets
      tags:
      - multistream
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/multistream-target'
                x-speakeasy-name-override: data
      x-codeSamples:
      - lang: typescript
        label: getMultistreamTargets
        source: "import { Livepeer } from \"livepeer\";\n\nconst livepeer = new Livepeer({\n  apiKey: \"<YOUR_BEARER_TOKEN_HERE>\",\n});\n\nasync function run() {\n  const result = await livepeer.multistream.getAll();\n\n  // Handle the result\n  console.log(result);\n}\n\nrun();"
      - lang: go
        label: getMultistreamTargets
        source: "package main\n\nimport(\n\tlivepeergo \"github.com/livepeer/livepeer-go\"\n\t\"context\"\n\t\"log\"\n)\n\nfunc main() {\n    s := livepeergo.New(\n        livepeergo.WithSecurity(\"<YOUR_BEARER_TOKEN_HERE>\"),\n    )\n\n    ctx := context.Background()\n    res, err := s.Multistream.GetAll(ctx)\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.Data != nil {\n        // handle response\n    }\n}"
      - lang: python
        label: getMultistreamTargets
        source: "from livepeer import Livepeer\n\ns = Livepeer(\n    api_key=\"<YOUR_BEARER_TOKEN_HERE>\",\n)\n\nres = s.multistream.get_all()\n\nif res.data is not None:\n    # handle response\n    pass"
    post:
      operationId: createMultistreamTarget
      x-speakeasy-name-override: create
      summary: Create a multistream target
      tags:
      - multistream
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/multistream-target'
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '201':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/multistream-target'
                x-speakeasy-name-override: data
      x-codeSamples:
      - lang: typescript
        label: createMultistreamTarget
        source: "import { Livepeer } from \"livepeer\";\n\nconst livepeer = new Livepeer({\n  apiKey: \"<YOUR_BEARER_TOKEN_HERE>\",\n});\n\nasync function run() {\n  const result = await livepeer.multistream.create({\n    url: \"rtmps://live.my-service.tv/channel/secretKey\",\n  });\n\n  // Handle the result\n  console.log(result);\n}\n\nrun();"
      - lang: go
        label: createMultistreamTarget
        source: "package main\n\nimport(\n\tlivepeergo \"github.com/livepeer/livepeer-go\"\n\t\"context\"\n\t\"github.com/livepeer/livepeer-go/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n    s := livepeergo.New(\n        livepeergo.WithSecurity(\"<YOUR_BEARER_TOKEN_HERE>\"),\n    )\n\n    ctx := context.Background()\n    res, err := s.Multistream.Create(ctx, components.MultistreamTargetInput{\n        URL: \"rtmps://live.my-service.tv/channel/secretKey\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.MultistreamTarget != nil {\n        // handle response\n    }\n}"
      - lang: python
        label: createMultistreamTarget
        source: "from livepeer import Livepeer\n\ns = Livepeer(\n    api_key=\"<YOUR_BEARER_TOKEN_HERE>\",\n)\n\nres = s.multistream.create(request={\n    \"url\": \"rtmps://live.my-service.tv/channel/secretKey\",\n})\n\nif res.multistream_target is not None:\n    # handle response\n    pass"
  /multistream/target/{id}:
    parameters:
    - name: id
      description: ID of the multistream target
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getMultistreamTarget
      x-speakeasy-name-override: get
      summary: Retrieve a multistream target
      tags:
      - multistream
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/multistream-target'
                x-speakeasy-name-override: data
      x-codeSamples:
      - lang: typescript
        label: getMultistreamTarget
        source: "import { Livepeer } from \"livepeer\";\n\nconst livepeer = new Livepeer({\n  apiKey: \"<YOUR_BEARER_TOKEN_HERE>\",\n});\n\nasync function run() {\n  const result = await livepeer.multistream.get(\"<id>\");\n\n  // Handle the result\n  console.log(result);\n}\n\nrun();"
      - lang: go
        label: getMultistreamTarget
        source: "package main\n\nimport(\n\tlivepeergo \"github.com/livepeer/livepeer-go\"\n\t\"context\"\n\t\"log\"\n)\n\nfunc main() {\n    s := livepeergo.New(\n        livepeergo.WithSecurity(\"<YOUR_BEARER_TOKEN_HERE>\"),\n    )\n\n    ctx := context.Background()\n    res, err := s.Multistream.Get(ctx, \"<id>\")\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.MultistreamTarget != nil {\n        // handle response\n    }\n}"
      - lang: python
        label: getMultistreamTarget
        source: "from livepeer import Livepeer\n\ns = Livepeer(\n    api_key=\"<YOUR_BEARER_TOKEN_HERE>\",\n)\n\nres = s.multistream.get(id=\"<id>\")\n\nif res.multistream_target is not None:\n    # handle response\n    pass"
    patch:
      operationId: updateMultistreamTarget
      x-speakeasy-name-override: update
      summary: Update Multistream Target
      tags:
      - multistream
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/multistream-target-patch-payload'
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '204':
          description: Success
      x-codeSamples:
      - lang: typescript
        label: updateMultistreamTarget
        source: "import { Livepeer } from \"livepeer\";\n\nconst livepeer = new Livepeer({\n  apiKey: \"<YOUR_BEARER_TOKEN_HERE>\",\n});\n\nasync function run() {\n  const result = await livepeer.multistream.update({\n    url: \"rtmps://live.my-service.tv/channel/secretKey\",\n  }, \"<id>\");\n\n  // Handle the result\n  console.log(result);\n}\n\nrun();"
      - lang: go
        label: updateMultistreamTarget
        source: "package main\n\nimport(\n\tlivepeergo \"github.com/livepeer/livepeer-go\"\n\t\"context\"\n\t\"github.com/livepeer/livepeer-go/models/components\"\n\t\"log\"\n)\n\nfunc main() {\n    s := livepeergo.New(\n        livepeergo.WithSecurity(\"<YOUR_BEARER_TOKEN_HERE>\"),\n    )\n\n    ctx := context.Background()\n    res, err := s.Multistream.Update(ctx, \"<id>\", components.MultistreamTargetPatchPayload{\n        URL: \"rtmps://live.my-service.tv/channel/secretKey\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res != nil {\n        // handle response\n    }\n}"
      - lang: python
        label: updateMultistreamTarget
        source: "from livepeer import Livepeer\n\ns = Livepeer(\n    api_key=\"<YOUR_BEARER_TOKEN_HERE>\",\n)\n\nres = s.multistream.update(id=\"<id>\", multistream_target_patch_payload={\n    \"url\": \"rtmps://live.my-service.tv/channel/secretKey\",\n})\n\nif res is not None:\n    # handle response\n    pass"
    delete:
      operationId: deleteMultistreamTarget
      x-speakeasy-name-override: delete
      summary: Delete a multistream target
      tags:
      - multistream
      description: 'Make sure to remove any references to the target on existing

        streams before actually deleting it from the API.

        '
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '204':
          description: Success
      x-codeSamples:
      - lang: typescript
        label: deleteMultistreamTarget
        source: "import { Livepeer } from \"livepeer\";\n\nconst livepeer = new Livepeer({\n  apiKey: \"<YOUR_BEARER_TOKEN_HERE>\",\n});\n\nasync function run() {\n  const result = await livepeer.multistream.delete(\"<id>\");\n\n  // Handle the result\n  console.log(result);\n}\n\nrun();"
      - lang: go
        label: deleteMultistreamTarget
        source: "package main\n\nimport(\n\tlivepeergo \"github.com/livepeer/livepeer-go\"\n\t\"context\"\n\t\"log\"\n)\n\nfunc main() {\n    s := livepeergo.New(\n        livepeergo.WithSecurity(\"<YOUR_BEARER_TOKEN_HERE>\"),\n    )\n\n    ctx := context.Background()\n    res, err := s.Multistream.Delete(ctx, \"<id>\")\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res != nil {\n        // handle response\n    }\n}"
      - lang: python
        label: deleteMultistreamTarget
        source: "from livepeer import Livepeer\n\ns = Livepeer(\n    api_key=\"<YOUR_BEARER_TOKEN_HERE>\",\n)\n\nres = s.multistream.delete(id=\"<id>\")\n\nif res is not None:\n    # handle response\n    pass"
components:
  schemas:
    multistream-target-patch-payload:
      $ref: '#/components/schemas/multistream-target'
      required: []
    multistream-target:
      type: object
      required:
      - url
      additionalProperties: false
      properties:
        id:
          type: string
          readOnly: true
          example: 09F8B46C-61A0-4254-9875-F71F4C605BC7
        name:
          type: string
        userId:
          type: string
          readOnly: true
          example: 66E2161C-7670-4D05-B71D-DA2D6979556F
          deprecated: true
        url:
          type: string
          writeOnly: true
          description: Livepeer-compatible multistream target URL (RTMP(S) or SRT)
          example: rtmps://live.my-service.tv/channel/secretKey
          format: uri
          pattern: ^(srt|rtmps?)://
        disabled:
          type: boolean
          description: 'If true then this multistream target will not be used for pushing

            even if it is configured in a stream object.

            '
        createdAt:
          type: number
          readOnly: true
          description: 'Timestamp (in milliseconds) at which multistream target object was

            created

            '
          example: 1587667174725
    error:
      type: object
      properties:
        errors:
          type: array
          minItems: 1
          items:
            type: string
            example:
            - id not provided
            - Account not found
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      bearerFormat: JWT
    HTTPBearer:
      type: http
      scheme: bearer