What is Xtream Codes?
Xtream Codes is a widely used IPTV panel API. Instead of a playlist file, your provider gives you three things — a server address, a username, and a password — and your player asks that server for channels, categories, and programme data as it needs them.
How the Xtream API works
Xtream Codes began as commercial panel software that IPTV providers ran to manage subscribers and streams. The company behind it shut down in 2019, but its API had already become the de-facto standard, and provider panels still speak it today — which is why players keep an "Xtream" or "Xtream Codes" option in their add-source screens.
The API itself is plain HTTP returning JSON. A player calls the server’s player_api.php endpoint with your username and password and gets back the account status, the category tree, the channel list, and EPG data. Stream URLs are then assembled from the same three fields. Because the line-up arrives in pieces on request, big lists — tens of thousands of channels — load without shipping one giant file.
The name is used loosely today. "Xtream Codes", "Xtream API", or plain "Xtream" in a player’s add-source screen all mean the same handshake, and modern panel software reimplements the protocol rather than running the original code. The login also carries account facts a playlist can’t: the account status reports when your plan expires and how many simultaneous connections it allows.
Xtream Codes vs M3U
An M3U playlist is the flat-file alternative: one link, the whole line-up in a single fetch. Xtream is a login the player queries piece by piece, and the guide comes through the same login rather than a separate URL. Most providers offer both routes to the same channels; which one you use is mostly a question of what your player asks for.
In Twiga
An Xtream login is the other way to add your provider, and it’s the tidier one: your browser talks to the panel directly and builds the channel list on your device, then seals it — login included — with a key only you hold. What reaches our database is ciphertext that only your key can open.
When you press play, the stream routes via Twiga’s VPN exits, so the panel sees Twiga’s IP, never your home IP.
Have your three Xtream fields to hand? Add your source