X Livestream API: user-scoped source and broadcast routes removed January 1, 2027
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/sourcesand/2/users/:user_id/broadcasts, with their sub-routes. The changelog says they "will be removed on January 1, 2027, after which they return404." Until then they "keep working unchanged." - New source routes:
POST /2/sourcesandGET /2/sources, plusGET,PUTandDELETEon/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 newGET /2/sources/:id/stream_key. - New broadcast routes:
POST /2/broadcastscreates and publishes a broadcast in one call and returns it already running (201), or returns the existing live broadcast (200). Read withGET /2/broadcastsandGET /2/broadcasts/:id, end withPUT /2/broadcasts/:id/stateand{"state":"END"}, remove withDELETE /2/broadcasts/:id. - Scheduled broadcasts: the
/2/broadcasts/scheduled*routes "aren't being removed", butsource_idchanges. Send the source id assource_idon create and update. A stream key "is still accepted but deprecated, and stops working on January 1, 2027." Updates still needscheduled_broadcast_idin the body. The new routes accept only a source id; a stream key returns400. - Unchanged: authentication (OAuth 2.0 user context with
broadcast.readandbroadcast.write, or OAuth 1.0a), rate limits (450 requests per 15 minutes per user for each source route) andGET /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_typeto the problemtypeand 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/sourcesto store source ids, move to/2/sourcesand/2/broadcasts, and send the source id assource_idon scheduled broadcasts before January 1, 2027.
Primary sources
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.