Skip to main content
tuliprox exposes a complete Xtream Codes-compatible API. Any player that works with an Xtream Codes provider (e.g., Tivimate, IPTV Smarters, OTT Navigator) can connect to tuliprox directly.

Player API endpoint

All three paths are equivalent:
MethodPath
GET / POST/player_api.php
GET / POST/panel_api.php
GET / POST/xtream

Authentication parameters

username
string
Username from api-proxy.yml. Required unless token is used.
password
string
Password for the user. Required unless token is used.
token
string
Token credential. Accepted in place of username + password.
action
string
The API action to perform. Omit or leave empty to retrieve account info.

Actions

Account info

Omit action or set action=get_account_info. Returns user credentials, server info, and active connection count.
curl "http://localhost:8901/player_api.php?username=alice&password=s3cr3t"

Live categories

action=get_live_categories
curl "http://localhost:8901/player_api.php?username=alice&password=s3cr3t&action=get_live_categories"
Returns a JSON array of category objects.

VOD categories

action=get_vod_categories

Series categories

action=get_series_categories

Live streams

action=get_live_streams
category_id
string
Optional. Filter streams to a specific category.
curl "http://localhost:8901/player_api.php?username=alice&password=s3cr3t&action=get_live_streams&category_id=1"

VOD streams

action=get_vod_streams
category_id
string
Optional. Filter by category.

Series

action=get_series
category_id
string
Optional. Filter by category.

VOD info

action=get_vod_info
vod_id
string
required
The virtual stream ID of the VOD item.
curl "http://localhost:8901/player_api.php?username=alice&password=s3cr3t&action=get_vod_info&vod_id=5678"

Series info

action=get_series_info
series_id
string
required
The virtual stream ID of the series.

Short EPG

action=get_short_epg
or equivalently:
action=get_epg
stream_id
string
required
The virtual stream ID of the live channel.
limit
number
Maximum number of EPG entries to return. Defaults to 4.
curl "http://localhost:8901/player_api.php?username=alice&password=s3cr3t&action=get_short_epg&stream_id=1234&limit=4"

Catchup table

action=get_catchup_table
stream_id
string
required
The virtual stream ID of the live channel.
start
string
Start time for the catchup window.
end
string
End time for the catchup window.

Stream URLs

Stream URLs are embedded in the playlist items returned by the player API. Media players follow them automatically.

Live stream (alt path)

GET /{username}/{password}/{stream_id}

Live stream

GET /live/{username}/{password}/{stream_id}

Movie / VOD

GET /movie/{username}/{password}/{stream_id}

Series episode

GET /series/{username}/{password}/{stream_id}
stream_id
string
required
The virtual stream ID, optionally with a file extension (e.g., 12345.ts, 12345.mkv).

Catchup / timeshift stream

Path-based

GET /timeshift/{username}/{password}/{duration}/{start}/{stream_id}
duration
string
required
Duration of the timeshift segment.
start
string
required
Start time of the timeshift segment (format used by the provider).

Query-based

GET  /timeshift.php?username=...&password=...&stream=...&duration=...&start=...
POST /timeshift.php

GET  /streaming/timeshift.php?username=...&password=...&stream=...&duration=...&start=...
stream
string
required
The virtual stream ID of the live channel.
duration
string
required
Duration of the timeshift window.
start
string
required
Start time of the timeshift window.

Resource endpoints

Serves associated resources (e.g., cover images, logos) for Xtream playlist items.
GET /resource/live/{username}/{password}/{stream_id}/{resource}
GET /resource/movie/{username}/{password}/{stream_id}/{resource}
GET /resource/series/{username}/{password}/{stream_id}/{resource}

Token stream (web UI)

The web UI uses a short-lived JWT access token to stream content without exposing user credentials in URLs.
GET /token/{token}/{target_id}/{cluster}/{stream_id}
token
string
required
Short-lived JWT access token issued by the web UI.
target_id
number
required
Internal numeric target ID.
cluster
string
required
One of live, movie, series, or timeshift.
stream_id
string
required
The virtual stream ID.
This endpoint is intended for the built-in web player. Do not use it in external automation as tokens expire quickly.

Build docs developers (and LLMs) love