takt

API HTTP de lecture

Takt expose une API HTTP de lecture pour interroger les statistiques d’un site depuis un programme ou un agent. Elle réutilise les endpoints /api/v1/sites/{domain}/stats/* et s’authentifie par clé d’API (pas de cookie de session).

Authentification

Crée une clé d’API avec la permission stats:read depuis les paramètres de ton org, puis transmets-la en en-tête Authorization :

curl -H "Authorization: Bearer takt_sk_xxx" \
  "https://taktlytics.com/api/v1/sites/exemple.com/stats/summary?from=2026-03-01T00:00:00Z&to=2026-03-08T00:00:00Z"

Une clé est liée à un seul site. Une clé invalide renvoie 401 ; une clé sans la bonne permission ou visant un autre domaine renvoie 404 (anti-énumération).

Endpoints

La plupart des routes de lecture sont sous /api/v1/sites/{domain}/stats/ : summary, timeseries, breakdown, realtime, goals, funnels, properties, revenue. L’export CSV/JSON utilise un chemin distinct, /api/v1/orgs/{org}/sites/{domain}/stats/export, avec la même authentification par clé. Le contrat détaillé (paramètres, schémas de réponse) est décrit dans la spécification OpenAPI (api/openapi.yaml).

L’export est borné à 999 lignes et à 256 Ko de corps, comme l’outil MCP export_stats. Au-delà, les pages les moins visitées sont coupées et l’export le signale par l’en-tête de réponse X-Takt-Truncated, toujours présent, qui vaut true ou false. Le corps ne change pas : un tableau de lignes en JSON, label,visitors,pageviews en CSV.

Avec des données importées, les pages live et importées sont fusionnées avant la borne.

Deux familles ont leur propre permission, en plus de stats:read qui les ouvre aussi :

RoutePermission dédiéeCe qu’elle renvoie
stats/aiai:readtrafic venu des assistants et passages des crawlers IA
stats/search-consolesearch_console:readclics, impressions, CTR et position Google
stats/search-console/drillsearch_console:readles mêmes chiffres figés sur une page ou une requête (dimension=page\|query, value=)

Ces deux familles lisent des données rapatriées chez Google : elles exigent une propriété Search Console rattachée au site, et répondent 409 tant que ce n’est pas le cas.

Volume & limite de débit

L’API de lecture est incluse dans tous les plans, sans limite de volume. Chaque requête de lecture réussie est comptée dans l’usage de ton organisation, à titre informatif. Les refus (clé invalide, débit dépassé, mauvais domaine, accès restreint) ne sont pas comptés.

Une limite de débit anti-abus s’applique par clé d’API : 200 requêtes par 10 secondes et 600 requêtes par minute. Au-delà, l’endpoint répond 429 Too Many Requests (code trop_de_requetes) avec l’en-tête Retry-After, en secondes (10 pour la rafale, 60 pour la minute). Chaque clé a son propre budget.

En amont, la passerelle applique aussi un plafond par adresse IP, toutes clés confondues : 20 requêtes par seconde, avec des pointes jusqu’à 100. Au-delà, elle répond 429 avec un corps HTML et sans en-tête Retry-After : attends une seconde avant de réessayer.

Si ton organisation n’a plus accès au produit (essai terminé, abonnement résilié), les endpoints de lecture répondent 402 Payment Required (code acces_restreint).

L'ingestion (suivi des pages vues) n'est jamais affectée par ces refus. Tes données continuent d'être collectées.