# Audience API

## bulkSetTags

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

Setzt Tag-Werte für die Liste der Geräte.

<Aside type="caution" title="Wichtig">
  Bei Verwendung der Methode `bulkSetTags` stellen Sie sicher, dass Tag-Werte für mindestens 50 Geräte festgelegt werden. Um Tags für ein einzelnes Gerät festzulegen, verwenden Sie die Methode [`setTags`](/de/developer/api-reference/device-api/#settags).
</Aside>

#### Anfragekörper

| Name                                           | Typ    | Beschreibung                                                                 |
| ---------------------------------------------- | ------- | --------------------------------------------------------------------------- |
| application\*  | String  | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code)                                                     |
| auth\*         | String  | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel.                              |
| create\_missing\_tags                          | Boolean | Wenn wahr, werden fehlende Tags automatisch erstellt.                            |
| devices\*      | Object  | Array von Geräten.                                                           |
| devices.hwid                                   | String  | Kann verwendet werden, um ein Gerät anstelle von user\_id oder push\_token zu identifizieren. [Mehr erfahren](/de/developer/api-reference/api-identifiers/#hardware-id)         |
| devices.user\_id                               | String  | Kann verwendet werden, um einen Benutzer anstelle von hwid oder push\_token zu identifizieren. [Mehr erfahren](/de/developer/api-reference/api-identifiers/#user-id)               |
| devices.push\_token                            | String  | Kann verwendet werden, um ein Gerät anstelle von hwid oder user\_id zu identifizieren. [Mehr erfahren](/de/developer/api-reference/api-identifiers/#push-token)                |
| devices.list\_operator                         | String  | Definiert, wie Werte für [Tags](/de/developer/api-reference/api-identifiers/#tag) vom Listentyp gesetzt werden: set, append oder remove |
| devices.tags\* | Object  | Werte, die für die angegebenen Tags gesetzt werden sollen.                                       |

<Tabs>
  <TabItem label="OK">
    ```json
    {
      "request_id": "request_id, die in der GET-Methode verwendet wird, um den Job-Status abzurufen",
      "status": "Pending"
    }
    ```
  </TabItem>

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


```json title="Anfrage:"
{
  "application": "application code",   // erforderlich. Pushwoosh-App-Code
  "auth": "Pushwoosh auth token",      // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel
  "create_missing_tags": false,        // optional. Soll fehlende Tags automatisch erstellen
  "devices": [{                        // erforderlich. Array von Geräten
    "hwid": "device hwid",             // optional. Kann verwendet werden, um ein Gerät anstelle von
                                       //           "user_id" oder "push_token" zu identifizieren.
    "user_id": "user ID",              // optional. Kann verwendet werden, um einen Benutzer anstelle von "hwid" oder "push_token" zu identifizieren.
    "push_token": "device push token", // optional. Kann verwendet werden, um ein Gerät anstelle von "hwid" oder "user_id" zu identifizieren.
    "list_operator": "set",            // erforderlich. Für Listentags. Definiert, wie Werte für
                                       //           Tags vom Listentyp gesetzt werden: set, append oder remove
    "tags": {                          // erforderlich. Werte, die für die angegebenen Tags gesetzt werden sollen.
      "tag_name": "tagvalue",          //           korrekten Wertetyp verwenden
      "tag_name2": "tagvalue2"
    }
  }]
}

```

```json title="Antwort:"
{
  "request_id": "request_id, die in der GET-Methode verwendet wird, um den Job-Status abzurufen",
  "status": "Pending"
}
```

## bulkSetTags-Status

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

Gibt den Status der `/bulkSetTags`-Operation zurück

#### Pfadparameter

| Name        | Typ   | Beschreibung                                |
| ----------- | ------ | ------------------------------------------ |
| request\_id | String | Anfrage-ID vom vorherigen `/bulkSetTags`-Aufruf |

#### Abfrageparameter

| Name     | Typ    | Beschreibung                                             |
| -------- | ------- | ------------------------------------------------------- |
| detailed | Boolean | (true/false) ob detaillierte Informationen pro Gerät zurückgegeben werden sollen |

```json title="Antwort:"
{
  "request_id": "id of the request",
  "status": "Completed",          // auch "Pending", "Failed"
  "progress": 100,                // Job-Fortschritt 0-100
  "devices_success": 100,         // erfolgreiche Geräte
  "devices_not_found": 0,         // Geräte nicht in Pushwoosh gefunden
  "devices_failed": 0,            // fehlerhaft
  "devices": [{                   // Gerätebericht (nur bei detailed = true)
    "hwid": "device hwid",
    "status": "done",             // auch "failed", "not found"
    "tags": {
      "tagName": "ok",
      "tagName2": "tag not found",
      "tagName3": "wrong value. expect :string"
    }
  }]
}

```

## bulkRegisterDevice

Registriert mehrere Geräte in Pushwoosh in einer einzigen Anfrage. Es ermöglicht auch die Angabe verschiedener Tags für jedes Gerät.

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

### Parameter des Anfragekörpers

| Parameter | Typ | Erforderlich | Beschreibung |
| :---- | ----- | ----- | ----- |
| application | string | Ja | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code) |
| auth | string | Ja | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token). |
| devices | array | Ja | Ein Array von Geräteobjekten. Jedes Objekt repräsentiert ein Gerät und seine zugehörigen Daten. Details finden Sie in der Tabelle **Parameter des Geräteobjekts** unten. |

#### Parameter des Geräteobjekts

| Parameter       | Typ     | Erforderlich | Beschreibung                                                                                     |
|-----------------|----------|----------|-------------------------------------------------------------------------------------------------|
| hwid          | string | Ja      | [Die Hardware-ID](/de/developer/api-reference/api-identifiers/#hardware-id) oder der eindeutige Bezeichner für das Gerät.                                           |
| push_token    | string | Ja      | [Push-Token](/de/developer/api-reference/api-identifiers/#push-token) für das Gerät.                                                                     |
| platform      | integer| Ja      | Der Plattformbezeichner. [Mehr erfahren](/de/developer/api-reference/messages-api/api-prerequisites/#platforms) |
| list_operator | string | Nein       | Bestimmt die Aktion für Tags vom Listentyp: <br/> - **"append"**: Fügt den angegebenen Wert zur Tag-Liste hinzu. <br/> - **"remove"**: Entfernt den angegebenen Wert aus der Tag-Liste. <br/> **Hinweis**: Wenn der Parameter `list_operator` nicht angegeben ist, werden alle vorhandenen Werte in der Tag-Liste durch die bereitgestellten Werte ersetzt. |
| tags          | object | Nein       | Benutzerdefinierte [Tags](/de/developer/api-reference/api-identifiers/#tag), die dem Gerät zugewiesen sind. Tags sind Schlüssel-Wert-Paare, die zur Segmentierung verwendet werden.            |



#### Anfragebeispiel

```json
{
  "application": "application code",   // erforderlich. Pushwoosh-App-Code
  "auth": "Pushwoosh auth token",      // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel
  "devices": [{                        // erforderlich. Array von Geräten
    "hwid": "device hwid",             // erforderlich. Eindeutiger Bezeichner für das Gerät (kann eine E-Mail sein).
    "push_token": "device push token", // erforderlich. Push-Benachrichtigungstoken für das Gerät.
    "platform": 14,                    // erforderlich. Geräteplattform (z. B. 14 für E-Mail).
    "list_operator": "append",         // optional. Für Listentags. Fügt den/die angegebenen Wert(e) zum Tag vom Listentyp hinzu oder entfernt ihn/sie.
    "tags": {                          // optional. Werte, die für die angegebenen Tags gesetzt werden sollen.
      "language": "en",                //           korrekten Wertetyp verwenden.
      "CSV_Import": "summer_camp"
    }
  },
  {
    "hwid": "device hwid 2",           // erforderlich. Eindeutiger Bezeichner für das zweite Gerät.
    "push_token": "device push token 2", // erforderlich. Push-Benachrichtigungstoken für das Gerät.
    "platform": 14,                    // erforderlich. Geräteplattform.
    "list_operator": "remove",         // optional. Fügt Werte zu Tags vom Listentyp hinzu oder entfernt sie.
    "tags": {                          // optional. Werte, die aus den angegebenen Tags entfernt werden sollen.
      "language": "en",
      "CSV_Import": "summer_camp2"
    }
  },
  {
    "hwid": "device hwid 3",           // erforderlich. Eindeutiger Bezeichner für das dritte Gerät.
    "push_token": "device push token 3", // erforderlich. Push-Benachrichtigungstoken für das Gerät.
    "platform": 14,                    // erforderlich. Geräteplattform.
    "tags": {                          // optional. Werte, die für die angegebenen Tags gesetzt werden sollen.
      "language": "en",
      "CSV_Import": "summer_camp3"
    }
  }]
}

```

### Antwort

Die Methode antwortet mit einer Operations-ID, die verwendet werden kann, um den Status und die Ergebnisse des Massenregistrierungsprozesses zu verfolgen.

```json
{
  "request_id": "request_id, die in der GET-Methode verwendet wird, um den Job-Status abzurufen",
  "status": "Pending"
}

```

## bulkRegisterDevice-Status

Sie können den Status eines Massenregistrierungsprozesses überprüfen, indem Sie die folgende **GET**-Anfrage stellen:

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

| Parameter | Typ | Erforderlich | Beschreibung |
| ----- | ----- | ----- | ----- |
| request_id | string | Ja | Die von der POST-Anfrage zurückgegebene Anfrage-ID. |
| detailed | boolean | Nein | Wenn auf `true` gesetzt, enthält die Antwort detaillierte Ergebnisse für jedes registrierte Gerät. |


#### Beispielantwort

```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

Meldet mehrere Geräte in einer einzigen Anfrage von Pushwoosh ab.

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

### Parameter des Anfragekörpers

| Parameter | Typ | Erforderlich | Beschreibung |
| :---- | ----- | ----- | ----- |
| application | string | Ja | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code) |
| auth | string | Ja | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) |
| devices | array | Ja | Ein Array von Geräteobjekten. Jedes Objekt repräsentiert ein Gerät und seine zugehörigen Daten. Details finden Sie in der Tabelle **Parameter des Geräteobjekts** unten. |

#### Parameter des Geräteobjekts

| Parameter       | Typ     | Erforderlich | Beschreibung                                                                                     |
|-----------------|----------|----------|-------------------------------------------------------------------------------------------------|
| hwid          | string | Ja      | Die Hardware-ID oder der eindeutige Bezeichner für das Gerät. [Mehr erfahren](/de/developer/api-reference/api-identifiers/#hardware-id)                                          |



#### Anfragebeispiel

```json
{
  "application": "application code",   // erforderlich. Pushwoosh-App-Code
  "auth": "Pushwoosh auth token",      // erforderlich. API-Zugriffstoken aus dem Pushwoosh Control Panel
  "devices": [{                        // erforderlich. Array von Geräten
    "hwid": "device hwid",             // erforderlich. Eindeutiger Bezeichner für das Gerät (kann eine E-Mail sein).
  },
  {
    "hwid": "device hwid 2",           // erforderlich. Eindeutiger Bezeichner für das zweite Gerät.
  },
  {
    "hwid": "device hwid 3",           // erforderlich. Eindeutiger Bezeichner für das dritte Gerät.
  }]
}

```

### Antwort

Die Methode antwortet mit einer Operations-ID, die verwendet werden kann, um den Status und die Ergebnisse des Massenprozesses zu verfolgen.

```json
{
  "request_id": "request_id, die in der GET-Methode verwendet wird, um den Job-Status abzurufen",
  "status": "Pending"
}

```

## bulkUnregisterDevice-Status

Sie können den Status eines Massenabmeldungsprozesses überprüfen, indem Sie die folgende **GET**-Anfrage stellen:

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

| Parameter | Typ | Erforderlich | Beschreibung |
| ----- | ----- | ----- | ----- |
| request_id | string | Ja | Die von der POST-Anfrage zurückgegebene Anfrage-ID. |
| detailed | boolean | Nein | Wenn auf `true` gesetzt, enthält die Antwort detaillierte Ergebnisse für jedes abgemeldete Gerät. |


#### Beispielantwort

```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"
    }
  ]
}

```