# Segmentierungs (Filter) API

## createFilter

`POST` `https://api.pushwoosh.com/json/1.3/createFilter`

Erstellt einen neuen Filter.

**Anfragetext**

| Name | Erforderlich | Typ | Beschreibung |
| :--- | :--- | :--- | :--- |
| auth\* | Ja | string | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel. |
| name\* | Ja | string | [Filtername](/de/developer/api-reference/api-identifiers/#segment--filter-name). |
| filter\_expression\* | Ja | string | <p>Ausdruck, der gemäß den Regeln der <a href="/developer/api-reference/segmentation-filters-api/segmentation-language/">Segmentierungssprache</a> erstellt wurde. <br /><strong>Beispiel:</strong> <code>T("City", eq, "Madrid")</code>, um Benutzer zu segmentieren, deren Stadt Madrid ist.</p> |
| application | Nein | string | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code). Dieser Parameter ist nur mit High-Speed Setup verwendbar; andernfalls weglassen. |
| expiration\_date | Nein | string | Ablaufdatum des Filters. Der Filter wird an einem bestimmten Datum automatisch gelöscht, es sei denn, er wird in einem Preset oder einem RSS-Feed verwendet. |

**200**   
```json
{
  "status_code": 200, 
  "status_message": "OK", 
  "response": {
    "name": "filter name"
  }
}
```



**Beispiel**
```json
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",
    "name": "City = Madrid",
    "filter_expression": "T(\"City\", eq, \"Madrid\")",
    "application": "B18XX-XXXXX",
    "expiration_date": "2025-01-01"
  }
}

// creating Filters for Timezones 
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H", // API access token from Pushwoosh Control Panel
    "name": "Timezone Filter",
    "filter_expression": "T(\"Timezone\", BETWEEN, [\"UTC-12:00\", \"UTC+14:00\"])"
  }
}
```


## listFilters

`POST` `https://api.pushwoosh.com/json/1.3/listFilters`

Gibt eine Liste der verfügbaren Segmente (Filter) mit ihren Bedingungen zurück.

**Anfragetext**

| Name | Erforderlich | Typ | Beschreibung |
| :--- | :--- | :--- | :--- |
| auth\* | Ja | string | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel. |
| application\* | Ja | string | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code) |


**200** 
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "filters": [{
      "code": "52551-F2F42",
      "name": "City = Madrid",
      "filter_expression": "T(\"City\", eq, \"madrid\")",
      "expiration_date": "2025-01-01",
      "application": "B18XX-XXXXX"
    }]
  }
}

```


**Beispiel**
```json
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",
    "application": "B18XX-XXXXX"
  }
}
```

## deleteFilter

`POST` `https://api.pushwoosh.com/json/1.3/deleteFilter`

Löscht einen vorhandenen Filter.

**Anfragetext**

