Before you begin
Access
The Livestream API, including the scheduling endpoints, is only available under the Enterprise plan. If you are interested in access, fill out the Enterprise interest form. See Getting Started for the full list of prerequisites.Authentication
All requests require user-context authentication. The authenticated user owns the broadcasts accessed through these endpoints. Supported authentication methods:- OAuth 2.0 Authorization Code Flow with PKCE. Read routes require
broadcast.read. Create, update, delete, and go-live routes require bothbroadcast.readandbroadcast.write. - OAuth 1.0a user context. List and get routes accept apps with Read, Read and write, or Read, write, and Direct Messages permissions. Create, update, delete, and go-live routes require Read and write or Read, write, and Direct Messages permissions.
Base URL
Livestream source
You must create a livestream source before scheduling a broadcast. Supply the source’srtmp_stream_key as source_id.
For a manual go-live request, begin sending RTMP video to the source before calling the live endpoint. The source must be active for the broadcast to publish.
Timestamps and IDs
- Timestamp fields use Unix epoch time in milliseconds.
- Send timestamps and numeric IDs as decimal strings to preserve precision.
- The
broadcast_idis an alphanumeric ID used in endpoint paths. - The
scheduled_broadcast_idis a numeric scheduler ID. Save both values returned by create, list, or get. Updates require the numeric ID in the request body.
Scheduled broadcast object
state values include:
Endpoints
Recommended workflow
Automatically published broadcast
1
Create or select a livestream source
2
Create a scheduled broadcast
Leave
manual_publish omitted or set to false.3
Begin sending RTMP video
Start pushing video before
scheduled_start_ms.4
The scheduler publishes the broadcast
Publishing happens automatically at the scheduled start time.
5
Poll the get endpoint
Observe state changes via Get a scheduled broadcast.
Manually published broadcast
1
Create or select a livestream source
2
Create a scheduled broadcast
Set
manual_publish: true.3
Begin sending RTMP video
4
Go live when ready
5
Poll the get endpoint
Poll until the state is
Running.Errors and troubleshooting
Common HTTP responses:
If a go-live request fails:
- Confirm
manual_publishistrue. - Confirm the source ID is correct.
- Confirm RTMP video is actively reaching the source.
- Confirm the broadcast has not already ended or been deleted.