Skip to main content
Broadcasts are ephemeral sessions tied to a source. A broadcast starts in NOT_STARTED, moves to RUNNING when published, and ends in ENDED (or another terminal state).

Broadcast states

The only transitions you trigger directly are NOT_STARTEDRUNNING (via PUBLISH) and RUNNINGENDED (via END). The remaining states are set by the platform.
Critical rule: The chosen stream source must already be actively receiving an RTMP feed (is_stream_active: true) before you call Create Broadcast — otherwise you get a 404. There is a short delay after your encoder connects before this flips true, so poll GET /2/users/:user_id/sources/:source_id until is_stream_active is true before creating the broadcast.

Endpoints

All routes accept both OAuth 2.0 and OAuth 1.0a user context authentication. The new routes (those without user_id in the path) are the recommended routes and return additional fields (for example, field selection with broadcast.fields).
The original routes are being replaced over time. Where a new route is listed, use it in place of the original; the original route is deprecated and may be removed in a future release. Additional replacement routes will be added to the table above as they become available.
To schedule a broadcast in advance — one-time or recurring, with automatic or manual publishing — see the Livestream Scheduling API.