API Referanse

Integrer med Conzent Samtykkehåndteringsplattform. Disse endepunktene driver samtykkebanneret, geolokalisering målretting, samtykke revisjonslogging og informasjonskapselskanning.

Grunnleggende URL
https://your-instance.example.com

Alle endepunkter er relative til din selvhostede Conzent-instans. Erstatt grunnleggende URL med ditt faktiske domene.

Autentisering

De fleste endepunkter er offentlige — de kalles fra samtykkebanner-skriptet som kjører på besøkendes nettlesere.

Endepunkter som aksepterer data bruker en Nettside-nøkkel for å identifisere hvilken side forespørselen tilhører. Finn nettsiden din nøkkel i Conzent-dashbordet under Nettsteder.

Scanner Webhook er det eneste endepunktet som krever en API-nøkkel. Send den via X-Api-Key header. Nøkkelen må samsvare med SCANNER_WEBHOOK_SECRET miljøvariabel.
Auth MetodeBrukt AvHvordan
IngenHelsekontroll, GeolokaliseringIngen autentisering kreves
Nettside-nøkkelSidevisning, Samtykke, Skann DataSend key i forespørselens kropp
API-nøkkelSkann WebhookX-Api-Key header

Responsformat

API-responser bruker to formater avhengig av endepunktet:

Standard Respons

Brukes av Helsekontroll og Skann Webhook.

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

Lettvektsrespons

Brukes av beacon-endepunkter (Sidevisning, Samtykke, Skann Data) for minimal overhead.

JSON
{
  "status": "ok"
}
Beacon-endepunkter returnerer alltid 200. Ugyldige forespørseler returnerer {"status": "ignored"} med HTTP 200 for å unngå feil i navigator.sendBeacon().
GET /health

Helsekontroll

Returnerer helsestatusen til applikasjonen og støttetjenester. Brukes til overvåking, lastbalanseringskontroller og Docker helseprober.

Ingen autentisering

Respons

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

Eksempel

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

Geolokalisering

Returnerer besøkendes landskode og EU-medlemskapsstatus. Brukes av samtykkeskriptet for å anvende geo-målrettede forskrifter (GDPR, CCPA).

Ingen autentisering Cachet 1t CORS

Responsfelt

FeltTypeBeskrivelse
landstringISO 3166-1 alpha-2 kode (små bokstaver)
in_eubooleanOm landet er i EU

Respons

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

Eksempel

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

Sidevisning Beacon

Registrerer sidevisning og banner-laste hendelser. Sendes via navigator.sendBeacon() som multipart/form-data. Øker den daglige sidevisningstelleren og bufferer informasjonskapselobservasjoner for asynkron behandling.

Nettside-nøkkel CORS

Forespørsel Kropp multipart/form-data

ParameterTypeKrevesBeskrivelse
keystringKrevesDin nettsides nettside-nøkkel
request_typestringKrevesbanner_load eller banner_view
log_timeintegerValgfrittUnix-tidsstempel for hendelsen
payloadJSON-strengValgfrittObjekt med consent_session_id, banner_id, url, cookies

Respons

200 OK
{
  "status": "ok"
}

Eksempel

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

Skann Data Beacon

Mottar klient-side informasjonskapselskann data. Samtykkeskriptet oppdager informasjonskapsler i besøkendes nettleser og rapporterer dem for automatisk kategorisering. Data buffres i Redis og behandles asynkront.

Nettside-nøkkel 600 forespørseler/min CORS

Forespørsel Kropp multipart/form-data

ParameterTypeKrevesBeskrivelse
keystringKrevesDin nettsides nettside-nøkkel
payloadJSON-strengKrevesSkann dataobjekt (se nedenfor)

Payload Struktur

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

Respons

200 OK
{
  "status": "ok"
}

Eksempel

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

Scanner Webhook

Mottar skanneresultater fra eksterne skanner-servere når en informasjonskapselskanning er fullført. Autentisert via X-Api-Key header som samsvarer med SCANNER_WEBHOOK_SECRET miljøvariabel.

API-nøkkel

Headere

HeaderKrevesBeskrivelse
X-Api-KeyKrevesMå samsvare med SCANNER_WEBHOOK_SECRET
Content-TypeKrevesapplication/json

Forespørsel Kropp application/json

ParameterTypeKrevesBeskrivelse
actionstringValgfrittwebhook (standard), runscan, eller client_scan
scan_idintegerBetingetKreves for runscan / client_scan
scan_urlstringBetingetURL som ble skannet
dataobjectValgfrittSkanneresultater (informasjonskapsler, skript)

Respons

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

Feil

401 Uautorisert
{
  "success": false,
  "error": "Uautorisert"
}

Eksempel

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