Faites votre premier appel API

 

Exemple simple

Vous trouverez dans ce tableau l’explication des principaux paramètres. Si vous souhaitez plus d’informations, vous pouvez les trouver dans les articles correspondants de la documentation dans la catégorie Paramètres.
 
ParamètreRequisDescription
spaceouiPérimètre d’analyse (site ou multi-sites)
columnsouiListe des propriétés et métriques dans l’appel (séparés par des virgules)
periodouiPériode d’analyse (simple, multiple, relative)
filternonFiltres à appliquer aux propriétés et métriques
evononObtenir l’évolution d’un groupe de métriques sur une certaine période de temps.
sortouiListe des propriétés / métriques selon lesquelles les résultats seront triés.
max-resultsouiNombre de résultats dans la page de résultats.
page-numouiNuméro de page de l’ensemble de données.
optionsnon

Paramètres supplémentaires: 

ignored_null_properties : Valeur possible « true » pour spécifier si une ligne dont toutes les propriétés sont nulles ne doit pas apparaître dans le résultat

eco_mode : Valeur possible « true » pour activer le mode éco

 

Syntaxe des paramètres

ParamètreSyntaxe
space« space »: { « s »:[547656] }
columns« columns »: [ « visit_device_type », « m_visits » ]
period« period »: { « p1 »: [ { « type »: « D », « start »: « 2019-10-20 », « end »: « 2019-10-24 » } ] }
filter« filter »: { « metric »: { « m_visits »: { « $eq »: 19 } }, }
evo« evo »: { « granularity »: « D », « top »: { « max-results »: 5, « page-num »: 1, « sort »: [« -m_visits »] } }
sort-by« sort »: [ « m_visits » ]
max-results« max-results »: 50
page-num« page-num »: 1
options« options »: {« ignore_null_properties »: true, « eco_mode »: true}
 
Vous trouverez ci-dessous quelques exemples complets pour voir comment cela pourrait fonctionner.
 

var data = JSON.stringify({
"columns": [
"device_type",
"m_visits",
"m_users"
],
"sort": [
"-m_visits"
],
"space": {
"s": [429023]
},
"period": {
"p1": [
{
"type": "D",
"start": "2019-10-24",
"end": "2019-10-24"
}
]
},
"max-results": 50,
"page-num": 1
});
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://api.atinternet.io/v3/data/getData");
xhr.setRequestHeader("x-api-key", "YOURAPIKEY");
xhr.send(data); 

curl -X POST \
https://api.atinternet.io/v3/data/getData \
-H 'x-api-key: YOURAPIKEY' \
-H 'Content-Type: application/json' \
-d '{
"columns": [
"device_type",
"m_visits",
"m_users"
],
"sort": [
"-m_visits"
],
"space": {
"s": [429023]
},
"period": {
"p1": [
{
"type": "D",
"start": "2019-10-24",
"end": "2019-10-24"
}
]
},
"max-results": 50,
"page-num": 1
}'

import http.client
conn = http.client.HTTPSConnection("api.atinternet.io")
payload = '''{
"columns": [
"device_type",
"m_visits",
"m_users"
],
"sort": [
"-m_visits"
],
"space": {
"s": [547656]
},
"period": {
"p1": [
{
"type": "D",
"start": "2019-10-24",
"end": "2019-10-24"
}
]
},
"max-results": 50,
"page-num": 1
}
'''
headers = {
'x-api-key': "YOURAPIKEY",
'Content-type': "application/json"
}
conn.request("POST", "/v3/data/getData", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

request["x-api-key"] = 'YOURAPIKEY'
request.body = "{\n \"columns\": [\n \"device_type\",\n \"m_visits\",\n \"m_users\"\n ],\n \"sort\": [\n \"-m_visits\"\n ],\n\"space\": {\n \"s\": [\n 429023\n ]\n },\n \"period\": {\n \"p1\": [\n {\n \"type\": \"D\",\n \"start\": \"2019-10-24\",\n \"end\": \"2019-10-24\"\n }\n ]\n },\n \"max-results\": 50,\n \"page-num\": 1\n}"
response = http.request(request)
puts response.read_body

 

 

Format de sortie

Cette API de reporting v3 vous permet d’obtenir une réponse soit en csv ou en json (par défaut) :

  • JSON : https://api.atinternet.io/v3/data/getData ou https://api.atinternet.io/v3/data/json/getData
  • CSV : https://api.atinternet.io/v3/data/csv/getData
 

POST ou GET ?

La Reporting API v3.0 est conçue pour être utilisée avec la méthode POST. Comme vous l’avez peut-être remarqué, le contenu de l’appel API est de plus en plus long car tous les champs sont bien décrits, et la méthode GET peut être limitée en raison de la longueur de la requête http.

Dernière mise à jour : 20/12/2021