Liigu sisu juurde

Keel

Dokumentatsiooni menüü

REST API

Halda domeene, skannimisi ja nõusolekukirjeid üle HTTPS-i, ekspordi nõusolekutõendeid ja võta vastu allkirjastatud webhook'e. Autentimine, vead ja piirangud.

Viimati uuendatud 29. oktoober 2026

REST API võimaldab automatiseerida kõike, mida saad teha töölaual: lisada domeene, käivitada skannimisi, otsida ja eksportida nõusolekukirjeid ning saada webhook’e, kui midagi muutub. See on saadaval Pro- ja Enterprise-paketis.

Autentimine

Loo API-võti jaotises Settings → API keys. Võtmed kehtivad ühes tööruumis ning on kas ainult lugemiseks või lugemiseks ja kirjutamiseks. Saada võti bearer-tokenina:

curl https://api.cookiesh.eu/v1/domains \
  -H "Authorization: Bearer ck_sk_live_..."

Salajased võtmed algavad eesliitega ck_sk_. Ära kasuta neid kunagi brauseri koodis. Skriptimärgend vajab ainult sinu avalikku saidi ID-d.

Kõik päringud kasutavad HTTPS-i ja JSON-it. Baas-URL on https://api.cookiesh.eu/v1. Ajatemplid on ISO 8601 stringid UTC ajas.

Lõpp-punktid

Meetod Tee Kirjeldus
GET /domains Loetle tööruumi domeenid
POST /domains Lisa domeen
GET /domains/{id} Hangi domeen ja selle seaded
DELETE /domains/{id} Eemalda domeen
POST /domains/{id}/scans Käivita küpsiste skannimine
GET /domains/{id}/scans/{scan_id} Hangi skannimise olek ja tulemused
GET /domains/{id}/cookies Loetle liigitatud küpsised ja jälgijad
GET /consents Otsi nõusolekukirjeid
GET /consents/{consent_id} Hangi üks nõusolekukirje koos räsiahela tõendiga
POST /exports Käivita nõusolekukirjete eksport CSV- või JSON-vormingus
GET /exports/{id} Hangi ekspordi olek ja allalaadimise URL
DELETE /subjects/{user_id} Kustuta kõik kasutaja ID-ga seotud nõusolekukirjed

Näide: leia ühe külastaja nõusolekukirjed.

curl "https://api.cookiesh.eu/v1/consents?domain_id=dom_29xk&consent_id=cns_8Hq2Lw" \
  -H "Authorization: Bearer ck_sk_live_..."
{
  "data": [
    {
      "id": "cns_8Hq2Lw",
      "domain_id": "dom_29xk",
      "created_at": "2026-10-12T09:41:07Z",
      "region": "DE",
      "method": "banner",
      "banner_version": "v14",
      "categories": { "necessary": true, "preferences": false, "analytics": true, "marketing": false },
      "hash": "9f2c…e71a"
    }
  ],
  "next_cursor": null
}

Lehitsemine

Loendi lõpp-punktid tagastavad kuni 100 kirjet. Väiksema arvu küsimiseks anna parameeter limit. Kui tulemusi on rohkem, sisaldab vastus väärtust next_cursor. Anna see tagasi parameetrina cursor, et saada järgmine lehekülg. Kursorid kehtivad 24 tundi.

Vead

Vead kasutavad standardseid HTTP olekukoode ja ühtset kehavormingut:

{
  "error": {
    "type": "invalid_request",
    "message": "domain_id is required",
    "request_id": "req_4Kd92"
  }
}
Olek Tähendus
400 Päring on vigane. Teade selgitab põhjust.
401 API-võti puudub või on kehtetu.
403 Võti on ainult lugemiseks või sinu pakett ei sisalda seda funktsiooni.
404 Ressurssi selles tööruumis ei ole.
429 Jõudsid päringute piirmäärani. Proovi uuesti päises Retry-After toodud sekundite möödudes.
5xx Meie poolel läks midagi valesti. Proovi uuesti eksponentsiaalselt kasvava ooteajaga.

Toega ühendust võttes lisa väärtus request_id.

Päringute piirmäärad

Pro-paketi tööruumid saavad teha 600 päringut minutis ja Enterprise-paketi tööruumid 3000. Iga vastus sisaldab päiseid RateLimit-Limit, RateLimit-Remaining ja RateLimit-Reset. Ekspordid ei lähe töötamise ajal piirmäära arvesse.

Webhook’id

Lisa lõpp-punkt jaotises Settings → Webhooks ja vali sündmused, mida soovid saada:

Sündmus Saadetakse, kui
consent.created Külastaja salvestab uue valiku
consent.updated Külastaja muudab varasemat valikut
scan.completed Küpsiste skannimine lõpeb
scan.new_items Skannimine leiab küpsiseid või jälgijaid, mis vajavad ülevaatust
usage.threshold Tööruum jõuab 80% või 100%-ni oma igakuistest nõusolekulogidest

Iga edastus on POST-päring JSON-kehaga ja päisega Cookiesh-Signature. Päis sisaldab ajatemplit ja väärtuse timestamp.body HMAC-SHA256 allkirja, mis on loodud sinu lõpp-punkti allkirjastamissaladusega. Kontrolli seda, enne kui andmeid usaldad:

import crypto from 'node:crypto';

export function verify(rawBody: string, header: string, secret: string): boolean {
  const { t, v1 } = Object.fromEntries(header.split(',').map((part) => part.split('=')));
  if (Math.abs(Date.now() / 1000 - Number(t)) > 300) return false; // lükka vanad edastused tagasi
  const expected = crypto.createHmac('sha256', secret).update(`${t}.${rawBody}`).digest('hex');
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(v1));
}

Vasta 10 sekundi jooksul olekuga 2xx. Ebaõnnestunud edastusi proovitakse uuesti eksponentsiaalselt kasvava ooteajaga kuni 24 tundi. Sündmused võivad saabuda rohkem kui üks kord, seega kasuta duplikaatide eiramiseks sündmuse väärtust id.