API Riferimento

Integra con la Piattaforma di Gestione del Consenso Conzent. Questi endpoint alimentano il banner di consenso, targeting geolocalizzato, registrazione dell'audit del consenso e scansione dei cookie.

URL di Base
https://your-instance.example.com

Tutti gli endpoint sono relativi alla tua istanza Conzent auto-ospitata. Sostituisci l'URL di base con il tuo dominio reale.

Autenticazione

La maggior parte degli endpoint sono pubblici — vengono chiamati dallo script del banner di consenso in esecuzione sui browser dei tuoi visitatori.

Gli endpoint che accettano dati utilizzano una Chiave del Sito per identificare a quale sito appartiene la richiesta. Trova la tua chiave del sito nel dashboard di Conzent sotto Siti.

Webhook di Scansione è l'unico endpoint che richiede una chiave API. Passala tramite l'intestazione X-Api-Key. La chiave deve corrispondere alla variabile ambientale SCANNER_WEBHOOK_SECRET.
Metodo di AutenticazioneUtilizzato daCome
NoneControllo Salute, GeolocalizzazioneNessuna autenticazione richiesta
Chiave del SitoVisualizzazione Pagina, Consenso, Dati di ScansionePassa key nel corpo della richiesta
Chiave APIWebhook di ScansioneX-Api-Key intestazione

Formato della Risposta

Le risposte API utilizzano due formati a seconda dell'endpoint:

Risposta Standard

Utilizzato da Controllo Salute e Webhook di Scansione.

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

Risposta Leggera

Utilizzato dagli endpoint beacon (Visualizzazione Pagina, Consenso, Dati di Scansione) per un sovraccarico minimo.

JSON
{
  "status": "ok"
}
Gli endpoint beacon restituiscono sempre 200. Le richieste non valide restituiscono {"status": "ignored"} con HTTP 200 per evitare errori in navigator.sendBeacon().
GET /health

Controllo Salute

Restituisce lo stato di salute dell'applicazione e dei servizi di supporto. Utilizzato per monitoraggio, controlli del bilanciatore di carico e probe di salute Docker.

Nessuna autenticazione

Risposta

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

Esempio

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

Geolocalizzazione

Restituisce il codice paese del visitatore e lo stato di appartenenza all'UE. Utilizzato dallo script di consenso per applicare regolamenti geo-targetizzati (GDPR, CCPA).

Nessuna autenticazione Cache 1h CORS

Campi della Risposta

CampoTipoDescrizione
countrystringCodice ISO 3166-1 alpha-2 (minuscolo)
in_eubooleanSe il paese è nell'UE

Risposta

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

Esempio

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

Beacon di Visualizzazione Pagina

Registra eventi di visualizzazione pagina e caricamento banner. Inviato tramite navigator.sendBeacon() come multipart/form-data. Incrementa il contatore di visualizzazioni giornaliere e memorizza le osservazioni dei cookie per l'elaborazione asincrona.

Chiave del Sito CORS

Corpo della Richiesta multipart/form-data

ParametroTipoRichiestoDescrizione
keystringRichiestoLa chiave del sito
request_typestringRichiestobanner_load o banner_view
log_timeintegerOpzionaleTimestamp Unix dell'evento
payloadJSON stringOpzionaleOggetto con consent_session_id, banner_id, url, cookies

Risposta

200 OK
{
  "status": "ok"
}

Esempio

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

Beacon di Dati di Scansione

Riceve dati di scansione dei cookie lato client. Lo script di consenso rileva i cookie nel browser del visitatore e li riporta per la categorizzazione automatica. I dati vengono memorizzati in Redis e elaborati in modo asincrono.

Chiave del Sito 600 richieste/min CORS

Corpo della Richiesta multipart/form-data

ParametroTipoRichiestoDescrizione
keystringRichiestoLa chiave del sito
payloadJSON stringRichiestoOggetto di dati di scansione (vedi sotto)

Struttura del Payload

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

Risposta

200 OK
{
  "status": "ok"
}

Esempio

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 di Scansione

Riceve i risultati della scansione dai server di scansione esterni quando una scansione dei cookie è completata. Autenticato tramite l'intestazione X-Api-Key che corrisponde alla variabile ambientale SCANNER_WEBHOOK_SECRET.

Chiave API

Intestazioni

IntestazioneRichiestaDescrizione
X-Api-KeyRichiestaDeve corrispondere a SCANNER_WEBHOOK_SECRET
Content-TypeRichiestaapplication/json

Corpo della Richiesta application/json

ParametroTipoRichiestoDescrizione
actionstringOpzionalewebhook (predefinito), runscan, o client_scan
scan_idintegerCondizionaleRichiesto per runscan / client_scan
scan_urlstringCondizionaleURL che è stato scansionato
dataobjectOpzionaleDati del risultato della scansione (cookie, script)

Risposta

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

Errore

401 Non Autorizzato
{
  "success": false,
  "error": "Non autorizzato"
}

Esempio

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"}
      ]
    }
  }'