This endpoint enables direct reporting into the POOL TrackTrends system. However, the DJ session must be properly formatted into a JSON format in order for the report to succeed. The JSON structure is outlined below.
Example JSON Output
{
"userid": 1,
"session_file": "6491.session",
"session_date": 1405459954,
tracks:
[
{
"order": 1,
"start": 1405459954,
"end": 140540134,
"artist": "Styx",
"title": "Come Sail Away"
},
{
"order": 1,
"start": 140540134,
"end": 140540314,
"artist": "Paul Simon",
"title": "You Can Call Me Al"
},
{
"order": 1,
"start": 140540314,
"end": 1405460494,
"artist": "Twenty One Pilots",
"title": "Stressed Out"
}
]
}
PHP (using cURL):
<?php
$userid = 1;
$token = "8b26e1e4f3f5e00a888807e605565c47";
$session_data = '{"userid":1,"session_file":"6491.session","session_date":1405459954,';
$session_data .= 'tracks:[{"order":1,"start":1405459954,"end":14050134,"artist":"Styx","title":"Come Sail Away"}]}';
$post_fields = 'session_data='.$session_data;
$api_url = "https://api.promoonly.com/tracktrends/report";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer ".base64_encode($userid.":".$token)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$api_result = curl_exec($ch);
curl_close($ch);
$api_obj = json_decode($api_result);
?>
Javascript (using jQuery):
function b64EncodeUnicode(str)
{
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,
function toSolidBytes(match, p1)
{
return String.fromCharCode('0x' + p1);
}));
}
var userid = 1;
var token = "8b26e1e4f3f5e00a888807e605565c47";
var auth_str = "Bearer " + b64EncodeUnicode(userid + ":" + token);
var session_data = '{"userid":1,"session_file":"6491.session","session_date":1405459954,';
session_data += 'tracks:[{"order":1,"start":1405459954,"end":14050134,"artist":"Styx","title":"Come Sail Away"}]}';
$.ajax({
type: "POST",
url: "https://api.promoonly.com/tracktrends/report",
headers: { "Authorization": auth_str },
data: { session_data: session_data },
dataType: "json",
success: function (data)
{
console.log(data);
}
});
Python (using requests):
#!/usr/bin/env python
import requests
import base64
import urllib
userid = 1
token = "8b26e1e4f3f5e00a888807e605565c47"
session_data = '{"userid":1,"session_file":"6491.session","session_date":1405459954,'
session_data += 'tracks:[{"order":1,"start":1405459954,"end":14050134,"artist":"Styx","title":"Come Sail Away"}]}'
b64_key = base64.b64encode("%s:%s" % (userid, token))
headers = {"Authorization": "Bearer %s" % b64_key}
api_url = "https://api.promoonly.com/tracktrends/sessions/1"
result_return = requests.post(api_url, headers=headers, data={"session_data": session_data})
print(result_return.text)