---
title: "Consentement Visiteur"
method: POST
path: "/api/site/consentement"
tags: ["site"]
---

# Consentement Visiteur

`POST /api/site/consentement`

## Request

- Base URL: `https://api.brm-chronographes.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.brm-chronographes.com/api/site/consentement`
- Auth: none declared

Enregistre un choix de consentement — **y compris sans compte**.

C'est le manque que le bandeau cookies rencontrait : le registre s'indexait
sur l'email, donc la personne qui refuse la mesure d'audience avant même
d'avoir un compte — c'est-à-dire la quasi-totalité des visiteurs — ne
laissait aucune trace. Or c'est exactement ce refus-là qu'il faut pouvoir
prouver.

**Ce qui identifie un visiteur ici est un jeton opaque**, tiré au hasard par
le serveur et rangé par le site dans le navigateur. Il ne désigne qu'un
appareil, il ne se déduit de rien, et il ne se recoupe avec rien. Ce n'est
pas une empreinte de navigateur : on ne mesure ni l'écran, ni les polices,
ni quoi que ce soit d'autre.

**Et l'adresse IP n'est jamais conservée en clair** : elle est tronquée de
son dernier octet avant écriture, comme partout ailleurs dans le Hub. Elle
situe le consentement sans désigner l'abonné, ce qui est le maximum que la
preuve réclame et le maximum que le règlement tolère.

Si une session est ouverte, le geste est AUSSI rattaché à la fiche client :
le même choix vaut alors pour la personne et pour son navigateur.

Point d'entrée public par nature — un bandeau s'affiche avant toute
connexion — donc limité en débit.

## Headers

- `x-site-jeton` string

## Request body

- ConsentementVisiteur: Le choix d'un visiteur, avec ou sans compte. `visiteur` est le jeton opaque que le site garde dans le navigateur. Absent ou mal formé, le serveur en pose un neuf et le rend : le bandeau n'a jamais à en fabriquer un lui-même, et n'a donc jamais l'occasion d'en fabriquer un devinable. `choix` porte les catégories du bandeau — ``{"mesure": true, "marketing": false}``. Les noms viennent du bandeau, pas du serveur : figer la liste ici obligerait à redéployer l'API pour ajouter une case.
  - `visiteur` string, nullable
  - `choix` object, nullable
  - `cgv` boolean, nullable
  - `newsletter` boolean, nullable
  - `langue` string
  - `page` string, nullable
  - `source` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/brm-chronographes/apis/brm-hub.md) · [All operations](https://skmtc.dev/brm-chronographes/apis/brm-hub/llms.txt) · [OpenAPI document](https://skmtc.dev/brm-chronographes/apis/brm-hub/revisions/f4342ec9ac98?raw)
