Getting started with TRaX
TRaX is a browser-based live production platform: an OBS-style scene canvas in the browser, multi-host shows, and simultaneous output to multiple destinations (Twitch, YouTube, Kick, Facebook, and any custom RTMP endpoint). Under the studio sits a media ingest plane that accepts and serves standard streaming protocols:
| Direction | Protocols |
|---|---|
| Push a feed into TRaX | SRT, RTMP / RTMPS, WHIP (WebRTC) |
| Pull a feed out of TRaX | WHEP (WebRTC), SRT |
These protocol contracts are documented in the Reference section and are usable today with credentials provisioned for you by the TRaX team.
Building an app or integration?
Two dedicated guides cover programmatic access:
- Developer API (
/v1) — a live, versioned REST + JSON API (dev preview atapi-dev.traxstreaming.live/v1): list your studios, read sources / destinations / stream status, with an OpenAPI spec you can generate a typed client from. Authenticated with ask_live_…API key you mint yourself. - Build a client — for iOS / Android / desktop apps: the transport map (WebSocket to control a studio, WebRTC to publish and watch, REST for reads) and how a native app logs a user in with OAuth PKCE.
- Put TRaX chat on your own site — a drop-in
<trax-chat>element that shows the broadcast's merged Twitch / YouTube / Kick chat to your members, on your domain, with no TRaX account for them and no API key in the browser. - Control the mixer from your app — read a studio’s audio mix and mute or set a level on any source, through the same control path the studio’s own mixer uses. Development only today.
- Control the canvas over /v1 — read a studio’s whole canvas in one call, move a tile, pick a preset or recall a scene, and hand the arrangement back to the auto planner. Built for a phone: conditional reads, small bodies, and writes that are safe to retry. Development only today.
- Stream to a live input from your app —
create an input over
/v1, read its SRT / RTMP publish URL, and point an encoder at it. Development only today.
Media authentication
Access to the TRaX media plane is authenticated per transport. Browser publishing and playback (WHIP / WHEP) use short-lived ES256 session JWTs minted by the platform (our identity provider is OIDC-based). Publishing to an input over SRT or RTMP uses the input's stream key, carried inside the publish URL the platform hands you.
What that means for pushing and pulling media:
- You can push to an input today: create it over
/v1and read its publish URL (Stream to a live input, dev only), or copy the URL from the studio's Connection Information panel. - You can verify any TRaX-issued token yourself against our published JWKS — see Authentication & session tokens.
- A first-party app logs the user in with OAuth (PKCE) and uses that user token across the control and media planes — see Build a client.
Where to go next
- Authentication & session tokens — how every request is authorized, token claims, JWKS verification.
- SRT: the streamid contract — the most robust way to push a feed.
- RTMP / RTMPS — the most compatible way.
- WHIP / WHEP — browser-native, sub-second latency.
- Push a feed with OBS or ffmpeg — a 10-minute end-to-end win; Stream to a live input is the same thing driven from your own code.
- Bring your own storage — use your own S3-compatible bucket as a media library and record your program straight into it (cloud recording).