API Referenz
Integrieren Sie sich mit der Conzent Consent Management Plattform. Diese Endpunkte steuern das Einwilligungsbanner, die geolokalisierte Zielgruppenansprache, die Protokollierung der Einwilligungsprüfung und das Scannen von Cookies.
Alle Endpunkte sind relativ zu Ihrer selbst gehosteten Conzent-Instanz. Ersetzen Sie die Basis-URL durch Ihre tatsächliche Domain.
Authentifizierung
Die meisten Endpunkte sind öffentlich — sie werden vom Skript des Einwilligungsbanners auf den Browsern Ihrer Besucher aufgerufen.
Endpunkte, die Daten akzeptieren, verwenden einen Website-Schlüssel, um zu identifizieren, zu welcher Website die Anfrage gehört. Finden Sie Ihren Website-Schlüssel im Conzent-Dashboard unter Websites.
X-Api-Key Header. Der Schlüssel muss mit der SCANNER_WEBHOOK_SECRET Umgebungsvariable übereinstimmen. | Auth-Methode | Verwendet von | Wie |
|---|---|---|
| Keine | Gesundheitscheck, Geolokalisierung | Keine Authentifizierung erforderlich |
| Website-Schlüssel | Seitenaufruf, Einwilligung, Scandaten | Übergeben Sie key im Anfragekörper |
| API-Schlüssel | Scan Webhook | X-Api-Key Header |
Antwortformat
API-Antworten verwenden zwei Formate, abhängig vom Endpunkt:
Standardantwort
Verwendet von Gesundheitscheck und Scan Webhook.
{
"success": true,
"data": {
"status": "ok"
}
} Leichtgewichtige Antwort
Verwendet von Beacon-Endpunkten (Seitenaufruf, Einwilligung, Scandaten) für minimalen Overhead.
{
"status": "ok"
} {"status": "ignored"} mit HTTP 200 zurück, um Fehler in navigator.sendBeacon() zu vermeiden. Gesundheitscheck
Gibt den Gesundheitsstatus der Anwendung und der unterstützenden Dienste zurück. Verwenden Sie ihn zur Überwachung, für Lastenausgleichsprüfungen und Docker-Gesundheitsprüfungen.
Antwort
{
"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
}
}
} Beispiel
curl https://your-instance.example.com/health Geolokalisierung
Gibt den Ländercode des Besuchers und den EU-Mitgliedsstatus zurück. Wird vom Einwilligungsskript verwendet, um geozielte Vorschriften anzuwenden (GDPR, CCPA).
Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
| country | string | ISO 3166-1 alpha-2 Code (kleingeschrieben) |
| in_eu | boolean | Ob das Land in der EU ist |
Antwort
{
"country": "dk",
"in_eu": true
} Beispiel
curl https://your-instance.example.com/api/v1/geo_ip Seitenaufruf Beacon
Protokolliert Seitenaufrufe und Bannerladeereignisse. Wird über navigator.sendBeacon() als multipart/form-data gesendet. Erhöht den täglichen Seitenaufrufzähler und puffert Cookie-Beobachtungen für die asynchrone Verarbeitung.
Anfragekörper multipart/form-data
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| key | string | Erforderlich | Ihr Website-Schlüssel |
| request_type | string | Erforderlich | banner_load oder banner_view |
| log_time | integer | Optional | Unix-Zeitstempel des Ereignisses |
| payload | JSON-String | Optional | Objekt mit consent_session_id, banner_id, url, cookies |
Antwort
{
"status": "ok"
} Beispiel
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)" Einwilligungsprotokoll
Protokolliert die GDPR-Einwilligungsprüfung, wenn ein Besucher die Einwilligung akzeptiert, ablehnt oder anpasst. Dies ist der primäre Compliance-Endpunkt.
Anfragekörper multipart/form-data
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| key | string | Erforderlich | Ihr Website-Schlüssel |
| conzent_id | string | Erforderlich | Session-Identifikator (40-stelliges Zufallszeichen) |
| log | JSON-String | Optional | Einwilligungsentscheidungen pro Cookie-Kategorie |
| consented_domain | string | Optional | Domain, in der die Einwilligung erteilt wurde |
| cookie_list_version | string | Optional | Hash der Cookie-Liste zum Zeitpunkt der Einwilligung |
| language | string | Optional | Sprache des Besuchers |
| country | string | Optional | Ländercode des Besuchers |
| consent_time | string | Optional | Client-seitiger Zeitstempel |
| tcf_data | string | Optional | IAB TCF v2.2 Einwilligungszeichen |
| gacm_data | string | Optional | Google Consent Mode v2-Daten |
| variant_id | integer | Optional | A/B-Test-Varianten-ID |
Antwort
{
"status": "ok"
} Beispiel
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" Scan-Daten Beacon
Empfängt client-seitige Cookie-Scandaten. Das Einwilligungsskript erkennt Cookies im Browser des Besuchers und meldet sie zur automatischen Kategorisierung. Daten werden in Redis gepuffert und asynchron verarbeitet.
Anfragekörper multipart/form-data
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| key | string | Erforderlich | Ihr Website-Schlüssel |
| payload | JSON-String | Erforderlich | Scan-Datenobjekt (siehe unten) |
Payload-Struktur
{
"scan_id": 123,
"action": "runscan",
"scan_url": "https://example.com/",
"consent_phase": "pre_consent",
"data": {
"cookies": [
{ "name": "_ga", "domain": ".example.com" }
]
}
} Antwort
{
"status": "ok"
} Beispiel
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/"}' Scanner Webhook
Empfängt Scanergebnisse von externen Scanner-Servern, wenn ein Cookie-Scan abgeschlossen ist. Authentifiziert über den X-Api-Key Header, der mit der SCANNER_WEBHOOK_SECRET Umgebungsvariable übereinstimmen muss.
Header
| Header | Erforderlich | Beschreibung |
|---|---|---|
| X-Api-Key | Erforderlich | Muss mit SCANNER_WEBHOOK_SECRET übereinstimmen |
| Content-Type | Erforderlich | application/json |
Anfragekörper application/json
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| action | string | Optional | webhook (Standard), runscan oder client_scan |
| scan_id | integer | Bedingt | Erforderlich für runscan / client_scan |
| scan_url | string | Bedingt | URL, die gescannt wurde |
| data | object | Optional | Scan-Ergebnisdaten (Cookies, Skripte) |
Antwort
{
"success": true,
"data": {
"status": "processed"
}
} Fehler
{
"success": false,
"error": "Unauthorized"
} Beispiel
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"}
]
}
}'