API Référence

Intégrez-vous à la plateforme de gestion de consentement Conzent. Ces points de terminaison alimentent la bannière de consentement, le ciblage géolocalisé, l'audit de consentement et le scan des cookies.

URL de base
https://your-instance.example.com

Tous les points de terminaison sont relatifs à votre instance Conzent auto-hébergée. Remplacez l'URL de base par votre domaine réel.

Authentification

La plupart des points de terminaison sont publics — ils sont appelés depuis le script de la bannière de consentement s'exécutant sur les navigateurs de vos visiteurs.

Les points de terminaison qui acceptent des données utilisent une Clé de site pour identifier à quel site appartient la demande. Trouvez votre clé de site dans le tableau de bord Conzent sous Sites.

Webhook de scanner est le seul point de terminaison nécessitant une clé API. Passez-la via l'en-tête X-Api-Key. La clé doit correspondre à la variable d'environnement SCANNER_WEBHOOK_SECRET.
Méthode d'authUtilisé parComment
AucunVérification de l'état, GéolocalisationAucune authentification requise
Clé de siteVue de page, Consentement, Données de scanPasser key dans le corps de la demande
Clé APIWebhook de scanX-Api-Key en-tête

Format de réponse

Les réponses API utilisent deux formats selon le point de terminaison :

Réponse standard

Utilisé par la vérification de l'état et le webhook de scan.

JSON
{
  "success": true,
  "data": {
    "status": "ok"
  }
}

Réponse légère

Utilisé par les points de terminaison de balise (Vue de page, Consentement, Données de scan) pour un minimum de surcharge.

JSON
{
  "status": "ok"
}
Les points de terminaison de balise retournent toujours 200. Les demandes invalides retournent {"status": "ignored"} avec HTTP 200 pour éviter les erreurs dans navigator.sendBeacon().
GET /health

Vérification de l'état

Retourne l'état de santé de l'application et des services de support. Utilisé pour la surveillance, les vérifications de l'équilibreur de charge et les sondes de santé Docker.

Pas d'auth

Réponse

200 OK
{
  "success": true,
  "data": {
    "status": "ok",
    "services": {
      "database": true,
      "redis": true
    },
    "environment": "production",
    "timestamp": "2026-03-16T12:00:00+00:00"
  }
}
503 — Dégradé
{
  "success": true,
  "data": {
    "status": "degraded",
    "services": {
      "database": true,
      "redis": false
    }
  }
}

Exemple

curl
curl https://your-instance.example.com/health
GET /api/v1/geo_ip

Géolocalisation

Retourne le code du pays du visiteur et le statut d'adhésion à l'UE. Utilisé par le script de consentement pour appliquer des réglementations géolocalisées (GDPR, CCPA).

Pas d'auth Mis en cache 1h CORS

Champs de réponse

ChampTypeDescription
countrystringCode ISO 3166-1 alpha-2 (minuscules)
in_eubooleanSi le pays est dans l'UE

Réponse

200 OK
{
  "country": "dk",
  "in_eu": true
}

Exemple

curl
curl https://your-instance.example.com/api/v1/geo_ip
POST /api/v1/log

Balise de vue de page

Enregistre les événements de vue de page et de chargement de bannière. Envoyé via navigator.sendBeacon() en tant que multipart/form-data. Incrémente le compteur de vues de page quotidien et met en mémoire tampon les observations de cookies pour un traitement asynchrone.

Clé de site CORS

Corps de la demande multipart/form-data

ParamètreTypeRequisDescription
keystringRequisVotre clé de site
request_typestringRequisbanner_load ou banner_view
log_timeintegerOptionnelTimestamp Unix de l'événement
payloadJSON stringOptionnelObjet avec consent_session_id, banner_id, url, cookies

Réponse

200 OK
{
  "status": "ok"
}

Exemple

curl
curl -X POST https://your-instance.example.com/api/v1/log \
  -F "key=YOUR_WEBSITE_KEY" \
  -F "request_type=banner_load" \
  -F "log_time=$(date +%s)"
POST /api/v1/scan_data

Balise de données de scan

Reçoit les données de scan de cookies côté client. Le script de consentement détecte les cookies sur le navigateur du visiteur et les signale pour une catégorisation automatique. Les données sont mises en mémoire tampon dans Redis et traitées de manière asynchrone.

Clé de site 600 req/min CORS

Corps de la demande multipart/form-data

ParamètreTypeRequisDescription
keystringRequisVotre clé de site
payloadJSON stringRequisObjet de données de scan (voir ci-dessous)

Structure de la charge utile

payload (chaîne JSON)
{
  "scan_id": 123,
  "action": "runscan",
  "scan_url": "https://example.com/",
  "consent_phase": "pre_consent",
  "data": {
    "cookies": [
      { "name": "_ga", "domain": ".example.com" }
    ]
  }
}

Réponse

200 OK
{
  "status": "ok"
}

Exemple

curl
curl -X POST https://your-instance.example.com/api/v1/scan_data \
  -F "key=YOUR_WEBSITE_KEY" \
  -F 'payload={"scan_id":123,"action":"runscan","scan_url":"https://example.com/"}'
POST /api/v1/scan-webhook

Webhook de scanner

Reçoit les résultats de scan des serveurs de scanner externes lorsqu'un scan de cookie est terminé. Authentifié via l'en-tête X-Api-Key correspondant à la variable d'environnement SCANNER_WEBHOOK_SECRET.

Clé API

En-têtes

En-têteRequisDescription
X-Api-KeyRequisDoit correspondre à SCANNER_WEBHOOK_SECRET
Content-TypeRequisapplication/json

Corps de la demande application/json

ParamètreTypeRequisDescription
actionstringOptionnelwebhook (par défaut), runscan, ou client_scan
scan_idintegerConditionnelRequis pour runscan / client_scan
scan_urlstringConditionnelURL qui a été scannée
dataobjectOptionnelDonnées de résultat de scan (cookies, scripts)

Réponse

200 OK
{
  "success": true,
  "data": {
    "status": "processed"
  }
}

Erreur

401 Non autorisé
{
  "success": false,
  "error": "Non autorisé"
}

Exemple

curl
curl -X POST https://your-instance.example.com/api/v1/scan-webhook \
  -H "X-Api-Key: YOUR_SCANNER_WEBHOOK_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "webhook",
    "scan_id": 456,
    "scan_url": "https://example.com/",
    "data": {
      "cookies": [
        {"name": "_ga", "domain": ".example.com", "category": "analytics"}
      ]
    }
  }'