Aller au contenu

Plateforme

API REST

Authentifiez-vous avec une clé API et interrogez tous les rapports, les données en direct et les exports en HTTP.

L’API REST est celle qu’utilise le tableau de bord : tous les rapports, les données en direct, les sessions, la configuration et les exports, en JSON. Les requêtes ne sont pas décomptées sur un serveur auto-hébergé.

Sur Cloud, les clés API et l’API REST sont incluses dans Pro et Business (voir Offres et limites) ; un appel qui nécessite une offre supérieure répond 402 avec le code plan_required.

Authentification

Créez une clé dans Settings → API keys. Elle commence par glb_ et ne s’affiche qu’une fois : Globatics n’en conserve que l’empreinte. Envoyez-la comme jeton Bearer. Une clé agit au nom de son propriétaire, sur les sites qu’il possède.

Terminal
export GLOBATICS_KEY=glb_YOUR_KEY

curl https://globatics.live/api/sites \
  -H "Authorization: Bearer $GLOBATICS_KEY"

Les jetons de partage publics fonctionnent aussi pour les points d’accès en lecture seule (rapports, direct, sessions), avec ?share=TOKEN ou un en-tête x-share-token. Les identités sont retirées de ces réponses.

Paramètres de requête

Chaque rapport accepte les mêmes paramètres que l’URL du tableau de bord.

ParamètreValeurs
periodtoday, yesterday, 24h, 7d (par défaut), 30d, 90d, mtd, lastmonth, ytd, 12mo, all, custom
from, toYYYY-MM-DD dans le fuseau horaire du site, bornes incluses, avec period=custom
compareprevious (par défaut), year, none
intervalminute, hour, day, week, month (choisi pour vous s’il est omis)
fFiltre répétable dim:op:value, où op vaut is, is_not, contains ou not_contains. Exemple : f=country:is:FR

Dimensions de filtre : page, entry_page, exit_page, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, utm_term, utm_content, country, region, city, device, browser, os, screen, language, event, goal.

Rapports

GET/api/sites/:siteId/stats/:report
RapportParamètres supplémentairesRenvoie
overviewIndicateurs clés, période précédente, série temporelle, visiteurs en ligne
timeseriesVisiteurs, visites, pages vues, rebond, durée, conversions, revenu par intervalle
breakdowndim, limit, page, searchLignes d’une dimension avec part et évolution
heatmapVisiteurs par jour de la semaine × heure
eventsevent, propÉvénements, ou propriétés d’un événement
goalsConversions par objectif
funnelid, ou steps (JSON), window, dimÉtapes, abandons, durées médianes, nombre de personnes en direct à chaque étape
retentioninterval, cohortsGrille de cohortes
pathsstart, goal ou end, depthParcours (liens du diagramme de Sankey)
vitalsp75 et répartition par note pour chaque métrique, score, pages
errorsErreurs JavaScript regroupées
engagementpathProfondeur de défilement, clics de rage, clics morts, clics les plus fréquents, liens sortants
revenueRevenu par canal, source, campagne, pays, page
aiTrafic des assistants IA par assistant, visiteurs IA comparés aux autres
Terminal
# les 10 pages les plus vues depuis la France ce mois-ci
curl -G https://globatics.live/api/sites/SITE_ID/stats/breakdown \
  -H "Authorization: Bearer $GLOBATICS_KEY" \
  --data-urlencode "dim=page" --data-urlencode "limit=10" \
  --data-urlencode "period=mtd" --data-urlencode "f=country:is:FR"

# pourquoi le nombre de visiteurs a-t-il changé cette semaine ?
curl -G https://globatics.live/api/sites/SITE_ID/explain \
  -H "Authorization: Bearer $GLOBATICS_KEY" \
  --data-urlencode "metric=visitors" --data-urlencode "period=7d"
GET/api/sites/:siteId/explain?metric=Facteurs d’une évolution (visitors, pageviews, sessions, conversions, revenue, bounceRate)
GET/api/sites/:siteId/insightsAnomalies et synthèse

Données en direct

GET/api/sites/:siteId/liveInstantané : visiteurs en ligne, événements récents, compteurs
GET/api/sites/:siteId/live/streamServer-Sent Events : instantané, puis mises à jour
GET/api/sites/:siteId/live/replay?from=&to=Événements d’une période (≤ 7 jours) avec un histogramme de 60 intervalles
Terminal
curl -N https://globatics.live/api/sites/SITE_ID/live/stream \
  -H "Authorization: Bearer $GLOBATICS_KEY"

# event: snapshot   data: {"type":"snapshot","snapshot":{…}}
# event: event      data: {"type":"event","event":{…}}
# event: counters   data: {"type":"counters","counters":{…}}   toutes les 5 s

Types de messages : snapshot, visitor.upsert, visitor.leave, event, counters, moment, narration. Les filtres (f=) s’appliquent côté serveur. Un commentaire : ping est envoyé toutes les 15 secondes.

Sessions et visiteurs

GET/api/sites/:siteId/sessionsVisites, des plus récentes aux plus anciennes (cursor, limit + paramètres de requête)
GET/api/sites/:siteId/sessions/:sessionIdUne visite avec la chronologie de ses événements
GET/api/sites/:siteId/visitors/:visitorIdProfil du visiteur

Configuration

RessourcePoints d’accès
SitesGET/POST /api/sites · GET/PATCH/DELETE /api/sites/:siteId
ObjectifsGET/POST /api/sites/:siteId/goals · PATCH/DELETE …/goals/:goalId
EntonnoirsGET/POST /api/sites/:siteId/funnels · PATCH/DELETE …/funnels/:funnelId
AlertesGET/POST /api/sites/:siteId/alerts · PATCH/DELETE …/alerts/:alertId · POST …/test
AnnotationsGET/POST /api/sites/:siteId/annotations · PATCH/DELETE …/:annotationId
PartagePOST (enable or rotate) / DELETE /api/sites/:siteId/share
État du suiviGET /api/sites/:siteId/tracking-health

Pour interroger vos statistiques depuis un agent IA (Claude, ChatGPT, Cursor…), utilisez le serveur MCP.

Export

GET/api/sites/:siteId/export?report=&format=CSV ou JSON de n’importe quel rapport, ou format=jsonl pour les événements bruts
Terminal
curl -G https://globatics.live/api/sites/SITE_ID/export \
  -H "Authorization: Bearer $GLOBATICS_KEY" \
  --data-urlencode "format=jsonl" --data-urlencode "period=30d" -o events.jsonl

Erreurs

Les erreurs utilisent les codes de statut HTTP et un format JSON unique :

{ "error": { "code": "not_found", "message": "Site not found" } }
StatutSignification
400Paramètre invalide (le message le nomme)
401Clé absente ou invalide
403Action non autorisée (par exemple une écriture avec un jeton de partage)
404Site inconnu, ou site dont vous n’êtes pas propriétaire
429Trop de requêtes ; réessayez après le délai indiqué par l’en-tête Retry-After