Axent Docs
Dashboard →
Docs / Référence API
API

Référence API

L'API Axent est une API REST accessible à https://api.axet.fr. Elle est principalement utilisée par le SDK JavaScript, mais peut être interrogée directement pour des intégrations serveur.

Base URL : https://api.axet.fr — Toutes les réponses sont en JSON (Content-Type: application/json; charset=utf-8).

Rate Limiting

L'API est protégée par un rate limiting par adresse IP :

LimiteFenêtreRéponse en cas de dépassement
Variable selon endpoint15 minutesHTTP 429 avec header retry_after

GET /health

Vérifie l'état de l'API et la connexion à la base de données.

GET https://api.axet.fr/health

Réponse 200

{
  "status": "ok",
  "service": "Axent API",
  "version": "2.0.0",
  "time": "2026-05-01T10:00:00+02:00"
}

Réponse 503

{
  "status": "degraded",
  "error": "Database unavailable"
}

GET /site/{uuid}

Récupère la configuration publique d'un site (utilisé par le SDK pour charger les couleurs, la position et les catégories de cookies).

GET https://api.axet.fr/site/{clientId}

Paramètres

ParamètreEmplacementDescription
clientIdURL pathUUID du site (fourni dans le snippet)

Réponse 200

{
  "name": "Mon Site",
  "domain": "monsite.fr",
  "widgetConfig": {
    "position": "bottom-left",
    "primaryColor": "#FF6B35",
    "secondaryColor": "#4ECDC4",
    "showManageButton": true
  },
  "version": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
  "cookies": {
    "essential": {
      "name": "Essentiels",
      "description": "Indispensables au bon fonctionnement du site."
    },
    "analytics": {
      "name": "Statistiques",
      "description": "Pour mesurer l'usage du site."
    },
    "marketing": {
      "name": "Marketing",
      "description": "Pour les contenus et pubs personnalisés."
    }
  }
}

Réponse 404

{ "error": "Site introuvable ou inactif" }

Cette route est publique (pas d'authentification requise). Le site doit avoir le statut active et au moins une version de politique cookies active (is_active = 1) pour retourner une réponse 200.

POST /consent

Enregistre le consentement d'un visiteur. Appelé automatiquement par le SDK après chaque choix.

POST https://api.axet.fr/consent
Content-Type: application/json

Corps de la requête

{
  "clientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "versionId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
  "choice": "accepted",
  "categories": {
    "essential": true,
    "analytics": true,
    "marketing": false
  },
  "lang": "fr",
  "url": "https://monsite.fr/page"
}

Champs

ChampTypeRequisDescription
clientIdstringouiUUID du site
versionIdstringouiUUID de version de la politique cookies
choicestringouiaccepted | refused | partial
categoriesobjectnonDétail des catégories acceptées/refusées
langstringnonLangue du navigateur (max 5 car.)
urlstringnonURL de la page au moment du consentement

Réponse 200

{
  "status": "ok",
  "consentId": "42",
  "choice": "accepted",
  "expiresAt": "2026-11-01 10:00:00"
}

Réponse 400

{ "error": "Paramètres manquants : clientId, versionId, choice sont requis" }

Réponse 404

{ "error": "Site ou version introuvable. Vérifiez clientId et cookiesVersion." }

Les consentements sont pseudonymisés côté serveur : l'identifiant visiteur est un hash SHA-256 de l'IP + User-Agent + clé secrète. Aucune IP en clair n'est stockée.

GET /consent/{token}

Récupère un consentement enregistré pour un visiteur donné.

GET https://api.axet.fr/consent/{visitorToken}?clientId={uuid}&versionId={uuid}

Paramètres

ParamètreEmplacementDescription
visitorTokenURL pathToken opaque identifiant le visiteur
clientIdQuery stringUUID du site
versionIdQuery stringUUID de version

Réponse 200

{
  "status": "ok",
  "choice": "accepted",
  "categories": { "essential": true, "analytics": true, "marketing": false },
  "consentedAt": "2026-05-01 10:00:00",
  "expiresAt": "2026-11-01 10:00:00"
}

Réponse 404

{ "status": "not_found", "message": "Aucun consentement enregistré pour ce visiteur" }

Codes d'erreur

Code HTTPSignification
200Succès
204Réponse vide (pre-flight OPTIONS)
400Paramètres manquants ou invalides
403Site suspendu ou accès refusé
404Ressource introuvable
429Trop de requêtes — rate limit atteint
503Service temporairement indisponible

CORS

L'API accepte les requêtes cross-origin (Access-Control-Allow-Origin: *), ce qui permet au SDK JavaScript de l'appeler depuis n'importe quel domaine client.

Axent — axet.fr — contact : [email protected]