Skip to content
Schedule Social Media

Press Esc to close.

Deprecation X Severity: medium

X Livestream API: user-scoped source and broadcast routes removed January 1, 2027

Announced5 Nov 2026
Effective1 Jan 2027
Time left49 days

What changed

X's November 5, 2026 changelog adds new Livestream API routes under /2/sources and /2/broadcasts and deprecates /2/users/:user_id/sources and /2/users/:user_id/broadcasts, which will be removed on January 1, 2027 and then return 404. The scheduled broadcast routes stay, but passing a stream key as source_id is deprecated and stops working on the same date. Authentication and rate limits are unchanged.

What it means

Tools that create, go live with or schedule X livestreams must move to the new /2/sources and /2/broadcasts routes and pass a source id instead of a stream key before January 1, 2027.

Who is affected

Streaming and scheduling tools that use the X Livestream API, including anything that creates scheduled broadcasts.

What to do by 1 Jan 2027

Migrate to /2/sources and /2/broadcasts, store each source's id from GET /2/sources, and send that id as source_id on scheduled broadcast requests.

What this means for you

Some apps let you plan a live video on X ahead of time. X is changing the addresses those apps use to set up and start a live stream. The old ones stop working on January 1, 2027. If you use an app to schedule or start X live streams, it needs an update before then, or those streams may fail.

The details

  • Deprecated, removed January 1, 2027: /2/users/:user_id/sources and /2/users/:user_id/broadcasts, with their sub-routes. The changelog says they "will be removed on January 1, 2027, after which they return 404." Until then they "keep working unchanged."
  • New source routes: POST /2/sources and GET /2/sources, plus GET, PUT and DELETE on /2/sources/:id. Each source has a non-secret id separate from its stream key. The stream key comes back only on create and from the new GET /2/sources/:id/stream_key.
  • New broadcast routes: POST /2/broadcasts creates and publishes a broadcast in one call and returns it already running (201), or returns the existing live broadcast (200). Read with GET /2/broadcasts and GET /2/broadcasts/:id, end with PUT /2/broadcasts/:id/state and {"state":"END"}, remove with DELETE /2/broadcasts/:id.
  • Scheduled broadcasts: the /2/broadcasts/scheduled* routes "aren't being removed", but source_id changes. Send the source id as source_id on create and update. A stream key "is still accepted but deprecated, and stops working on January 1, 2027." Updates still need scheduled_broadcast_id in the body. The new routes accept only a source id; a stream key returns 400.
  • Unchanged: authentication (OAuth 2.0 user context with broadcast.read and broadcast.write, or OAuth 1.0a), rate limits (450 requests per 15 minutes per user for each source route) and GET /2/region.
  • Migration: old and new routes work on the same sources and broadcasts, so you can switch one call at a time. Error handling moves from error_type to the problem type and HTTP status.

What to do next

  • Business owners: Nothing, unless you schedule X live streams with an app: ask it to confirm it supports the new X routes before January.
  • Marketers and agencies: If you plan X live streams in a tool, check with the vendor that it has moved to the new routes before January 1, 2027.
  • Developers: Call GET /2/sources to store source ids, move to /2/sources and /2/broadcasts, and send the source id as source_id on scheduled broadcasts before January 1, 2027.

Primary sources

Checked against the source 7 Nov 2026

Get an email when a new API change is added

Follow new entries with the RSS feed. Each platform also has its own feed, for example X or Meta.