openapi: 3.0.3 info: title: Cloudflare Stream Analytics Live Inputs API description: Cloudflare Stream is the video streaming, hosting, and live-video product from Cloudflare. A single REST API uploads, stores, encodes, and delivers on-demand and live video across Cloudflare's global network, with a built-in adaptive-bitrate player, HLS/DASH manifests, live inputs over RTMPS and SRT, AI-generated and uploaded captions, signed-URL access control, per-account webhooks, and viewing analytics. All requests are scoped to an account under /accounts/{account_id}/stream and authenticate with a Bearer API token. This document grounds the core Stream endpoints; it is not exhaustive of every Cloudflare Stream operation. version: '1.0' contact: name: Cloudflare Stream url: https://developers.cloudflare.com/stream/ license: name: Cloudflare Website and Online Services Terms of Use url: https://www.cloudflare.com/terms/ servers: - url: https://api.cloudflare.com/client/v4 description: Cloudflare API v4 security: - bearerAuth: [] tags: - name: Live Inputs description: Live inputs receiving RTMPS or SRT broadcasts, plus simulcast outputs. paths: /accounts/{account_id}/stream/live_inputs: get: operationId: listLiveInputs tags: - Live Inputs summary: List live inputs description: Lists all live inputs on the account. parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: A list of live inputs. post: operationId: createLiveInput tags: - Live Inputs summary: Create a live input description: Creates a live input that can receive a broadcast over RTMPS or SRT and deliver it live and as a recording. parameters: - $ref: '#/components/parameters/AccountId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LiveInputInput' responses: '200': description: The created live input. content: application/json: schema: $ref: '#/components/schemas/LiveInputResponse' /accounts/{account_id}/stream/live_inputs/{live_input_identifier}: get: operationId: getLiveInput tags: - Live Inputs summary: Retrieve a live input description: Fetches details, connection status, and RTMPS/SRT credentials for a live input. parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/LiveInputIdentifier' responses: '200': description: The live input details. content: application/json: schema: $ref: '#/components/schemas/LiveInputResponse' put: operationId: updateLiveInput tags: - Live Inputs summary: Update a live input description: Updates the configuration of an existing live input. parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/LiveInputIdentifier' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LiveInputInput' responses: '200': description: The updated live input. delete: operationId: deleteLiveInput tags: - Live Inputs summary: Delete a live input description: Deletes a live input. parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/LiveInputIdentifier' responses: '200': description: The live input was deleted. /accounts/{account_id}/stream/live_inputs/{live_input_identifier}/outputs: get: operationId: listOutputs tags: - Live Inputs summary: List simulcast outputs description: Lists the simulcast (restreaming) outputs configured on a live input. parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/LiveInputIdentifier' responses: '200': description: A list of outputs. post: operationId: createOutput tags: - Live Inputs summary: Create a simulcast output description: Creates a simulcast output that restreams the live input to another RTMP or SRT destination, such as YouTube or Twitch. parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/LiveInputIdentifier' requestBody: required: true content: application/json: schema: type: object properties: url: type: string streamKey: type: string responses: '200': description: The created output. /accounts/{account_id}/stream/live_inputs/{live_input_identifier}/outputs/{output_identifier}: put: operationId: updateOutput tags: - Live Inputs summary: Update a simulcast output description: Enables or disables a simulcast output. parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/LiveInputIdentifier' - $ref: '#/components/parameters/OutputIdentifier' requestBody: required: true content: application/json: schema: type: object properties: enabled: type: boolean responses: '200': description: The updated output. delete: operationId: deleteOutput tags: - Live Inputs summary: Delete a simulcast output description: Deletes a simulcast output from a live input. parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/LiveInputIdentifier' - $ref: '#/components/parameters/OutputIdentifier' responses: '200': description: The output was deleted. components: parameters: AccountId: name: account_id in: path required: true description: The Cloudflare account identifier. schema: type: string OutputIdentifier: name: output_identifier in: path required: true description: The simulcast output identifier. schema: type: string LiveInputIdentifier: name: live_input_identifier in: path required: true description: The live input identifier. schema: type: string schemas: LiveInputResponse: type: object properties: result: $ref: '#/components/schemas/LiveInput' success: type: boolean LiveInput: type: object properties: uid: type: string rtmps: type: object properties: url: type: string streamKey: type: string srt: type: object properties: url: type: string streamId: type: string passphrase: type: string status: type: string LiveInputInput: type: object properties: meta: type: object recording: type: object properties: mode: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: Cloudflare API token passed in an Authorization Bearer header.