# GET/PUT Consents / préférences

## Consents utilisateur

<mark style="color:blue;">`GET`</mark> `https://api.commander1.com/engage/user/`

Ce endpoint vous permet d’obtenir le consentement de la catégorie pour un utilisateur spécifique

#### Paramètres de requête

| Nom      | Type    | Description         |
| -------- | ------- | ------------------- |
| token    | string  | Jeton de sécurité   |
| user\_id | string  | ID de l’utilisateur |
| site     | integer | ID du site          |

{% tabs %}
{% tab title="200 Consentement récupéré avec succès." %}

```javascript
{
    "user_privacy_optin": 1,
    "user_privacy_categories": [
      "11",
      "12",
      "13"
    ]
}
```

{% endtab %}

{% tab title="404 Impossible de trouver un utilisateur correspondant à cette requête." %}

```javascript
{
    "message": "Person not found"
}
```

{% endtab %}
{% endtabs %}

## Consents visiteur

<mark style="color:blue;">`GET`</mark> `https://api.commander1.com/v1.0/engage/visitors/`

Ce endpoint vous permet d’obtenir le consentement de la catégorie pour un visiteur spécifique

#### Paramètres de requête

| Nom      | Type    | Description                                 |
| -------- | ------- | ------------------------------------------- |
| callback | string  | (optionnel) Callback pour une requête jsonp |
| token    | string  | Jeton de sécurité                           |
| site     | integer | ID du site                                  |
| tc\_id   | String  | Optionnel. ID cookie de l’utilisateur       |

{% tabs %}
{% tab title="200 Exemple avec réponse optin" %}

```javascript
{
    "user_privacy_optin": 1,
    "user_privacy_categories": [
      "11",
      "12",
      "13"
    ]
}
```

{% endtab %}

{% tab title="202 Exemple avec réponse optout" %}

```
{
    "user_privacy_optin": 0,
    "user_privacy_categories": []
}
```

{% endtab %}

{% tab title="404 " %}

```
{
    "message": "visitor not found"
}
```

{% endtab %}
{% endtabs %}

## User

<mark style="color:orange;">`PUT`</mark> `https://api.commander1.com/engage/user/`

Insérer ou mettre à jour une préférence dans la base de données (nécessite que le module DataCommander soit activé)

#### Paramètres de requête

| Nom      | Type   | Description                                                         |
| -------- | ------ | ------------------------------------------------------------------- |
| site     | string | ID du site (compte)                                                 |
| user\_id | string | ID de l’utilisateur. Requis si le paramètre tc\_id n’est pas défini |
| token    | string | Jeton de sécurité                                                   |

{% tabs %}
{% tab title="200 " %}

```
{"success":true}
```

{% endtab %}
{% endtabs %}

**Syntaxe et limitations**

* Le payload json est représenté par une clé/valeur pour chaque préférence.
* Chaque propriété de préférence (clé) commence par "preferences." suivie du nom de la préférence : `preferences.your_preference_name`
* Le nom de la préférence ne doit pas contenir d’espace, de point ni de caractères spéciaux. Son format est `[A-Za-z0-9_-]`
* La valeur de la préférence peut contenir des espaces, des points, mais pas de caractères spéciaux.
* L'API accepte un **maximum de 20 préférences**

**Exemple de requête**

`PUT`

<https://api.commander1.com/engage/user/?site=1234\\&user\\_id=1234\\&token=WvNIX8955cnZ7WF0f632s0Wb99Ql3rtA>

```
{
  "preferences": {
    "news_monthly": true,
    "news_sales": true
  }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.commandersact.com/fr/fonctionnalites/consent-management/rest-data-api/get-put-consents-preferences.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
