Les quatre routes d’ingestion d’INOTRACK, telles qu’elles répondent aujourd’hui. Elles vivent hors du préfixe /v1 : ce sont des points d’entrée machine, appelés depuis vos pages ou depuis votre serveur.
/v1
https://messagerie.inovertix.com
Format d’erreur : { "statusCode", "name", "message" } — identique dans tous les modules de CONTROL.
{ "statusCode", "name", "message" }
Si vous cherchez le pas-à-pas d’installation plutôt que la référence, commencez par Brancher un site en 5 minutes.
Chaque site dispose d’une paire de clés, visible dans CONTROL → INOTRACK → Sites & clés → onglet Intégration.
INOTRK_PUB_…
INOTRK_SEC_…
Authorization
Authorization: Bearer INOTRK_SEC_votre_cle_secrete
X-Inotrack-Key: INOTRK_PUB_votre_cle
?k=INOTRK_PUB_votre_cle
Une clé publique n’est acceptée que depuis un domaine déclaré sur le site (CONTROL → INOTRACK → Sites & clés → Domaines autorisés). Sinon : 403 origin_not_allowed.
403 origin_not_allowed
Le CORS est traité par site : votre domaine, et lui seul, reçoit les en-têtes d’autorisation.
Le traqueur envoie ses lots en Content-Type: text/plain avec la clé en ?k=. Ce n’est pas une négligence : un text/plain sans en-tête personnalisé est une requête simple au sens CORS, donc sans requête préliminaire. Une page vue coûte un aller-retour au lieu de deux.
Content-Type: text/plain
?k=
text/plain
Vos propres appels peuvent utiliser application/json sans réserve : les deux formats sont acceptés partout.
application/json
Limites de charge : 32 Ko par corps de requête, profondeur JSON maximale de 6, 50 événements par lot.
GET /api/inotrack/ping
Le test d’installation. Répond que la clé est valide et à quel site elle appartient.
curl -sS "https://messagerie.inovertix.com/api/inotrack/ping?k=INOTRK_PUB_votre_cle"
{ "ok": true, "site": { "name": "Ma boutique", "slug": "ma-boutique", "timezone": "Africa/Lome", "currency": "XOF" }, "kind": "public", "server_time": "2026-08-13T09:12:44+00:00" }
Débit : 120 requêtes/min par site.
POST /api/inotrack/collect
Un lot d’événements de navigation. C’est l’appel que fait le traqueur à chaque page vue.
session.uid
events
curl -sS -X POST "https://messagerie.inovertix.com/api/inotrack/collect?k=INOTRK_PUB_votre_cle" \ -H "Content-Type: text/plain" \ --data-raw '{"session":{"uid":"s_9f2c…"},"events":[{"type":"pageview","url":"https://exemple.com/produit/42"}]}'
Réponse 202 :
202
{ "ok": true, "accepted": 1 }
name
413
payload_too_large
422
validation_error
batch_too_large
invalid_json
Débit : 600 requêtes/min par site. C’est la seule route appelée à chaque page vue de chaque visiteur, elle a donc sa propre limite.
POST /api/inotrack/funnel
Un franchissement d’étape du tunnel. Contrairement à /collect, les erreurs sont explicites : une étape mal nommée doit se voir pendant l’intégration, pas une semaine plus tard devant un tunnel vide.
/collect
session_uid
step_key
step
data
curl -sS -X POST https://messagerie.inovertix.com/api/inotrack/funnel \ -H "Authorization: Bearer INOTRK_SEC_votre_cle_secrete" \ -H "Content-Type: application/json" \ -d '{"session_uid":"s_9f2c…","step_key":"commande_validee","data":{"amount":24500,"order_ref":"CMD-1042"}}'
{ "ok": true, "step": "commande_validee" }
unknown_step
payload_too_deep
500
server_error
POST /api/inotrack/order-status
Le changement de statut d’une commande — c’est lui qui alimente le taux de livraison.
Un seul objet, ou un lot :
order_ref
order_id
status
orders
curl -sS -X POST https://messagerie.inovertix.com/api/inotrack/order-status \ -H "Authorization: Bearer INOTRK_SEC_votre_cle_secrete" \ -H "Content-Type: application/json" \ -d '{"orders":[{"order_ref":"CMD-1042","status":"delivered"},{"order_ref":"CMD-1043","status":"cancelled"}]}'
{ "ok": true, "updated": 2, "ignored": 0 }
Une commande inconnue de CONTROL n’est pas une erreur : elle est comptée dans ignored. Le 422 n’arrive que si aucune commande du lot n’était exploitable.
ignored
Communs aux quatre routes, et volontairement précis : une clé révoquée, une clé d’un autre module et une clé inventée sont trois situations différentes.
401
missing_api_key
malformed_api_key
INOTRK_PUB_votre_cle
wrong_module_key
invalid_api_key
revoked_api_key
secret_key_in_url
403
site_inactive
secret_key_required
origin_not_allowed
429
rate_limit_exceeded