API Documentation: pushpublish.disconnect


Disconnects the PushPublish session to another service. To disconnect a session the source stream details are required and either the service type or an entry name if one was given. To disconnect all pushes set entry name to *. Optionally, if the service was stored using pushpublish.add you can disconnect a specific service by sending the push_service_id. Services:

  • Akamai HLS
  • RTMP
  • Facebook
  • Youtube
  • Periscope

Example Request (JSON)

Example Code (PHP)

	$request = array(
		'command' => 'pushpublish.disconnect',
		'timestamp' => time(),
		'cdn' => 158,
		/* disconnect using stored details */
		'push_service_id' => 1234,
		/* disconnect using entry name */
		'app' => 'jb-origin',
		'inst' => 'live',
		'stream' => 'stream_1',
		'service_name' => 'akamai',
		'entry_name' => 'session_1',
		'origin_url' => 'jb-origin.secdn.net', // optional
	    //Create request signature
    $json_request = json_encode($request);
    $sig = base64_encode(hash_hmac('sha256', $json_request,
        '8fc8c48da81e6a2a06a9556379bf798af508dc0792497c678b4c3532ba8b637f', true));
    $request['signature'] = $sig;
    $json_request = json_encode($request);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://api.scaleengine.net/stable/'); // Set the URL
    curl_setopt($ch, CURLOPT_POST, true); // Perform a POST
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // If not set, curl prints output to the browser
    curl_setopt($ch, CURLOPT_HEADER, false); // If set, curl returns headers as part of the data stream
    curl_setopt($ch, CURLOPT_POSTFIELDS, array('json' => $json_request)); //'Json' string or 'PHP' serialized return
    //If your PHP host does not have a proper SSL certificate bundle, you will need to turn off SSL Certificate Verification
    //This is dangerous, and should only be done temporarily until a proper certificate bundle can be installed
    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // Turns off verification of the SSL certificate.
    //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Turns off verification of the SSL certificate.
    $response = curl_exec($ch); //Execute the API Call
    if (!$response) {
        die('Failed to connect to ScaleEngine API');
    //Decode the response as an associative array 
    $arrResponse = json_decode($response, true); 
    if ($arrResponse) {
        //Operation completed successfully
        //TODO Add work here
    } else {
        //Operation failed
        echo 'An error occured processing your request:';

Request Fields

command [REQUIRED] [string] - API command to execute
cdn_id [REQUIRED] [int] - The ScaleEngine CDN ID of your account
api_key [REQUIRED] [string] - The API key provided as part of your account
timestamp [REQUIRED] [int] - The unix timestamp of your request, used to prevent authenticated API requests from being replayed
push_service_id [REQUIRED] [int] - ID of the stored PushPublish Service
app [REQUIRED] [string] - The ScaleEngine Application name
inst [REQUIRED] [String] - Name of the Application Instance
stream [REQUIRED] [string] - Stream name
service_name [REQUIRED] [string] - service type.
Available services:
  • akamai
  • rtmp
  • facebook
entry_name [REQUIRED] [String] - Unique Key used to reference the PushPublish session. Required if connecting/disconnecting without a push service id
origin_url [REQUIRED] [string] - Defines the url address of an origin to be called. Defaults to jb-origin.secdn.net for origins and jb-chorigin.secdn.net for channels.

Example Result (JSON)

	"message": "cupertino-akamai disconnected",
	"status": "success",
	"handle_time":"0.3795 seconds"

Result Fields

message [string] - Debugging message
status [string] - "success" or "failure"
handle_time [float] - The amount of time spent processing your request