This is api example code taken from xtreamcodes forum before it closed down
you can use the following examples to create your own php script to manage / edit your users and streams with out needing to login directly to the v2 admin panel all you need to know is your v2 username and password
==============================================================
Creating New Line
To create a New line, we will call the following URL.
The above URL, accepts the POST action, and to create a new line we will have to specify some arguments in an array called user_data
Example Code:
If you leave the username and/or password elements empty, the system will generate random characters for these 2 fields. In addition, leaving any field empty, api will use the default value for this field according to SQL Database. So theoretically, you can make a line with just Calling the Above URL, without any parameter, however the created user, wont have any bouquets inside.
You can call any other element that is in the database like
The API will return a simple json encoded string that upon decoding will contain the element result which returns true/false.
Example(API Success)
The API returned as the username/password of the NEW line, as well as the ID so we can use it wherever we want.
Example(API Failed)
To procedure to edit a line is very similar to the above. The URL we will call this time is
REQUIRED PARAMETERS
In the above example, we will edit the max_connections, is_restreamer and exp_date for our line with username test_username, and password test_password that already exists in our database.
Example(API Success)
Example(API Failed)
View Line Information
With this API call, we will get all the information available about our line including the active connections.
The URL we will call this time is
REQUIRED PARAMETERS
Example Code:
Create/Edit & View Information on MAG Devices
The procedure is almost the same as creating/editing & view info on a user line. The only difference is that instead of calling the user action, we will the stb action. Of course instead of username/password we will just have the mac parameter.
Example API Call To Create New MAG
REQUIRED PARAMETERS
Example(API Success)
Example(API Failed)
Example API Call To Edit a MAG Device
REQUIRED PARAMETERS
Example(API Success)
Example(API Failed)
View Information MAG Device
REQUIRED PARAMETERS
Example Code:
API has been updated and few bugs regarding bouquet handling are now fixed.
Also, here are few other requests you can make to the API
API has been updated to add support for registered users credit handling
you can use the following examples to create your own php script to manage / edit your users and streams with out needing to login directly to the v2 admin panel all you need to know is your v2 username and password
==============================================================
Creating New Line
To create a New line, we will call the following URL.
PHP:
http://dns:port/api.php?action=user&sub=create
Example Code:
PHP:
<?php
$panel_url = 'http://DNS:PORT/';
$username = 'test_username';
$password = 'test_password';
$max_connections = 1;
$reseller = 1;
$bouquet_ids = array(
1,
2,
3 );
$expire_date = strtotime( "+1 month" );
###############################################################################
$post_data = array( 'user_data' => array(
'username' => $username,
'password' => $password,
'max_connections' => $max_connections,
'is_restreamer' => $reseller,
'exp_date' => $expire_date,
'bouquet' => json_encode( $bouquet_ids ) ) );
$opts = array( 'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query( $post_data ) ) );
$context = stream_context_create( $opts );
$api_result = json_decode( file_get_contents( $panel_url . "api.php?action=user&sub=create", false, $context ) );
?>
If you leave the username and/or password elements empty, the system will generate random characters for these 2 fields. In addition, leaving any field empty, api will use the default value for this field according to SQL Database. So theoretically, you can make a line with just Calling the Above URL, without any parameter, however the created user, wont have any bouquets inside.
You can call any other element that is in the database like
- member_id
- admin_enabled
- enabled
- allowed_ips
- allowed_ua
- force_server_id
- is_isplock
- admin_notes
- and so on...
The API will return a simple json encoded string that upon decoding will contain the element result which returns true/false.
Example(API Success)
PHP:
{"result":true,"created_id":14838,"username":"d4PSc5uCqF","password":"2ZiuRRZk4b"}
Example(API Failed)
PHP:
{"result":false,"error":"EXISTS"}
PHP:
{"result":false,"error":"PARAMETER ERROR"}
- EXISTS
The Username you specified already exists in the database - PARAMETER ERROR
You wrote invalid characters in your user_data array
To procedure to edit a line is very similar to the above. The URL we will call this time is
PHP:
http://dns:port/api.php?action=user&sub=edit
- username
- password
- user_data array
PHP:
<?php
$panel_url = 'http://DNS:PORT/';
$username = 'test_username';
$password = 'test_password';
$max_connections = 10;
$reseller = 1;
$expire_date = strtotime( "+1 month" ); //from the time now, not from line's expire date.
###############################################################################
$post_data = array(
'username' => $username,
'password' => $password,
'user_data' => array(
'max_connections' => $max_connections,
'is_restreamer' => $reseller,
'exp_date' => $expire_date ) );
$opts = array( 'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query( $post_data ) ) );
$context = stream_context_create( $opts );
$api_result = json_decode( file_get_contents( $panel_url . "api.php?action=user&sub=edit", false, $context ) );
?>
In the above example, we will edit the max_connections, is_restreamer and exp_date for our line with username test_username, and password test_password that already exists in our database.
Example(API Success)
PHP:
{"result":true}
Example(API Failed)
PHP:
{"result":false,"error":"NOT EXISTS"}
{"result":false,"error":"PARAMETER ERROR"}
{"result":false,"error":"PARAMETER ERROR (user\/pass)"}
- NOT EXISTS
The Username / Password you specified are not exists in the database - PARAMETER ERROR
You wrote invalid characters in your user_data array - PARAMETER ERROR (user/pass)
The Username OR/AND Password elements are missing
View Line Information
With this API call, we will get all the information available about our line including the active connections.
The URL we will call this time is
PHP:
http://dns:port/api.php?action=user&sub=info
REQUIRED PARAMETERS
- username
- password
Example Code:
PHP:
$panel_url = 'http://DNS:PORT/';
$username = "username";
$password = "passwrd";
###############################################################################
$post_data = array( 'username' => $username, 'password' => $password );
$opts = array( 'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query( $post_data ) ) );
$context = stream_context_create( $opts );
$api_result = json_decode( file_get_contents( $panel_url . "api.php?action=user&sub=info", false, $context ), true );
if ( $api_result['result'] )
{
echo "Active Connections (Now): " . $api_result['user_info']['active_cons'];
echo "\nCurrent Expire Date: " . (( empty( $api_result['user_info']['exp_date'] ) ) ? 'Unlimited' : strtotime( $api_result['user_info']['exp_date'] ));
echo "\nMax Connections: " . $api_result['user_info']['max_connections'];
echo "\nAvailable Channel IDs: " . implode( ',', $api_result['user_info']['channel_ids'] );
}
else
echo 'FAILED';
Create/Edit & View Information on MAG Devices
The procedure is almost the same as creating/editing & view info on a user line. The only difference is that instead of calling the user action, we will the stb action. Of course instead of username/password we will just have the mac parameter.
Example API Call To Create New MAG
PHP:
http://dns:port/api.php?action=stb&sub=create
- user_data[mac]
PHP:
<?php
$panel_url = 'http://DNS:PORT/';
$mac = '00:1A:79:79:79:79';
$bouquet_ids = array(
1,
2,
3 );
$expire_date = strtotime( "+1 month" );
###############################################################################
$post_data = array( 'user_data' => array(
'mac' => $mac,
'exp_date' => $expire_date,
'bouquet' => json_encode( $bouquet_ids ) ) );
$opts = array( 'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query( $post_data ) ) );
$context = stream_context_create( $opts );
$api_result = json_decode( file_get_contents( $panel_url . "api.php?action=stb&sub=create", false, $context ) );
print_r($api_result);
?>
Example(API Success)
PHP:
{"result":true}
Example(API Failed)
PHP:
{"result":false,"error":"NOT EXISTS"}
{"result":false,"error":"PARAMETER ERROR"}
{"result":false,"error":"PARAMETER ERROR (mac)"}
- EXISTS
The MAC already exists in the database - PARAMETER ERROR
You wrote invalid characters in your user_data array - PARAMETER ERROR (mac)
The MAC Parameter was missing
Example API Call To Edit a MAG Device
PHP:
http://dns:port/api.php?action=stb&sub=edit
- mac
PHP:
<?php
$panel_url = 'http://DNS:PORT/';
$mac = '00:1A:79:79:79:79';
$bouquet_ids = array(
1,
2,
3 );
$expire_date = strtotime( "+1 month" );
###############################################################################
$post_data = array( 'mac' => $mac, 'user_data' => array( 'exp_date' => $expire_date, 'bouquet' => json_encode( $bouquet_ids ) ) );
$opts = array( 'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query( $post_data ) ) );
$context = stream_context_create( $opts );
$api_result = json_decode( file_get_contents( $panel_url . "api.php?action=stb&sub=edit", false, $context ) );
?>
Example(API Success)
PHP:
{"result":true}
Example(API Failed)
PHP:
{"result":false}
{"result":false,"error":"PARAMETER ERROR"}
{"result":false,"error":"PARAMETER ERROR (mac)"}
- no error
The updated information, are the same as in the database, so no action taken. - PARAMETER ERROR
You wrote invalid characters in your user_data array - PARAMETER ERROR (mac)
The MAC Parameter was missing
View Information MAG Device
PHP:
http://dns:port/api.php?action=stb&sub=info
REQUIRED PARAMETERS
- mac
Example Code:
PHP:
<?php
$panel_url = 'http://DNS:PORT/';
$mac = '00:1A:79:79:79:79';
###############################################################################
$post_data = array( 'mac' => $mac);
$opts = array( 'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query( $post_data ) ) );
$context = stream_context_create( $opts );
$api_result = json_decode( file_get_contents( $panel_url . "api.php?action=stb&sub=info", false, $context ), true );
if ( $api_result['result'] )
{
echo "Active Connections (Now): " . $api_result['user_info']['active_cons'];
echo "\nCurrent Expire Date: " . ( ( empty( $api_result['user_info']['exp_date'] ) ) ? 'Unlimited' : strtotime( $api_result['user_info']['exp_date'] ) );
echo "\nMax Connections: " . $api_result['user_info']['max_connections'];
echo "\nAvailable Channel IDs: " . implode( ',', $api_result['user_info']['channel_ids'] );
}
else
echo 'FAILED';
?>
API has been updated and few bugs regarding bouquet handling are now fixed.
Also, here are few other requests you can make to the API
- View Server List
Perform this request, to view all your servers, main & load balancers including their status
http://your_dns: port/api.php?action=server&sub=list - View Online Streams
Perform this request, to view only the online Live Streams
http://your_dns: port/api.php?action=stream&sub=online - View Offline Streams
Perform this request, to view only the Offline Live Streams
http://your_dns: port/api.php?action=server&sub=offline - Start/Restart A Stream
Perform this request, to start or restart a Live Stream. The last argument is an array in which you can specify the stream ids. It works with POST method as well.
http://your_dns: port/api.php?action=stream&sub=start&stream_ids[]=1 - Stop A Stream
Perform this request, to stop a Live Stream. The last argument is an array in which you can specify the stream ids. It works with POST method as well.
http://your_dns: port/api.php?action=streamsub=stop&stream_ids[]=1 - Start VOD Encoding (Applies for series episodes as well )
- Perform this request, to start a VOD Encoding process. The last argument is an array in which you can specify the stream ids. It works with POST method as well.
http://your_dns: port/api.php?action=vod&sub=start&stream_ids[]=1 - Stop A VOD Encoding
Perform this request, to stop a VOD Encoding. The last argument is an array in which you can specify the stream ids. It works with POST method as well.
http://your_dns: port/api.php?action=vod=stop&stream_ids[]=1
API has been updated to add support for registered users credit handling
- View Registered Users list
Perform this request, to view all your registered users along with their email, username, credits, member group etc
http://your_dns: port/api.php?action=reg_user&sub=list - Add/Remove Credits
Perform this request, to add or remove credits from a user
http://your_dns: port/api.php?action=reg_user&sub=credits&amount=X&id=X
The amount can be either positive or negative number. If you are trying to remove an amount of credits higher than the current credits of the user you will receive an error message ( NOT ENOUGH CREDITS )
The id, is the id of the user. You can also perform the same request using username parameter.