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.
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.
X-Api-Key. La clé doit correspondre à la variable d'environnement SCANNER_WEBHOOK_SECRET. | Méthode d'auth | Utilisé par | Comment |
|---|---|---|
| Aucun | Vérification de l'état, Géolocalisation | Aucune authentification requise |
| Clé de site | Vue de page, Consentement, Données de scan | Passer key dans le corps de la demande |
| Clé API | Webhook de scan | X-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.
{
"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.
{
"status": "ok"
} {"status": "ignored"} avec HTTP 200 pour éviter les erreurs dans navigator.sendBeacon(). 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.
Réponse
{
"success": true,
"data": {
"status": "ok",
"services": {
"database": true,
"redis": true
},
"environment": "production",
"timestamp": "2026-03-16T12:00:00+00:00"
}
} {
"success": true,
"data": {
"status": "degraded",
"services": {
"database": true,
"redis": false
}
}
} Exemple
curl https://your-instance.example.com/health 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).
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| country | string | Code ISO 3166-1 alpha-2 (minuscules) |
| in_eu | boolean | Si le pays est dans l'UE |
Réponse
{
"country": "dk",
"in_eu": true
} Exemple
curl https://your-instance.example.com/api/v1/geo_ip 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.
Corps de la demande multipart/form-data
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| key | string | Requis | Votre clé de site |
| request_type | string | Requis | banner_load ou banner_view |
| log_time | integer | Optionnel | Timestamp Unix de l'événement |
| payload | JSON string | Optionnel | Objet avec consent_session_id, banner_id, url, cookies |
Réponse
{
"status": "ok"
} Exemple
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)" Journal de consentement
Enregistre la trace d'audit de consentement GDPR lorsqu'un visiteur accepte, rejette ou personnalise le consentement. C'est le point de terminaison principal de conformité.
Corps de la demande multipart/form-data
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| key | string | Requis | Votre clé de site |
| conzent_id | string | Requis | Identifiant de session (chaîne aléatoire de 40 caractères) |
| log | JSON string | Optionnel | Choix de consentement par catégorie de cookie |
| consented_domain | string | Optionnel | Domaine où le consentement a été donné |
| cookie_list_version | string | Optionnel | Hash de version de la liste de cookies au moment du consentement |
| language | string | Optionnel | Code de langue du visiteur |
| country | string | Optionnel | Code du pays du visiteur |
| consent_time | string | Optionnel | Timestamp côté client |
| tcf_data | string | Optionnel | Chaîne de consentement IAB TCF v2.2 |
| gacm_data | string | Optionnel | Données du mode de consentement Google v2 |
| variant_id | integer | Optionnel | ID de variante de test A/B |
Réponse
{
"status": "ok"
} Exemple
curl -X POST https://your-instance.example.com/api/v1/consent \
-F "key=YOUR_WEBSITE_KEY" \
-F "conzent_id=a1b2c3d4e5f6..." \
-F 'log=[{"category":"analytics","consented":true}]' \
-F "consented_domain=example.com" \
-F "language=en" \
-F "country=dk" 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.
Corps de la demande multipart/form-data
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| key | string | Requis | Votre clé de site |
| payload | JSON string | Requis | Objet de données de scan (voir ci-dessous) |
Structure de la charge utile
{
"scan_id": 123,
"action": "runscan",
"scan_url": "https://example.com/",
"consent_phase": "pre_consent",
"data": {
"cookies": [
{ "name": "_ga", "domain": ".example.com" }
]
}
} Réponse
{
"status": "ok"
} Exemple
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/"}' 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.
En-têtes
| En-tête | Requis | Description |
|---|---|---|
| X-Api-Key | Requis | Doit correspondre à SCANNER_WEBHOOK_SECRET |
| Content-Type | Requis | application/json |
Corps de la demande application/json
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| action | string | Optionnel | webhook (par défaut), runscan, ou client_scan |
| scan_id | integer | Conditionnel | Requis pour runscan / client_scan |
| scan_url | string | Conditionnel | URL qui a été scannée |
| data | object | Optionnel | Données de résultat de scan (cookies, scripts) |
Réponse
{
"success": true,
"data": {
"status": "processed"
}
} Erreur
{
"success": false,
"error": "Non autorisé"
} Exemple
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"}
]
}
}'