API REST

Deux endpoints publics, aucune authentification requise (le siteId sert de clé). Servis sous votre instance Palladium.

GET /api/consent/{siteId}

Renvoie la configuration de la bannière (textes, couleurs, catégories, cookies, logo). Appelé automatiquement par palladium.js au chargement.

Paramètres

siteIdPathIdentifiant du domaine.langQuery (optionnel)Code BCP-47 préféré du visiteur.Accept-LanguageHeaderUtilisé en repli si lang est absent.
ParamètrePositionDescription

Codes de réponse

200Configuration servie.404 site_not_foundsiteId inconnu.403 domain_pausedDomaine en pause dans la console.403 origin_mismatchHostname de la requête ≠ celui enregistré.429Limite de débit atteinte (60 req/min/IP).
CodeSignification

POST /api/consent

Enregistre la décision du visiteur. Appelé par palladium.js après Accepter / Refuser / Enregistrer.

Corps

{
  "siteId":      "plm_a9f4e2c7b3",
  "consentId":   "abcd1234",
  "acceptedAll": true,
  "preferences": true,
  "statistics":  true,
  "marketing":   true,
  "userAgent":   "Mozilla/5.0 …"
}

Stockage

Le serveur dérive et stocke :

  • L'horodatage et l'identifiant du consentement.
  • Un hash SHA-256 de l'IP (jamais l'IP brute).
  • La géolocalisation anonyme (pays, région, ville) résolue à partir de l'IP via ip-api.com — l'IP est ensuite jetée.
  • Le User-Agent (tronqué à 500 caractères).
CORS : les deux endpoints sont ouverts à toutes origines (Access-Control-Allow-Origin: *) car le snippet doit pouvoir être chargé depuis n'importe quel site enregistré. La validation de l'origine se fait sur l'Origin reçu, pas via une whitelist CORS.