| Name | Typ | Beschreibung |
| :--- | :--- | :--- |
| auth\* | string | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel. |
| name\* | string | [Filtername](/de/developer/api-reference/api-identifiers/#segment--filter-name). |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>



```json title="Beispiel"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H", // API access token from Pushwoosh Control Panel
    "name": "filter name"
  }
}
```

## exportSegment

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

Eine geplante Anfrage. Exportiert die Liste der Abonnenten, die unter die angegebenen Filterbedingungen fallen.

**Anfragetext**
| Name <div style="width:100px"></div> | Erforderlich <div style="width:100px"></div> | Typ | Beschreibung |
| :--- | :--- | :--- | :--- |
| auth\* | Ja | string | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel. |
| filterExpression\* | Ja | string | Filterbedingungen |
| exportData | Nein | array | Zu exportierende Daten. Mögliche Werte: `"hwids"`, `"push_tokens"`, `"users"`, `"tags"`, `"location"`. Die Angabe von `"location"` fügt die Spalten `Latitude` und `Longitude` zur exportierten CSV-Datei hinzu. Wenn `exportData` weggelassen wird, sind `Latitude` und `Longitude` standardmäßig im Export enthalten. |
| filterCode | Nein | string | Vorgefertigter [Filtercode](/de/developer/api-reference/api-identifiers/#segment--filter-code), kann anstelle von `filterExpression` verwendet werden. Kann von der `/listFilters`-API oder aus der Adressleiste Ihres Browsers bezogen werden, wenn Sie den Filter im Control Panel anzeigen. |
| applicationCode | Erforderlich, wenn Sie entweder `filterExpression` oder `filterCode` verwenden. | string | [Pushwoosh-Anwendungscode](/de/developer/api-reference/api-identifiers/#application-code) |
| generateExport | Nein | boolean | Standardmäßig auf `true` gesetzt, und eine Antwort enthält einen Link zum Herunterladen der Datei. Wenn `false`, wird nur die Anzahl der Geräte in der Antwort gesendet. |
| format | Nein | string | Legt das Format der exportierten Datei fest: "csv" oder "json\_each\_line". Wenn weggelassen, wird die CSV-Datei generiert. |
| tagsList | Nein | array | Gibt die zu exportierenden [Tags](/de/developer/api-reference/api-identifiers/#tag) an. Um nur die spezifischen Tags zu erhalten, sollte das "exportData"-Array den Wert "tags" enthalten. |
| includeWithoutTokens | Nein | boolean | Auf `true` setzen, um Benutzer ohne Push-Token in die exportierte Datei aufzunehmen. Standard ist `false`. |


<Tabs>
<TabItem label="200 Erfolgreich">
```json
{
  "task_id": "177458"
}
```
</TabItem>
</Tabs>



```json title="Beispiel"
{
  "auth": "yxoPUlwqm…………pIyEX4H",                           // required. API access token from Pushwoosh Control Panel
  "filterExpression": "AT(\"12345-67890\", \"Name\", any)", // filter conditions, refer to the Segmentation Language guide for syntax 
  "filterCode": "12345-67890",                              // pre-made filter code, can be used instead of filterExpression
  "applicationCode": "00000-AAAAA",                         // Required if you're using either `filterExpression` or `filterCode`. Pushwoosh app code. Can be obtained from /listFilters API request or address bar of your browser while viewing the filter in Control Panel.
  "generateExport": true,                                   // if false, devices count only will be sent in response; by default, a response contains a link to download the CSV file
  "format": "json_each_line",                               // format of the file to present the data in: "csv" – the .csv file is downloaded; "json" – a JSON file with all expored devices; or "json_each_line" – JSON line for each device. If not specified, CSV is the default format. 
  "exportData": ["hwids", "tags"],                          // optional. Data to export. Possible values: "hwids", "push_tokens", "users", "tags", "location", "fcm_keys", "web keys"
  "tagsList": ["Name", "Level"],                            // optional. Specifies tags to export. To obtain the specific tags only, the "tags" value should be sent within the "exportData" array or the "exportData" be empty. 
  "includeWithoutTokens": true                              // optional. Set to true to include users without push tokens in the exported file. Default is false.
}
```

<Aside type="note">
Eine Referenz zur Segmentierungssprache zum Schreiben von Filterausdrücken finden Sie [hier](/de/developer/api-reference/segmentation-filters-api/segmentation-language/).
</Aside>

Um beispielsweise alle Abonnenten einer bestimmten App zu exportieren, verwenden Sie die folgenden Filterbedingungen:

```json
{
  "auth": "yxoPUlwqm…………pIyEX4H",            // API access token from Pushwoosh Control Panel
  "filterExpression": "A(\"AAAAA-BBBBB\")",  // Filter expression referencing app segment
  "applicationCode": "AAAAA-BBBBB"           // Required Pushwoosh app code
}
```

<Aside type="caution">
In der Antwort erhalten Sie die **`task_id`**, um die Ergebnisdatei zu erhalten. Rufen Sie dann [/exportSegment/result](./#exportsegment-ergebnisse) mit dieser `task_id` im Anfragetext auf, um die Ergebnisdatei abzurufen.
</Aside>

## exportSegment-Ergebnisse

`POST` `https://api.pushwoosh.com/api/v2/audience/exportSegment/result`

**Ruft den Link zur CSV-Datei mit den /exportSegment-Ergebnissen ab.**

**Anfragetext**

| Name | Typ | Beschreibung |
| :--- | :--- | :--- |
| auth\* | String | [API-Zugriffstoken](/de/developer/api-reference/api-identifiers/#api-access-token) aus dem Pushwoosh Control Panel. |
| task\_id\* | String | Kennung, die Sie in Ihrer `/exportSegment`-Antwort erhalten haben. |

<Tabs>
<TabItem label="200: OK">
```json
{
  "devicesCount": "24735",
  "filename": "https://static.pushwoosh.com/segment-export/export_segment_XXXXX_XXXXX_xxxxxxxxxxxxxxxxx.csv.zip",
  "status": "completed"
}
```
</TabItem>
</Tabs>

Übergeben Sie die in Ihrer `/exportSegment`-Antwort erhaltene "**task\_id**" im Anfragetext von `/exportSegment/result`.

In der `/exportSegment/result`-Antwort erhalten Sie den Parameter „filename“. Folgen Sie dem im Wert dieses Parameters angegebenen Link, um automatisch ein ZIP-Archiv herunterzuladen.
Entpacken Sie das Archiv, um die CSV- oder JSON-Datei (abhängig vom in Ihrer Anfrage angegebenen „format“) mit den Gerätedaten zu erhalten.

Ab dem 3. April 2025 ist eine Autorisierung zum Herunterladen der Datei erforderlich:

- Wenn Sie über einen **Browser** herunterladen, melden Sie sich einfach im **Pushwoosh Control Panel** an, um Zugriff zu erhalten.  
- Wenn Sie über eine **Server-Software** herunterladen, fügen Sie den folgenden Header in Ihre Anfrage ein:
`Authorization: Token YOUR_API_TOKEN`

Wenn Sie die „exportData“ in Ihrer `/exportSegment`-Anfrage angeben, enthält die heruntergeladene Datei nur die angeforderten Daten. Standardmäßig enthält die Datei die folgenden Benutzerdaten:

| **Feld** | Beschreibung | Beispielwert |
| :--- | :--- | :--- |
| Hwid | [Hardware-ID eines Geräts](/de/developer/api-reference/api-identifiers/#hardware-id) | 01D1BA5C-AAAA-0000-BBBB-9B81CD5823C8 |
| User ID | [Benutzer-ID](/de/developer/api-reference/api-identifiers/#user-id), die ein Gerät einem bestimmten Benutzer zuordnet. Wenn keine Benutzer-ID zugewiesen ist, wird die HWID verwendet. | user8192 |
| Push Token | Eindeutige Kennung, die einem Gerät von Cloud-Messaging-Gateways zugewiesen wird. [Mehr erfahren](/de/developer/api-reference/api-identifiers/#push-token) | eeeb2fd7....0fc3547 |
| Type | Plattformtyp (Ganzzahl). | 1 |
| Type (humanized) | Plattformtyp (Zeichenkette). | iOS |
| Age | Wert des Standard-Tags Alter. | 29 |
| ApplicationVersion | Wert des Standard-Tags Anwendungsversion. | 1.12.0.0 |
| City | Wert des Standard-Tags Stadt. | us, boston |
| TagName | Wert eines in Ihrem Konto erstellten Tags. | TagValue |