API Referentie

Integreer met het Conzent Toestemmingsbeheerplatform. Deze eindpunten ondersteunen de toestemmingsbanner, geolocatie-targeting, toestemmingsauditlogging en cookie-scanning.

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

Alle eindpunten zijn relatief ten opzichte van uw zelf-gehoste Conzent-instantie. Vervang de basis-URL door uw werkelijke domein.

Authenticatie

De meeste eindpunten zijn publiek — ze worden aangeroepen vanuit het script van de toestemmingsbanner dat draait op de browsers van uw bezoekers.

Eindpunten die gegevens accepteren, gebruiken een Website Sleutel om te identificeren bij welke site het verzoek hoort. Vind uw website sleutel in het Conzent-dashboard onder Sites.

Scanner Webhook is het enige eindpunt dat een API-sleutel vereist. Geef deze door via de X-Api-Key header. De sleutel moet overeenkomen met de SCANNER_WEBHOOK_SECRET omgevingsvariabele.
Auth-methodeGebruikt doorHoe
GeenGezondheidscontrole, GeolocatieGeen authenticatie vereist
Website SleutelPaginaweergave, Toestemming, ScangegevensGeef key door in de aanvraagbody
API-sleutelScan WebhookX-Api-Key header

Antwoordformaat

API-antwoorden gebruiken twee formaten, afhankelijk van het eindpunt:

Standaard Antwoord

Gebruikt door Gezondheidscontrole en Scan Webhook.

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

Lichtgewicht Antwoord

Gebruikt door beacon-eindpunten (Paginaweergave, Toestemming, Scangegevens) voor minimale overhead.

JSON
{
  "status": "ok"
}
Beacon-eindpunten geven altijd 200 terug. Ongeldige verzoeken retourneren {"status": "ignored"} met HTTP 200 om fouten in navigator.sendBeacon() te voorkomen.
GET /health

Gezondheidscontrole

Geeft de gezondheidsstatus van de applicatie en de achterliggende diensten terug. Gebruik voor monitoring, load balancer controles en Docker gezondheidscontroles.

Geen auth

Antwoord

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

Voorbeeld

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

Geolocatie

Geeft de landcode en de EU-lidmaatschapsstatus van de bezoeker terug. Gebruikt door het toestemmingsscript om geo-gerichte regelgeving toe te passen (GDPR, CCPA).

Geen auth Gecached 1 uur CORS

Antwoordvelden

VeldTypeBeschrijving
countrystringISO 3166-1 alpha-2 code (kleine letters)
in_eubooleanOf het land in de EU is

Antwoord

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

Voorbeeld

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

Paginaweergave Beacon

Registreert paginaweergave- en banner-laad evenementen. Verzendt via navigator.sendBeacon() als multipart/form-data. Verhoogt de dagelijkse paginaweergave teller en buffert cookie-observaties voor asynchrone verwerking.

Website Sleutel CORS

Aanvraagbody multipart/form-data

ParameterTypeVerplichtBeschrijving
keystringVerplichtDe website sleutel van uw site
request_typestringVerplichtbanner_load of banner_view
log_timeintegerOptioneelUnix-tijdstempel van het evenement
payloadJSON stringOptioneelObject met consent_session_id, banner_id, url, cookies

Antwoord

200 OK
{
  "status": "ok"
}

Voorbeeld

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

Scangegevens Beacon

Ontvangt client-side cookie scan gegevens. Het toestemmingsscript detecteert cookies in de browser van de bezoeker en rapporteert deze voor automatische categorisatie. Gegevens worden gebufferd in Redis en asynchroon verwerkt.

Website Sleutel 600 req/min CORS

Aanvraagbody multipart/form-data

ParameterTypeVerplichtBeschrijving
keystringVerplichtDe website sleutel van uw site
payloadJSON stringVerplichtScan gegevens object (zie hieronder)

Payloadstructuur

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

Antwoord

200 OK
{
  "status": "ok"
}

Voorbeeld

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

Ontvangt scanresultaten van externe scannerservers wanneer een cookie-scan is voltooid. Geauthenticeerd via X-Api-Key header die overeenkomt met de SCANNER_WEBHOOK_SECRET omgevingsvariabele.

API-sleutel

Headers

HeaderVerplichtBeschrijving
X-Api-KeyVerplichtMoet overeenkomen met SCANNER_WEBHOOK_SECRET
Content-TypeVerplichtapplication/json

Aanvraagbody application/json

ParameterTypeVerplichtBeschrijving
actionstringOptioneelwebhook (standaard), runscan, of client_scan
scan_idintegerVoorwaardelijkVerplicht voor runscan / client_scan
scan_urlstringVoorwaardelijkURL die is gescand
dataobjectOptioneelScanresultaatgegevens (cookies, scripts)

Antwoord

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

Fout

401 Niet geautoriseerd
{
  "success": false,
  "error": "Unauthorized"
}

Voorbeeld

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