---
title: Live Inputs
---

[Skip to content](#%5Ftop) 

[API Reference](https://developers.cloudflare.com/api/typescript)

[Stream](https://developers.cloudflare.com/api/typescript/resources/stream)

Copy Markdown

Open in **Claude**

Open in **ChatGPT**

Open in **Cursor**

---

**Copy Markdown**

**View as Markdown**

# Live Inputs

##### [List live inputs](https://developers.cloudflare.com/api/typescript/resources/stream/subresources/live%5Finputs/methods/list)

client.stream.liveInputs.list(LiveInputListParams { account\_id, include\_counts } params, RequestOptionsoptions?): [LiveInputListResponse](https://developers.cloudflare.com/api/typescript/resources/stream#%28resource%29%20stream.live%5Finputs%20%3E%20%28model%29%20live%5Finput%5Flist%5Fresponse%20%3E%20%28schema%29) { liveInputs, range, total } 

GET/accounts/{account\_id}/stream/live\_inputs

##### [Retrieve a live input](https://developers.cloudflare.com/api/typescript/resources/stream/subresources/live%5Finputs/methods/get)

client.stream.liveInputs.get(stringliveInputIdentifier, LiveInputGetParams { account\_id } params, RequestOptionsoptions?): [LiveInput](https://developers.cloudflare.com/api/typescript/resources/stream#%28resource%29%20stream.live%5Finputs%20%3E%20%28model%29%20live%5Finput%20%3E%20%28schema%29) { created, deleteRecordingAfterDays, enabled, 14 more } 

GET/accounts/{account\_id}/stream/live\_inputs/{live\_input\_identifier}

##### [Create a live input](https://developers.cloudflare.com/api/typescript/resources/stream/subresources/live%5Finputs/methods/create)

client.stream.liveInputs.create(LiveInputCreateParams { account\_id, defaultCreator, deleteRecordingAfterDays, 4 more } params, RequestOptionsoptions?): [LiveInput](https://developers.cloudflare.com/api/typescript/resources/stream#%28resource%29%20stream.live%5Finputs%20%3E%20%28model%29%20live%5Finput%20%3E%20%28schema%29) { created, deleteRecordingAfterDays, enabled, 14 more } 

POST/accounts/{account\_id}/stream/live\_inputs

##### [Update a live input](https://developers.cloudflare.com/api/typescript/resources/stream/subresources/live%5Finputs/methods/update)

client.stream.liveInputs.update(stringliveInputIdentifier, LiveInputUpdateParams { account\_id, defaultCreator, deleteRecordingAfterDays, 4 more } params, RequestOptionsoptions?): [LiveInput](https://developers.cloudflare.com/api/typescript/resources/stream#%28resource%29%20stream.live%5Finputs%20%3E%20%28model%29%20live%5Finput%20%3E%20%28schema%29) { created, deleteRecordingAfterDays, enabled, 14 more } 

PUT/accounts/{account\_id}/stream/live\_inputs/{live\_input\_identifier}

##### [Delete a live input](https://developers.cloudflare.com/api/typescript/resources/stream/subresources/live%5Finputs/methods/delete)

client.stream.liveInputs.delete(stringliveInputIdentifier, LiveInputDeleteParams { account\_id } params, RequestOptionsoptions?): void

DELETE/accounts/{account\_id}/stream/live\_inputs/{live\_input\_identifier}

##### ModelsExpand Collapse 

LiveInput { created, deleteRecordingAfterDays, enabled, 14 more } 

Details about a live input.

created?: string

The date and time the live input was created.

formatdate-time

deleteRecordingAfterDays?: number

Indicates the number of days after which the live inputs recordings will be deleted. When a stream completes and the recording is ready, the value is used to calculate a scheduled deletion date for that recording. Omit the field to indicate no change, or include with a `null` value to remove an existing scheduled deletion.

minimum30

enabled?: boolean

Indicates whether the live input is enabled and can accept streams.

keysRotatedAt?: string | null

The date and time the live input keys were last rotated. Omitted for live inputs that have never had their keys rotated.

formatdate-time

meta?: unknown

A user modifiable key-value store used to reference other systems of record for managing live inputs.

modified?: string

The date and time the live input was last modified.

formatdate-time

playback?: Playback { dash, hls } 

Details for playing a live input’s broadcast using the HLS or DASH manifests. URLs reference the live input ID.

dash: string

The DASH manifest URL used to play live video, referencing the live input ID.

hls: string

The HLS manifest URL used to play live video, referencing the live input ID.

preferLowLatency?: boolean

When enabled, the live stream is delivered using Low-Latency HLS (LL-HLS), reducing glass-to-glass latency for viewers at the cost of reduced player compatibility.

recording?: Recording { allowedOrigins, hideLiveViewerCount, mode, 2 more } 

Records the input to a Cloudflare Stream video. Behavior depends on the mode. In most cases, the video will initially be viewable as a live video and transition to on-demand after a condition is satisfied.

allowedOrigins?: Array<string\>

Lists the origins allowed to display videos created with this input. Enter allowed origin domains in an array and use `*` for wildcard subdomains. An empty array allows videos to be viewed on any origin.

hideLiveViewerCount?: boolean

Disables reporting the number of live viewers when this property is set to `true`.

mode?: "off" | "automatic"

Specifies the recording behavior for the live input. Set this value to `off` to prevent a recording. Set the value to `automatic` to begin a recording and transition to on-demand after Stream Live stops receiving input.

One of the following:

"off"

"automatic"

requireSignedURLs?: boolean

Indicates if a video using the live input has the `requireSignedURLs` property set. Also enforces access controls on any video recording of the livestream with the live input.

timeoutSeconds?: number

Determines the amount of time a live input configured in `automatic` mode should wait before a recording transitions from live to on-demand. `0` is recommended for most use cases and indicates the platform default should be used.

rtmps?: Rtmps { streamKey, url } 

Details for streaming to an live input using RTMPS.

streamKey?: string

The secret key to use when streaming via RTMPS to a live input.

url?: string

The RTMPS URL you provide to the broadcaster, which they stream live video to.

rtmpsPlayback?: RtmpsPlayback { streamKey, url } 

Details for playback from an live input using RTMPS.

streamKey?: string

The secret key to use for playback via RTMPS.

url?: string

The URL used to play live video over RTMPS.

srt?: Srt { passphrase, streamId, url } 

Details for streaming to a live input using SRT.

passphrase?: string

The secret key to use when streaming via SRT to a live input.

streamId?: string

The identifier of the live input to use when streaming via SRT.

url?: string

The SRT URL you provide to the broadcaster, which they stream live video to.

srtPlayback?: SrtPlayback { passphrase, streamId, url } 

Details for playback from an live input using SRT.

passphrase?: string

The secret key to use for playback via SRT.

streamId?: string

The identifier of the live input to use for playback via SRT.

url?: string

The URL used to play live video over SRT.

status?: "connected" | "reconnected" | "reconnecting" | 5 more | null

The connection status of a live input.

One of the following:

"connected"

"reconnected"

"reconnecting"

"client\_disconnect"

"ttl\_exceeded"

"failed\_to\_connect"

"failed\_to\_reconnect"

"new\_configuration\_accepted"

uid?: string

A unique identifier for a live input.

maxLength32

webRTC?: WebRtc { url } 

Details for streaming to a live input using WebRTC.

url?: string

The WebRTC URL you provide to the broadcaster, which they stream live video to.

webRTCPlayback?: WebRtcPlayback { url } 

Details for playback from a live input using WebRTC.

url?: string

The URL used to play live video over WebRTC.

LiveInputListResponse { liveInputs, range, total } 

liveInputs?: Array<LiveInput\>

created?: string

The date and time the live input was created.

formatdate-time

deleteRecordingAfterDays?: number

Indicates the number of days after which the live inputs recordings will be deleted. When a stream completes and the recording is ready, the value is used to calculate a scheduled deletion date for that recording. Omit the field to indicate no change, or include with a `null` value to remove an existing scheduled deletion.

minimum30

enabled?: boolean

Indicates whether the live input is enabled and can accept streams.

meta?: unknown

A user modifiable key-value store used to reference other systems of record for managing live inputs.

modified?: string

The date and time the live input was last modified.

formatdate-time

uid?: string

A unique identifier for a live input.

maxLength32

range?: number

The total number of remaining live inputs based on cursor position.

total?: number

The total number of live inputs that match the provided filters.

#### Live InputsOutputs

##### [List all outputs associated with a specified live input](https://developers.cloudflare.com/api/typescript/resources/stream/subresources/live%5Finputs/subresources/outputs/methods/list)

client.stream.liveInputs.outputs.list(stringliveInputIdentifier, OutputListParams { account\_id } params, RequestOptionsoptions?): SinglePage<[Output](https://developers.cloudflare.com/api/typescript/resources/stream#%28resource%29%20stream.live%5Finputs.outputs%20%3E%20%28model%29%20output%20%3E%20%28schema%29) { enabled, streamKey, uid, url } \>

GET/accounts/{account\_id}/stream/live\_inputs/{live\_input\_identifier}/outputs

##### [Create a new output, connected to a live input](https://developers.cloudflare.com/api/typescript/resources/stream/subresources/live%5Finputs/subresources/outputs/methods/create)

client.stream.liveInputs.outputs.create(stringliveInputIdentifier, OutputCreateParams { account\_id, streamKey, url, enabled } params, RequestOptionsoptions?): [Output](https://developers.cloudflare.com/api/typescript/resources/stream#%28resource%29%20stream.live%5Finputs.outputs%20%3E%20%28model%29%20output%20%3E%20%28schema%29) { enabled, streamKey, uid, url } 

POST/accounts/{account\_id}/stream/live\_inputs/{live\_input\_identifier}/outputs

##### [Update an output](https://developers.cloudflare.com/api/typescript/resources/stream/subresources/live%5Finputs/subresources/outputs/methods/update)

client.stream.liveInputs.outputs.update(stringoutputIdentifier, OutputUpdateParams { account\_id, live\_input\_identifier, enabled } params, RequestOptionsoptions?): [Output](https://developers.cloudflare.com/api/typescript/resources/stream#%28resource%29%20stream.live%5Finputs.outputs%20%3E%20%28model%29%20output%20%3E%20%28schema%29) { enabled, streamKey, uid, url } 

PUT/accounts/{account\_id}/stream/live\_inputs/{live\_input\_identifier}/outputs/{output\_identifier}

##### [Delete an output](https://developers.cloudflare.com/api/typescript/resources/stream/subresources/live%5Finputs/subresources/outputs/methods/delete)

client.stream.liveInputs.outputs.delete(stringoutputIdentifier, OutputDeleteParams { account\_id, live\_input\_identifier } params, RequestOptionsoptions?): void

DELETE/accounts/{account\_id}/stream/live\_inputs/{live\_input\_identifier}/outputs/{output\_identifier}

##### ModelsExpand Collapse 

Output { enabled, streamKey, uid, url } 

enabled?: boolean

When enabled, live video streamed to the associated live input will be sent to the output URL. When disabled, live video will not be sent to the output URL, even when streaming to the associated live input. Use this to control precisely when you start and stop simulcasting to specific destinations like YouTube and Twitch.

streamKey?: string

The streamKey used to authenticate against an output’s target.

uid?: string

A unique identifier for the output.

maxLength32

url?: string

The URL an output uses to restream.