Skip to main content
Use the Livestream Scheduling API to create, manage, and publish scheduled broadcasts on X. The API supports one-time and recurring schedules. A scheduled broadcast is associated with an existing livestream source. It can publish automatically at its scheduled start time or wait for an explicit go-live request.

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 both broadcast.read and broadcast.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.
OAuth 2.0 is recommended for new integrations. See Authentication for details on both flows.

Base URL

Livestream source

You must create a livestream source before scheduling a broadcast. Supply the source’s rtmp_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_id is an alphanumeric ID used in endpoint paths.
  • The scheduled_broadcast_id is 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

Fields that do not apply may be omitted. Common state values include:

Endpoints

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
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_publish is true.
  • Confirm the source ID is correct.
  • Confirm RTMP video is actively reaching the source.
  • Confirm the broadcast has not already ended or been deleted.
If an update reports incomplete broadcast data, retrieve the current broadcast and resend all fields that should remain set.