# API d'Audience

## bulkSetTags

`POST` `https://api.pushwoosh.com/api/v2/audience/bulkSetTags`

Définit les valeurs des tags pour la liste d'appareils.

<Aside type="caution" title="Important">
  Lorsque vous utilisez la méthode `bulkSetTags`, assurez-vous que les valeurs des tags sont définies pour un minimum de 50 appareils. Pour définir les tags pour un seul appareil, utilisez la méthode [`setTags`](/fr/developer/api-reference/device-api/#settags).
</Aside>

#### Corps de la requête

| Nom                                            | Type    | Description                                                                 |
| ---------------------------------------------- | ------- | --------------------------------------------------------------------------- |
| application\*  | String  | [Code d'application Pushwoosh](/fr/developer/api-reference/api-identifiers/#application-code)                                                     |
| auth\*         | String  | [Jeton d'accès API](/fr/developer/api-reference/api-identifiers/#api-access-token) depuis le Panneau de Contrôle Pushwoosh.                              |
| create\_missing\_tags                          | Boolean | Si vrai, les tags manquants sont créés automatiquement.                            |
| devices\*      | Object  | Tableau d'appareils.                                                           |
| devices.hwid                                   | String  | Peut être utilisé pour identifier un appareil au lieu de user\_id ou push\_token. [En savoir plus](/fr/developer/api-reference/api-identifiers/#hardware-id)         |
| devices.user\_id                               | String  | Peut être utilisé pour identifier un utilisateur au lieu de hwid ou push\_token. [En savoir plus](/fr/developer/api-reference/api-identifiers/#user-id)               |
| devices.push\_token                            | String  | Peut être utilisé pour identifier un appareil au lieu de hwid ou user\_id. [En savoir plus](/fr/developer/api-reference/api-identifiers/#push-token)                |
| devices.list\_operator                         | String  | Définit comment définir les valeurs pour les [tags](/fr/developer/api-reference/api-identifiers/#tag) de type liste : set, append, ou remove |
| devices.tags\* | Object  | Valeurs à définir pour les tags spécifiés.                                       |

<Tabs>
  <TabItem label="OK">
    ```json
    {
      "request_id": "request_id to use in GET method to obtain job status",
      "status": "Pending"
    }
    ```
  </TabItem>

  <TabItem label="Erreur">
    ```json
    {
      "message": "invalid request"
    }
    ```
  </TabItem>
</Tabs>


```json title="Requête :"
{
  "application": "application code",   // required. Pushwoosh app code
  "auth": "Pushwoosh auth token",      // required. API access token from Pushwoosh Control Panel
  "create_missing_tags": false,        // optional. Should automatically create missing tags
  "devices": [{                        // required. Array of devices
    "hwid": "device hwid",             // optional. Can be used to identify a device instead of
                                       //           "user_id" or "push_token".
    "user_id": "user ID",              // optional. Can be used to identify a user instead of "hwid" or "push_token".
    "push_token": "device push token", // optional. Can be used to identify a device instead of "hwid" or "user_id".
    "list_operator": "set",            // required. For list tags. Defines how to set values for
                                       //           tags of the list type: set, append, or remove
    "tags": {                          // required. Values to set for the tags specified.
      "tag_name": "tagvalue",          //           use correct value type
      "tag_name2": "tagvalue2"
    }
  }]
}

```

```json title="Réponse :"
{
  "request_id": "request_id to use in GET method to obtain job status",
  "status": "Pending"
}
```

## Statut de bulkSetTags

`GET` `https://api.pushwoosh.com/api/v2/audience/bulkSetTags/{request_id}?detailed=false`

Retourne le statut de l'opération `/bulkSetTags`

#### Paramètres de chemin

| Nom         | Type   | Description                                |
| ----------- | ------ | ------------------------------------------ |
| request\_id | String | ID de la requête de l'appel `/bulkSetTags` précédent |

#### Paramètres de requête

| Nom      | Type    | Description                                             |
| -------- | ------- | ------------------------------------------------------- |
| detailed | Boolean | (vrai/faux) indique s'il faut retourner des informations détaillées par appareil |

```json title="Réponse :"
{
  "request_id": "id of the request",
  "status": "Completed",          // also "Pending", "Failed"
  "progress": 100,                // jobs progress 0-100
  "devices_success": 100,         // good devices
  "devices_not_found": 0,         // devices not found in Pushwoosh
  "devices_failed": 0,            // errored
  "devices": [{                   // device report (only in detailed = true)
    "hwid": "device hwid",
    "status": "done",             // also "failed", "not found"
    "tags": {
      "tagName": "ok",
      "tagName2": "tag not found",
      "tagName3": "wrong value. expect :string"
    }
  }]
}

```

## bulkRegisterDevice

Enregistre plusieurs appareils dans Pushwoosh en une seule requête. Elle permet également de spécifier divers tags pour chaque appareil.

`POST` `https://api.pushwoosh.com/api/v2/audience/bulkRegisterDevice`

### Paramètres du corps de la requête

| Paramètre | Type | Requis | Description |
| :---- | ----- | ----- | ----- |
| application | string | Oui | [Code d'application Pushwoosh](/fr/developer/api-reference/api-identifiers/#application-code) |
| auth | string | Oui | [Jeton d'accès API](/fr/developer/api-reference/api-identifiers/#api-access-token). |
| devices | array | Oui | Un tableau d'objets appareil. Chaque objet représente un appareil et ses données associées. Voir les détails dans le tableau **Paramètres de l'objet appareil** ci-dessous. |

#### Paramètres de l'objet appareil

| Paramètre       | Type     | Requis | Description                                                                                     |
|-----------------|----------|----------|-------------------------------------------------------------------------------------------------|
| hwid          | string | Oui      | [L'ID matériel (hardware ID)](/fr/developer/api-reference/api-identifiers/#hardware-id) ou identifiant unique de l'appareil.                                           |
| push_token    | string | Oui      | [Jeton Push (Push token)](/fr/developer/api-reference/api-identifiers/#push-token) pour l'appareil.                                                                     |
| platform      | integer| Oui      | L'identifiant de la plateforme. [En savoir plus](/fr/developer/api-reference/messages-api/api-prerequisites/#platforms) |
| list_operator | string | Non       | Détermine l'action pour les tags de type liste : <br/> - **"append"** : Ajoute la valeur spécifiée à la liste de tags. <br/> - **"remove"** : Supprime la valeur spécifiée de la liste de tags. <br/> **Note** : Si le paramètre `list_operator` n'est pas spécifié, toutes les valeurs existantes dans la liste de tags seront remplacées par les valeurs fournies. |
| tags          | object | Non       | [Tags](/fr/developer/api-reference/api-identifiers/#tag) personnalisés assignés à l'appareil. Les tags sont des paires clé-valeur utilisées pour la segmentation.            |



#### Exemple de requête

```json
{
  "application": "application code",   // required. Pushwoosh app code
  "auth": "Pushwoosh auth token",      // required. API access token from Pushwoosh Control Panel
  "devices": [{                        // required. Array of devices
    "hwid": "device hwid",             // required. Unique identifier for the device (can be an email).
    "push_token": "device push token", // required. Push notification token for the device.
    "platform": 14,                    // required. Device platform (e.g., 14 for email).
    "list_operator": "append",         // optional. For list tags. Adds or removes the specified value(s) from the tag of list type.
    "tags": {                          // optional. Values to set for the specified tags.
      "language": "en",                //           use correct value type.
      "CSV_Import": "summer_camp"
    }
  },
  {
    "hwid": "device hwid 2",           // required. Unique identifier for the second device.
    "push_token": "device push token 2", // required. Push notification token for the device.
    "platform": 14,                    // required. Device platform.
    "list_operator": "remove",         // optional. Adds or removes values from tags of the list type.
    "tags": {                          // optional. Values to remove from the specified tags.
      "language": "en",
      "CSV_Import": "summer_camp2"
    }
  },
  {
    "hwid": "device hwid 3",           // required. Unique identifier for the third device.
    "push_token": "device push token 3", // required. Push notification token for the device.
    "platform": 14,                    // required. Device platform.
    "tags": {                          // optional. Values to set for the specified tags.
      "language": "en",
      "CSV_Import": "summer_camp3"
    }
  }]
}

```

### Réponse

La méthode répond avec un ID d'opération, qui peut être utilisé pour suivre le statut et les résultats du processus d'enregistrement en masse.

```json
{
  "request_id": "request_id to use in GET method to obtain job status",
  "status": "Pending"
}

```

## Statut de bulkRegisterDevice

Vous pouvez vérifier le statut d'un processus d'enregistrement en masse en effectuant la requête **GET** suivante :

`GET` `https://api.pushwoosh.com/api/v2/audience/bulkRegisterDevice/{request_id}?detailed=true`

| Paramètre | Type | Requis | Description |
| ----- | ----- | ----- | ----- |
| request_id | string | Oui | L'ID de requête retourné par la requête POST. |
| detailed | boolean | Non | Si défini sur `vrai`, la réponse inclut des résultats détaillés pour chaque appareil enregistré. |


#### Exemple de réponse

```json
{
  "request_id": "9a2e1a14-XXXX-46c3-XXXX-c254b25d3782",
  "status": "Completed",
  "progress": 100,
  "devices_success": 4,
  "devices": [
    {
      "hwid": "user1@example.com",
      "status": "done"
    },
    {
      "hwid": "user2@example.com",
      "status": "done"
    },
    {
      "hwid": "user3@example.com",
      "status": "done"
    },
    {
      "hwid": "invalid_email@example.com",
      "status": "failed"
    }
  ]
}

```

## bulkUnregisterDevice

Désenregistre plusieurs appareils de Pushwoosh en une seule requête.

`POST` `https://api.pushwoosh.com/api/v2/audience/bulkUnregisterDevice`

### Paramètres du corps de la requête

| Paramètre | Type | Requis | Description |
| :---- | ----- | ----- | ----- |
| application | string | Oui | [Code d'application Pushwoosh](/fr/developer/api-reference/api-identifiers/#application-code) |
| auth | string | Oui | [Jeton d'accès API](/fr/developer/api-reference/api-identifiers/#api-access-token) |
| devices | array | Oui | Un tableau d'objets appareil. Chaque objet représente un appareil et ses données associées. Voir les détails dans le tableau **Paramètres de l'objet appareil** ci-dessous. |

#### Paramètres de l'objet appareil

| Paramètre       | Type     | Requis | Description                                                                                     |
|-----------------|----------|----------|-------------------------------------------------------------------------------------------------|
| hwid          | string | Oui      | L'ID matériel ou identifiant unique de l'appareil. [En savoir plus](/fr/developer/api-reference/api-identifiers/#hardware-id)                                          |



#### Exemple de requête

```json
{
  "application": "application code",   // required. Pushwoosh app code
  "auth": "Pushwoosh auth token",      // required. API access token from Pushwoosh Control Panel
  "devices": [{                        // required. Array of devices
    "hwid": "device hwid",             // required. Unique identifier for the device (can be an email).
  },
  {
    "hwid": "device hwid 2",           // required. Unique identifier for the second device.
  },
  {
    "hwid": "device hwid 3",           // required. Unique identifier for the third device.
  }]
}

```

### Réponse

La méthode répond avec un ID d'opération, qui peut être utilisé pour suivre le statut et les résultats du processus en masse.

```json
{
  "request_id": "request_id to use in GET method to obtain job status",
  "status": "Pending"
}

```

## Statut de bulkUnregisterDevice

Vous pouvez vérifier le statut d'un processus de désenregistrement en masse en effectuant la requête **GET** suivante :

`GET` `https://api.pushwoosh.com/api/v2/audience/bulkUnregisterDevice/{request_id}?detailed=true`

| Paramètre | Type | Requis | Description |
| ----- | ----- | ----- | ----- |
| request_id | string | Oui | L'ID de requête retourné par la requête POST. |
| detailed | boolean | Non | Si défini sur `vrai`, la réponse inclut des résultats détaillés pour chaque appareil désenregistré. |


#### Exemple de réponse

```json
{
  "request_id": "9a2e1a14-XXXX-46c3-XXXX-c254b25d3782",
  "status": "Completed",
  "progress": 100,
  "devices_success": 4,
  "devices": [
    {
      "hwid": "user1@example.com",
      "status": "done"
    },
    {
      "hwid": "user2@example.com",
      "status": "done"
    },
    {
      "hwid": "user3@example.com",
      "status": "done"
    },
    {
      "hwid": "invalid_email@example.com",
      "status": "failed"
    }
  ]
}

```