Skip to main content
A stream source is a persistent RTMPS ingest endpoint. Create sources once per region/encoder setup and reuse them across many broadcasts.
A per-user limit on the number of sources may apply. Create sources sparingly and reuse them across broadcasts rather than creating a new source per broadcast. Sources belong to the creating user.

Source id and stream key

Every source has two different values. Don’t mix them up: The stream key is returned only by Create a Source and by Get Source Stream Key. Every other response leaves it out.
Treat the stream key like a password. Keep it out of logs, URLs, analytics and client-side code. Use the source id everywhere else.
rtmp_url and rtmps_url are server URLs and don’t contain the stream key. In your encoder, set the server to rtmps_url and enter the stream key in its stream key field. If your encoder takes a single URL, append the key: rtmps_url + / + stream key.

Source object

Endpoints

All of these require user context authentication: OAuth 2.0 with the broadcast.read and broadcast.write scopes (recommended), or OAuth 1.0a. Responses wrap the result in data, and errors use the standard X API problem format.

Rate limits

Each /2/sources route allows 450 requests per 15 minutes per user, the same as the deprecated /2/users/:user_id/sources routes.

Errors

Deprecated routes

The original source routes under /2/users/:user_id/sources are deprecated and will be removed on January 1, 2027. On those routes the source’s id is its stream key. They keep working unchanged until then. See the migration guide.