API REST
Mis à jour le 17 octobre 2026
L'API Statsdot vous fournit les mêmes données que votre tableau de bord, au format JSON, et vous permet de gérer vos sites, objectifs, votre équipe et vos jetons. Chaque requête nécessite un jeton d'accès personnel.
Authentification
Créez un jeton sur la page API et MCP de votre compte. Choisissez lecture seule pour les scripts et rapports, ou lecture et écriture si le jeton doit également effectuer des modifications. Copiez le jeton lorsqu'il s'affiche : il ne sera plus jamais visible.
Envoyez-le dans l'en-tête Authorization de chaque requête :
curl https://statsdot.com/api/v1/sites \
-H "Authorization: Bearer 12|your-token" \
-H "Accept: application/json"
Un jeton accède à ce que son utilisateur voit : vos propres sites et les sites des équipes auxquelles vous appartenez, avec votre rôle associé. Un lecteur peut consulter un site d'équipe, un gestionnaire peut également le modifier, et seul le propriétaire peut le supprimer.
URL de base et format
- URL de base :
https://statsdot.com/api/v1 - Les requêtes et réponses sont au format JSON. Les réponses réussies enveloppent le résultat dans
data. - Les heures sont au format ISO 8601 en UTC.
Plages et filtres
Chaque point de terminaison de statistiques accepte les mêmes paramètres de requête que le tableau de bord :
| Paramètre | Valeurs |
|---|---|
range |
today, 7d, 30d (par défaut), 12m, ou une plage personnalisée 2026-09-01~2026-09-30 (jours UTC complets, deux ans maximum) |
filters[page] |
Uniquement les accès sur ce chemin de page |
filters[entry] |
Visites ayant commencé sur cette page |
filters[source] |
Domaine référent, par exemple google.com ; vide signifie direct |
filters[utm_source], filters[utm_medium], filters[utm_campaign] |
Tags de campagne de la page d'atterrissage |
filters[country] |
Code pays ISO, par exemple ES |
filters[device] |
Desktop, Mobile ou Tablet |
filters[browser], filters[os] |
Tel qu'affiché dans le tableau de bord |
filters[event] |
Visites ayant envoyé cet événement |
filters[goal] |
Visites ayant atteint cet identifiant d'objectif |
Les visiteurs sur une plage donnée sont des visiteurs-jours : Statsdot compte un visiteur une fois par jour, car le code visiteur change quotidiennement.
Statistiques
| Méthode et chemin | Ce qu'il renvoie |
|---|---|
GET /sites/{site}/stats/overview |
Visiteurs, pages vues, taux de rebond et durée de visite (secondes), avec la période précédente de même durée et le changement en pourcentage |
GET /sites/{site}/stats/timeseries |
Visiteurs et pages vues par jour, ou par mois pour les plages supérieures à 90 jours |
GET /sites/{site}/stats/breakdown/{breakdown} |
Valeurs principales d'une dimension par visiteurs. breakdown est l'un des suivants : pages, entry_pages, exit_pages, referrers, utm_source, utm_medium, utm_campaign, countries, devices, browsers, operating_systems, events, event_labels (avec event=Nom). limit de 1 à 10, par défaut 10 |
GET /sites/{site}/stats/goals |
Chaque objectif avec les visiteurs l'ayant atteint, les conversions et le taux de conversion |
GET /sites/{site}/stats/realtime |
Visiteurs au cours des cinq dernières minutes |
GET /sites/{site}/stats/bots |
Requêtes des robots d'indexation IA sur la période : total, par robot, et les pages les plus lues (crawler=openai-gptbot restreint les pages). Nécessite le suivi des robots IA ; les filtres ne s'appliquent pas |
Exemple :
curl "https://statsdot.com/api/v1/sites/42/stats/breakdown/referrers?range=7d&limit=5" \
-H "Authorization: Bearer 12|your-token"
{
"data": {
"from": "2026-10-11T00:00:00+00:00",
"to": "2026-10-17T10:15:00+00:00",
"filters": {},
"breakdown": "referrers",
"rows": [
{ "value": "google.com", "visitors": 312 },
{ "value": "", "visitors": 145 }
]
}
}
Compte et sites
| Méthode et chemin | Ce qu'il fait |
|---|---|
GET /account |
Votre formule, les événements utilisés ce mois-ci et inclus, les limites, et les capacités du jeton |
GET /sites |
Sites que vous pouvez voir, avec votre rôle, les paramètres et le snippet de suivi |
GET /sites/{site} |
Un site |
POST /sites |
Ajouter un site : {"domain": "example.com"}. Ajoutez account_id pour l'ajouter à un compte d'équipe que vous gérez. Les limites de la formule de ce compte s'appliquent |
PATCH /sites/{site} |
Modifier weekly_report, public_live, shared (lien public en lecture seule), alert_traffic, alert_silence ou main_goal_id (un objectif du site, ou null) |
DELETE /sites/{site} |
Supprimer un site dont vous êtes propriétaire et toutes ses statistiques |
Objectifs
| Méthode et chemin | Ce qu'il fait |
|---|---|
GET /sites/{site}/goals |
Les objectifs d'un site |
POST /sites/{site}/goals |
{"type": "page", "value": "/thanks"} ou {"type": "event", "value": "Signup"} |
DELETE /sites/{site}/goals/{goal} |
Supprimer un objectif ; les visites sont conservées |
Entonnoirs
| Méthode et chemin | Ce qu'il fait |
|---|---|
GET /sites/{site}/funnels |
Les entonnoirs d'un site |
POST /sites/{site}/funnels |
{"name": "Sign-up", "steps": [{"type": "page", "value": "/"}, {"type": "page", "value": "/pricing"}, {"type": "event", "value": "Signup"}]} : 2 à 8 étapes, 10 entonnoirs maximum par site |
DELETE /sites/{site}/funnels/{funnel} |
Supprimer un entonnoir |
GET /sites/{site}/stats/funnels/{funnel} |
Visiteurs à chaque étape dans l'ordre au cours de la même journée, avec la part par rapport à l'étape précédente et à la première étape ; les plages et filtres s'appliquent |
Notes
| Méthode et chemin | Ce qu'il fait |
|---|---|
GET /sites/{site}/notes |
Notes sur le graphique ; from et to (AAAA-MM-JJ) restreignent la liste |
POST /sites/{site}/notes |
{"date": "2026-10-17", "text": "Newsletter envoyée"} : un jour passé ou présent, jusqu'à 200 caractères |
DELETE /sites/{site}/notes/{note} |
Supprimer une note |
Équipe
| Méthode et chemin | Ce qu'il fait |
|---|---|
GET /team |
Personnes invitées sur votre compte, limite de la formule, et équipes auxquelles vous appartenez |
POST /team |
Inviter : {"email": "[email protected]", "role": "viewer"} (viewer ou manager). L'e-mail d'invitation est envoyé ; la réponse inclut le lien d'invitation |
PATCH /team/{member} |
Modifier le rôle |
DELETE /team/{member} |
Supprimer une personne ou une invitation en attente |
Jetons
| Méthode et chemin | Ce qu'il fait |
|---|---|
GET /tokens |
Vos jetons, avec leurs capacités et leur dernière utilisation |
POST /tokens |
{"name": "Rapports", "abilities": ["read"]}. Le jeton en clair est dans la réponse, une seule fois. Un jeton en lecture seule ne peut pas créer de jeton d'écriture |
DELETE /tokens/{token} |
Révoquer un jeton |
Erreurs
Les erreurs utilisent le statut HTTP et un corps avec un code stable :
{ "error": { "code": "account_blocked", "message": "Le compte propriétaire de ce site n'a pas de formule active." } }
| Statut | Quand |
|---|---|
| 401 | Jeton manquant ou invalide |
| 402 | Le compte n'a pas de formule active, a dépassé sa formule ou a atteint une limite |
| 403 | Le jeton est en lecture seule et la requête tente une modification |
| 404 | Le site, l'objectif ou le membre n'existe pas ou n'est pas accessible à ce jeton |
| 422 | Paramètres invalides, par exemple une plage ou une ventilation inconnue |
| 429 | Trop de requêtes |
Limites
- 120 requêtes par minute par jeton.
- 25 jetons maximum par compte.
- L'API est incluse dans chaque formule et dans l'essai gratuit.