Lightstream DestinationService API

The Destination Service operates on Project Destinations. Destinations designate where a Broadcast associated with a Project is distributed downstream.

Operations 4

POST /collection/{collectionId}/project/{projectId}/destination Create Destination #
GET /collection/{collectionId}/project/{projectId}/destination/{destinationId} Get Destination #
DELETE /collection/{collectionId}/project/{projectId}/destination/{destinationId} Delete Destination #
PATCH /collection/{collectionId}/project/{projectId}/destination/{destinationId} Update 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/lightstream-destinationservice-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

lightstream-destinationservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Event AuthenticationService Destination Service API
  version: '2.0'
  description: The Authentication Service provides token services for clients
servers:
- url: https://live.api.stream/event/v2
tags:
- name: DestinationService
  description: 'The Destination Service operates on Project Destinations. Destinations

    designate where a Broadcast associated with a Project is distributed

    downstream.'
paths:
  /collection/{collectionId}/project/{projectId}/destination:
    post:
      summary: Create Destination
      description: Create a new Destination
      operationId: DestinationService_CreateDestination
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21CreateDestinationResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project which owns the destination
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project which will own this destination
        in: path
        required: true
        schema:
          type: string
      tags:
      - DestinationService
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                metadata:
                  type: object
                  example:
                    createdBy: Eddie Current
                  title: arbitrary metadata associated with this destination
                address:
                  $ref: '#/components/schemas/v21DestinationAddress'
                  title: destination address (select one)
                enabled:
                  type: boolean
                  example: true
                  default: 'true'
                  title: enable or disable this destination
                timeout:
                  type: integer
                  format: int64
                  example: 5000
                  default: '5000'
                  title: timeout (in milliseconds) to wait before resetting a connection
                  maximum: 30000
                  minimum: 100
        required: true
  /collection/{collectionId}/project/{projectId}/destination/{destinationId}:
    get:
      summary: Get Destination
      description: Get an existing Destination.
      operationId: DestinationService_GetDestination
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21GetDestinationResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project which owns the destination
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project which owns the destination
        in: path
        required: true
        schema:
          type: string
      - name: destinationId
        description: destination id
        in: path
        required: true
        schema:
          type: string
      tags:
      - DestinationService
    delete:
      summary: Delete Destination
      description: Delete a destination
      operationId: DestinationService_DeleteDestination
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21DeleteDestinationResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project which owns the destination
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project which owns the destination
        in: path
        required: true
        schema:
          type: string
      - name: destinationId
        description: destination id
        in: path
        required: true
        schema:
          type: string
      - name: force
        description: forcibly remove destination if enabled.
        in: query
        required: false
        schema:
          type: boolean
          default: 'false'
      tags:
      - DestinationService
    patch:
      summary: Update Destination
      description: Update a destination
      operationId: DestinationService_UpdateDestination
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21UpdateDestinationResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project which owns the destination
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project which owns the destination
        in: path
        required: true
        schema:
          type: string
      - name: destinationId
        description: destination id
        in: path
        required: true
        schema:
          type: string
      tags:
      - DestinationService
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                updateMask:
                  type: string
                  example: metadata, address.rtmpPush.url
                  title: fields to update (default updates any non-null field)
                  required:
                  - update_mask
                metadata:
                  type: object
                  example:
                    createdBy: Eddie Current
                  title: arbitrary metadata associated with this destination
                address:
                  $ref: '#/components/schemas/v21DestinationAddress'
                  title: destination address (select one)
                enabled:
                  type: boolean
                  example: true
                  default: 'true'
                  title: enable or disable this destination
                timeout:
                  type: integer
                  format: int64
                  example: 5000
                  title: timeout (in milliseconds) to wait before resetting a connection
                  maximum: 30000
                  minimum: 100
              required:
              - updateMask
        required: true
