Developers » Data API » Rest API » Getting started » Code Samples (PHP, Javascript & Python)
Code Samples (PHP, Javascript & Python)
Here are some samples of code you can use to query AT Internet Rest API. Please note that you need AT Internet credentials to login.
PHP script (json format)
<?php
// configuration of the Rest API
$site = '554331';
$results = '50';
$page = '1';
$credentials = 'email@email.com:password';
$api = "https://apirest.atinternet-solutions.com/data/v2/json/getData?&columns={d_source,d_page,d_l2,m_visits,m_page_loads}&sort={-m_visits}&filter={d_l2:{\$empty:false}}&space={s:".$site."}&period={R:{D:'-1'}}&max-results=".$results."&page-num=".$page;
// Configuration of the API Headers
$headers = array(
"Authorization: Basic " . base64_encode($credentials)
);
// Connection to the AT Internet API
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,$api);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name');
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl_handle, CURLOPT_TIMEOUT, 60);
// $query is the JSON Response
$query = json_decode(curl_exec($curl_handle),true);
curl_close($curl_handle);
// Function to parse the JSON and display a nice HTML table
function readATInternetApi($a) {
$return = '<table>';
$return .= '<tr>';
foreach($a["DataFeed"][0]["Columns"] as $col){
$return .= "<td>".$col["Label"]."</td>";
}
$return .= '</tr>';
foreach($a["DataFeed"][0]["Rows"] as $row){
$return .= '<tr>';
foreach($a["DataFeed"][0]["Columns"] as $col){
$return .= '<td>'.$row[$col["Name"]].'</td>';
}
$return .= '<tr>';
}
$return .= '</table>';
echo $return;
}
// Execution of the function to show the HTML table
readATInternetApi($query);
?> PHP script (xml format)
<?php
// configuration of the Rest API
$site = '554331';
$results = '50';
$page = '1';
$credentials = 'email@email.com:password';
$api = "https://apirest.atinternet-solutions.com/data/v2/xml/getData?&columns={d_source,d_page,d_l2,m_visits,m_page_loads}&sort={-m_visits}&filter={d_l2:{\$empty:false}}&space={s:".$site."}&period={R:{D:'-1'}}&max-results=".$results."&page-num=".$page;
// Configuration of the API Headers
$headers = array(
"Authorization: Basic " . base64_encode($credentials)
);
// Connection to the AT Internet API
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,$api);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name');
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl_handle, CURLOPT_TIMEOUT, 60);
// $query is the JSON Response
$query = simplexml_load_string(curl_exec($curl_handle));
curl_close($curl_handle);
// Function to parse the JSON and display a nice HTML table
function readATInternetApi($a) {
$return = '<table>';
$return .= '<tr>';
foreach($a->DataSet->Columns->Column as $col){
$return .= "<td>".$col["Label"]."</td>";
}
$return .= '</tr>';
foreach($a->DataSet->Rows->Row as $row){
$return .= '<tr>';
foreach($a->DataSet->Columns->Column as $col){
$return .= '<td>'.$row[$col["Name"]].'</td>';
}
$return .= '<tr>';
}
$return .= '</table>';
echo $return;
}
// Execution of the function to show the HTML table
readATInternetApi($query);
?> JavaScript (json format)
<html>
<head>
<meta charset="utf-8">
<title>Use API with javascript</title>
</head>
<body>
<div id="result"></div>
</body>
<!-- JQuery library -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<script>
// Set up
var user = 'email@email.com';
var password = 'password';
var site = '554331';
var maxResults = '50';
var pageNum = '1'
var url = "https://apirest.atinternet-solutions.com/data/v2/json/getData?&columns={d_source,d_page,d_l2,m_visits,m_page_loads}&sort={-m_visits}&filter={d_l2:{$empty:false}}&space={s:"+site+"}&period={R:{D:'-1'}}&max-results="+maxResults+"&page-num="+pageNum+"";
// AJAX request with JQuery to call the AT Internet API
$.ajax({
xhrFields: {
withCredentials: false
},
headers: {
'Authorization': 'Basic ' + btoa(user+':'+password)
},
url: url,
success: function(data){
readATInternetApi(data);
},
error: function(){
$('#result').append('<h2>Oops something went wrong :( Please check the parameters.</h2>');
}
});
<!-- Function that parses the JSON object to display a HTML table-->
function readATInternetApi(data){
var res = '<table>';
res += '<tr>';
var dColums = data.DataFeed["0"]["Columns"]; // data stored in 'Columns' field
var dRow = data.DataFeed["0"]["Rows"] // data stored in 'Rows' field
for(var property in dColums){
if (dColums.hasOwnProperty(property)){
res += "<th>"+dColums[property]["Label"]+"</th>";
}
}
res += '</tr>';
for(var row in dRow){
if (dRow.hasOwnProperty(row)){
res += '<tr>';
for(var col in dColums){
if (dColums.hasOwnProperty(col)) {
res += '<td>'+dRow[row][dColums[col]["Name"]]+'</td>';
}
}
res += '</tr>';
}
}
res += '</table>';
$('#result').append(res);
}
</script>
</html> Python script (json format)
# coding : utf-8
import requests
import codecs
url = "https://apirest.atinternet-solutions.com/data/v2/json/getData"
# You have to encode your credentials using base64 to generate a unique key: email@email.com:password
headers = {
'authorization': "Basic amVyZW15LmNhc3RhbkBhdGludGVybmV0LmNvbTptYXJjbGVib2dvc3M="
}
nb_results = 50
file = codecs.open("C:\\Users\\YOUR_USER_NAME\\Desktop\\MyRawData.txt","w",encoding='utf8')
for page in range(1,5):
querystring = {"columns":"{d_source,m_visits}","sort":"{-m_visits}","space":'{s:123456}',"period":"{R:{D:'-1'}}","max-results":"%d" % nb_results,"page-num":"%d" % page}
response = requests.request("GET", url, headers=headers, params=querystring)
file.write(response.text)
file.close() R script
##Packages setup#
install.packages("httr")
install.packages("RCurl")
require(httr)
require(RCurl)
## Function to count the number of required calls
rcall<-function(URL,user,password){
CallRaw<-paste("https://apirest.atinternet-solutions.com/data/v2/json/getRowCount?",URL,sep="")
NumRow<-content(GET(CallRaw,config=authenticate(user,password,"basic")))
Page<-floor(NumRow$RowCounts[[1]]$RowCount/10000)+1
URL<-paste("https://apirest.atinternet-solutions.com/data/v2/json/getData?",URL,"&max-results=10000&page-num=",sep="")
DfCall<-as.data.frame(matrix(NA),nrow=Page)
for(i in 1:Page){
DfCall[i,]<-paste(URL,i,sep="")
}
return (DfCall)
}
Result<-function(DfCall,user,password){
Result<-as.data.frame(matrix(NA,ncol=2))
for(i in 1:nrow(DfCall)){
#API call execution
APIResults<-content(GET(DfCall[i,],config=authenticate(user,password,"basic")))
#Storage of the results in a data frame
Result2<-do.call(rbind, lapply(APIResults$DataFeed[[1]]$Rows, data.frame, stringsAsFactors=FALSE))
#Columns Setups
colnames(Result)<-colnames(Result2)
#Binding of the results
Result<-rbind(Result,Result2)
print(paste("Call to page ",i," has been successfully completed"))
}
return(Result)
}
#Call Sample
email="TO BE FILLED IN"
password="TO BE FILLED IN"
Test<-rcall("&columns={d_source_global,m_visits}&sort={-m_visits}&space={s:123123}&period={M:'2017-06'}",email,password)
Result(Test,email,password)
Last update: 22/01/2019