The Streaming API v2 lets you build your own client app (TV, mobile or web) for an Xtream AI panel: sign in a subscriber line, browse its catalog, read its EPG and play its channels, movies and episodes.
It is not the Xtream Codes API. For players that speak Xtream Codes
(IPTV Smarters, TiviMate, …) use the panel's player_api.php instead.
Machine-readable contract: openapi.yaml.
- 1. How it fits together
- 2. Quickstart: run a gateway
- 3. Conventions
- 4. Errors
- 5. Sessions
- 6. Endpoints
- 7. Playback
- 8. Checklist for a well-behaved app
1. How it fits together
your app ──HTTPS──► your gateway ──HTTPS──► panel (API)
│
└──────────── playback, direct ────────► streaming nodes
- Your app never talks to the panel. It talks to a gateway, a small
reverse proxy that you run. The panel only answers gateways registered on
the API key; any other origin gets a plain
404page, as if the API did not exist. - The API key lives in the gateway, never in the app. The gateway adds it to every request.
- Playback does not go through the gateway. The app plays straight from the panel's streaming nodes, with short-lived tokens it builds itself (section 7).
What you need from the reseller who gives you access:
- An API key (
X-API-KEY), created in the panel. - Your gateway's public IP (or CIDR) registered on that key ("Authorized gateways").
- The panel's API base URL, e.g.
https://panel.example.com/api/v2/.
A key without global access only serves the reseller's own lines.