components:
  schemas:
    v21DestinationAddress:
      type: object
      properties:
        rtmpPush:
          $ref: '#/components/schemas/v21DestinationRtmpPushAddress'
          title: rtmp push addressing
        agora:
          $ref: '#/components/schemas/v21DestinationAgoraPushAddress'
          title: Agora addressing
        s3Storage:
          $ref: '#/components/schemas/v21S3StorageAddress'
          title: s3 storage addressing
      title: destination address (select one)
    v21ObjectStoragePackaging:
      type: object
      properties:
        hls:
          $ref: '#/components/schemas/v21HlsPackaging'
          default: '{}'
          title: hls format
      title: packaging options for object storage
    v21HlsLifecycleLive:
      type: object
      properties:
        playlistCount:
          type: integer
          format: int32
          example: 5
          default: '5'
          title: number of entries to advertise in playlist file
          minimum: 2
        fileCount:
          type: integer
          format: int32
          example: 10
          default: '10'
          title: number of files to keep on disk
          minimum: 4
      title: live hls lifecycle management
    v21UpdateDestinationResponse:
      type: object
      properties:
        destination:
          $ref: '#/components/schemas/v21Destination'
          title: updated destination
        broadcastUpdated:
          type: boolean
          example: true
          title: indicates whether the broadcast was updated as a function of this request
    v21DestinationAgoraPushAddress:
      type: object
      properties:
        appId:
          type: string
          title: Agora app id
          required:
          - app_id
        channelId:
          type: string
          title: Agora channel id
          required:
          - channel_id
        userId:
          type: string
          title: Agora user id
          required:
          - user_id
      title: Agora push addressing
      required:
      - appId
      - channelId
      - userId
    v21HlsLifecycle:
      type: object
      properties:
        vod:
          $ref: '#/components/schemas/v21HlsLifecycleVod'
          default: '{}'
          title: lifecycle of vod
        live:
          $ref: '#/components/schemas/v21HlsLifecycleLive'
          title: lifecycle of live
      title: hls lifecycle management
    v21HlsLifecycleVod:
      type: object
      properties:
        maxDuration:
          type: integer
          format: int32
          example: 0
          default: '0'
          title: max duration of the recording in ms (0 is indefinite)
      title: vod hls lifecycle management
    v21DeleteDestinationResponse:
      type: object
      properties:
        broadcastUpdated:
          type: boolean
          example: true
          title: indicates whether the broadcast was updated as a function of this request
    protobufAny:
      type: object
      properties:
        '@type':
          type: string
      additionalProperties: {}
    v21S3ACL:
      type: string
      enum:
      - S3ACL_PRIVATE
      - S3ACL_PUBLIC_READ
      - S3ACL_PUBLIC_READ_WRITE
      - S3ACL_AUTHENTICATED_READ
      - S3ACL_BUCKET_OWNER_READ
      - S3ACL_BUCKET_OWNER_FULL_CONTROL
    rpcStatus:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/protobufAny'
    v21Destination:
      type: object
      properties:
        collectionId:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: collection which owns the project which owns the destination
        projectId:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: project which owns the destination
        destinationId:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: destination id
        metadata:
          type: object
          example:
            createdBy: Eddie Current
          title: arbitrary metadata associated with this destination
        enabled:
          type: boolean
          example: true
          default: 'true'
          title: is output stream enabled?
        address:
          $ref: '#/components/schemas/v21DestinationAddress'
          title: address of the destination
        timeout:
          type: integer
          format: int64
          example: 5000
          default: '5000'
          title: timeout (ms) to wait before resetting a connection
      title: streaming destination of project
    v21GetDestinationResponse:
      type: object
      properties:
        destination:
          $ref: '#/components/schemas/v21Destination'
          title: the requested destination
    v21CreateDestinationResponse:
      type: object
      properties:
        destination:
          $ref: '#/components/schemas/v21Destination'
          title: the newly created destination
    v21HlsPackaging:
      type: object
      properties:
        lifecycle:
          $ref: '#/components/schemas/v21HlsLifecycle'
          default: '{}'
          title: lifecycle of hls segments
        segmentDuration:
          type: integer
          format: int32
          example: 2000
          default: '2000'
          title: duration of segments in ms
          maximum: 18000
          minimum: 2000
      title: hls packaging options
    v21DestinationRtmpPushAddress:
      type: object
      properties:
        key:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: rtmp stream key
        url:
          type: string
          example: rtmp://ingest.fakecompany.com
          title: rtmp destination url
          required:
          - url
      title: rtmp push destination address
      required:
      - url
    v21S3StorageAddress:
      type: object
      properties:
        region:
          type: string
          example: us-west-1
          title: cloud region
          required:
          - region
        bucket:
          type: string
          example: company
          title: cloud bucket
          required:
          - bucket
        prefix:
          type: string
          example: app
          title: cloud bucket prefix
        accessKey:
          type: string
          title: cloud access key
          required:
          - access_key
        secretKey:
          type: string
          title: cloud secret key
          required:
          - secret_key
        token:
          type: string
          title: token based auth
        tokenDuration:
          type: integer
          format: int32
          title: token duration in ms
        acl:
          $ref: '#/components/schemas/v21S3ACL'
          example: S3ACL_PUBLIC_READ
          title: access control list
        endpoint:
          type: string
          example: fra1.digitaloceanspaces.com
          title: endpoint for non aws s3 destinations
        packaging:
          $ref: '#/components/schemas/v21ObjectStoragePackaging'
          default: '{}'
          title: the format of the files to be written
      required:
      - region
      - bucket
      - accessKey
      - secretKey