API Referens
Integrera med Conzent Consent Management Platform. Dessa slutpunkter driver samtyckesbanner, geolokalisering, samtyckesgranskning och kakskanning.
Alla slutpunkter är relativa till din självhostade Conzent-instans. Byt ut bas-URL:en mot din faktiska domän.
Autentisering
De flesta slutpunkter är offentliga — de anropas från samtyckesbanner-skriptet som körs i dina besökares webbläsare.
Slutpunkter som accepterar data använder en Webbplatsnyckel för att identifiera vilken webbplats begäran tillhör. Hitta din webbplatsnyckel i Conzent-instrumentpanelen under Webbplatser.
X-Api-Key-huvudet. Nyckeln måste matcha SCANNER_WEBHOOK_SECRET-miljövariabeln. | Auth-metod | Används av | Hur |
|---|---|---|
| Ingen | Hälsokontroll, Geolokalisering | Ingen autentisering krävs |
| Webbplatsnyckel | Sidvisning, Samtycke, Skanningsdata | Skicka key i begärningskroppen |
| API-nyckel | Skanningswebhook | X-Api-Key-huvud |
Svarformat
API-svar använder två format beroende på slutpunkten:
Standard Svar
Används av Hälsokontroll och Skanningswebhook.
{
"success": true,
"data": {
"status": "ok"
}
} Lättvikts Svar
Används av signaler (Sidvisning, Samtycke, Skanningsdata) för minimal overhead.
{
"status": "ok"
} {"status": "ignored"} med HTTP 200 för att undvika fel i navigator.sendBeacon(). Hälsokontroll
Returnerar hälsostatus för applikationen och stödjande tjänster. Används för övervakning, lastbalanseringskontroller och Docker hälsokontroller.
Svar
{
"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
}
}
} Exempel
curl https://your-instance.example.com/health Geolokalisering
Returnerar besökarens landskod och EU-medlemskapsstatus. Används av samtyckesskriptet för att tillämpa geotargeterade regler (GDPR, CCPA).
Svarsfält
| Fält | Typ | Beskrivning |
|---|---|---|
| country | string | ISO 3166-1 alpha-2 kod (gemener) |
| in_eu | boolean | Om landet är i EU |
Svar
{
"country": "dk",
"in_eu": true
} Exempel
curl https://your-instance.example.com/api/v1/geo_ip Sidvisningssignal
Registrerar sidvisningar och bannerladdningsevent. Skickas via navigator.sendBeacon() som multipart/form-data. Ökar den dagliga sidvisningsräknaren och buffrar kakobservationer för asynkron bearbetning.
Begärningskropp multipart/form-data
| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| key | string | Krävs | Din webbplats webbplatsnyckel |
| request_type | string | Krävs | banner_load eller banner_view |
| log_time | integer | Valfritt | Unix-tidsstämpel för händelsen |
| payload | JSON-sträng | Valfritt | Objekt med consent_session_id, banner_id, url, cookies |
Svar
{
"status": "ok"
} Exempel
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)" Samtyckeslogg
Registrerar GDPR-samtyckesgranskningen när en besökare accepterar, avvisar eller anpassar samtycke. Detta är den primära efterlevnadsslutpunkten.
Begärningskropp multipart/form-data
| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| key | string | Krävs | Din webbplats webbplatsnyckel |
| conzent_id | string | Krävs | Sessionsidentifierare (40-teckens slumpmässig sträng) |
| log | JSON-sträng | Valfritt | Samtyckesval per kakkategori |
| consented_domain | string | Valfritt | Domän där samtycke gavs |
| cookie_list_version | string | Valfritt | Kaklista versionshash vid samtyckestidpunkt |
| language | string | Valfritt | Besökarens språkkod |
| country | string | Valfritt | Besökarens landskod |
| consent_time | string | Valfritt | Tidsstämpel på klientsidan |
| tcf_data | string | Valfritt | IAB TCF v2.2 samtyckesträng |
| gacm_data | string | Valfritt | Google Consent Mode v2-data |
| variant_id | integer | Valfritt | A/B testvariant-ID |
Svar
{
"status": "ok"
} Exempel
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" Skanningsdatabanner
Tar emot klientbaserad kakskanningsdata. Samtyckesskriptet upptäcker kakor i besökarens webbläsare och rapporterar dem för automatisk kategorisering. Data buffras i Redis och bearbetas asynkront.
Begärningskropp multipart/form-data
| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| key | string | Krävs | Din webbplats webbplatsnyckel |
| payload | JSON-sträng | Krävs | Skanningsdataobjekt (se nedan) |
Payload-struktur
{
"scan_id": 123,
"action": "runscan",
"scan_url": "https://example.com/",
"consent_phase": "pre_consent",
"data": {
"cookies": [
{ "name": "_ga", "domain": ".example.com" }
]
}
} Svar
{
"status": "ok"
} Exempel
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
Tar emot skanningsresultat från externa skannerservrar när en kakskanning är klar. Autentiseras via X-Api-Key-huvudet som matchar SCANNER_WEBHOOK_SECRET-miljövariabeln.
Huvuden
| Header | Krävs | Beskrivning |
|---|---|---|
| X-Api-Key | Krävs | Måste matcha SCANNER_WEBHOOK_SECRET |
| Content-Type | Krävs | application/json |
Begärningskropp application/json
| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| action | string | Valfritt | webhook (standard), runscan, eller client_scan |
| scan_id | integer | Villkorlig | Krävs för runscan / client_scan |
| scan_url | string | Villkorlig | URL som skannades |
| data | object | Valfritt | Skanningsresultatdata (kakor, skript) |
Svar
{
"success": true,
"data": {
"status": "processed"
}
} Fel
{
"success": false,
"error": "Unauthorized"
} Exempel
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"}
]
}
}'