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 :
| Limite | Fenêtre | Réponse en cas de dépassement |
|---|---|---|
| Variable selon endpoint | 15 minutes | HTTP 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ètre | Emplacement | Description |
|---|---|---|
clientId | URL path | UUID 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
| Champ | Type | Requis | Description |
|---|---|---|---|
clientId | string | oui | UUID du site |
versionId | string | oui | UUID de version de la politique cookies |
choice | string | oui | accepted | refused | partial |
categories | object | non | Détail des catégories acceptées/refusées |
lang | string | non | Langue du navigateur (max 5 car.) |
url | string | non | URL 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ètre | Emplacement | Description |
|---|---|---|
visitorToken | URL path | Token opaque identifiant le visiteur |
clientId | Query string | UUID du site |
versionId | Query string | UUID 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 HTTP | Signification |
|---|---|
200 | Succès |
204 | Réponse vide (pre-flight OPTIONS) |
400 | Paramètres manquants ou invalides |
403 | Site suspendu ou accès refusé |
404 | Ressource introuvable |
429 | Trop de requêtes — rate limit atteint |
503 | Service 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]