> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# paramsIO verwenden

> Filtern, paginieren und sortieren Sie Abfrageergebnisse der Automation API mithilfe des paramsIO-Objekts, mit Beispielen zum Abrufen von Sites, Experimenten und kombinierten Filtern.

## Ziel

Die Automation API verwendet ein `paramsIO`-Objekt, um Abfragesammlungen zu filtern, zu paginieren und zu sortieren. Dieses Tutorial demonstriert praktische Anwendungsfälle für `paramsIO`, darunter:

* **Abrufen mehrerer `siteId`s** mithilfe von `siteCode`-Werten
* **Filtern von Experimenten** nach Status
* **Festlegen von Paginierungskriterien** zur Steuerung der Ergebnisgröße

Das `paramsIO`-Muster wird über viele Endpoints hinweg verwendet und folgt einer konsistenten Struktur, was es zu einem leistungsstarken Werkzeug für die präzise Datenabfrage macht.

## Voraussetzungen

### Access Token

Die Automation API erfordert ein **Access Token**.

Rufen Sie das Token programmgesteuert ab, indem Sie den Anweisungen im Artikel [Erste Schritte](/developer-docs/apis/automation-api-rest/get-started/get-started#1-obtain-an-access-token) folgen.

***

## paramsIO verstehen

Das `paramsIO`-Objekt übergibt strukturierte Abfragen an API-Endpoints. Es umfasst typischerweise Werkzeuge zur Paginierung, Sortierung und Filterung. Weitere Informationen zu `paramsIO` finden Sie im Artikel [Erste Schritte](/developer-docs/apis/automation-api-rest/get-started/get-started#query-parameters).

### Filterstruktur

Filter verwenden eine konsistente JSON-Struktur:

| Eigenschaft  | Typ    | Beschreibung                                                                                        |
| :----------- | :----- | :-------------------------------------------------------------------------------------------------- |
| `field`      | String | Die Eigenschaft in der Sammlung, nach der gefiltert werden soll (zum Beispiel `"code"`, `"status"`) |
| `operator`   | String | Der Vergleichsoperator (zum Beispiel `"EQUAL"`, `"BETWEEN"`, `"GREATER"`)                           |
| `parameters` | Array  | Ein Array von Werten, mit denen verglichen werden soll                                              |

<Note>
  Filter-JSON-Objekte müssen **URL-kodiert** sein, wenn sie zur Endpoint-URL hinzugefügt werden. Beispielsweise wird `[` zu `%5B` und `"` zu `%22`.
</Note>

***

## Anwendungsfall 1: Mehrere siteIds nach siteCode abrufen

Die Automation API erfordert für die meisten Operationen die interne numerische `id`. Dieses Beispiel ruft mehrere Site-IDs gleichzeitig mithilfe von `siteCode`-Werten ab.

### Schritt 1: Den Filter definieren

Um mehrere Sites abzurufen, verwenden Sie den Operator `EQUAL` mit einem Array von Site-Codes:

```json theme={null}
[
  {
    "field": "code",
    "operator": "EQUAL",
    "parameters": ["xdrio4plsn", "adflwp2mms", "lricdj5pqw"]
  }
]
```

### Schritt 2: Die Anfrage senden

Senden Sie eine `GET`-Anfrage an den Endpoint `/sites` mit dem URL-kodierten Filter:

**Endpoint:** `GET https://api.kameleoon.com/sites`

**Beispielanfrage:**

```bash theme={null}
curl -L -X GET 'https://api.kameleoon.com/sites?filter=%5B%7B%22field%22%3A%22code%22%2C%22operator%22%3A%22EQUAL%22%2C%22parameters%22%3A%5B%22xdrio4plsn%22%2C%22adflwp2mms%22%2C%22lricdj5pqw%22%5D%7D%5D' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'
```

### Schritt 3: Die Antwort verarbeiten

Die API gibt alle übereinstimmenden Sites in einem JSON-Array zurück:

```json theme={null}
[
  {
    "id": 42099,
    "url": "https://www.example-production.com/",
    "name": "Production Environment",
    "code": "xdrio4plsn"
    ...
  },
  {
    "id": 42100,
    "url": "https://www.example-staging.com/",
    "name": "Staging Environment",
    "code": "adflwp2mms"
    ...
  },
  {
    "id": 42101,
    "url": "https://www.example-test.com/",
    "name": "Test Environment",
    "code": "lricdj5pqw"
    ...
  }
]
```

Verwenden Sie diese `id`-Werte für nachfolgende API-Operationen.

***

## Anwendungsfall 2: Aktive Experimente mit Paginierung filtern

Dieses Beispiel zeigt, wie Sie Filterung und Paginierung kombinieren, um aktive Experimente in handhabbaren Stapeln abzurufen.

### Schritt 1: Filter und Paginierung definieren

Erstellen Sie einen Filter für aktive Experimente und geben Sie die Paginierungsparameter an:

**Filter-JSON:**

```json theme={null}
[
  {
    "field": "status",
    "operator": "EQUAL",
    "parameters": ["ACTIVE"]
  }
]
```

**Paginierungsparameter:**

* `page=1`: Erste Ergebnisseite
* `perPage=200`: Auf 200 Elemente pro Seite begrenzen

### Schritt 2: Die Anfrage senden

Senden Sie eine `GET`-Anfrage an den Endpoint `/experiments`:

**Endpoint:** `GET https://api.kameleoon.com/experiments`

**Beispielanfrage:**

```bash theme={null}
curl -L -X GET 'https://api.kameleoon.com/experiments?perPage=200&page=1&filter=%5B%7B%22field%22%3A%22status%22%2C%22operator%22%3A%22EQUAL%22%2C%22parameters%22%3A%5B%22ACTIVE%22%5D%7D%5D' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'
```

### Schritt 3: Die Antwort verarbeiten

Die API gibt bis zu 200 aktive Experimente zurück:

```json theme={null}
[
  {
    "id": 12345,
    "siteId": 54321,
    "name": "My Active Experiment",
    "description": "Testing new checkout page",
    "baseURL": "https://yourwebsite.com",
    "type": "AI",
    "trackingTools": [],
    "status": "ACTIVE",
    "dateCreated": "2026-02-03T18:41:00",
    "tags": ["checkout", "mobile"],
    ...
  }
]
```

**Um weitere Seiten abzurufen**, erhöhen Sie den Parameter `page` in nachfolgenden Anfragen.

***

## Anwendungsfall 3: Mehrere Filter kombinieren

Um präziser abzufragen, kombinieren Sie mehrere Filterbedingungen. Finden Sie beispielsweise aktive Experimente auf einer bestimmten Site:

```json theme={null}
[
  {
    "field": "status",
    "operator": "EQUAL",
    "parameters": ["ACTIVE"]
  },
  {
    "field": "siteId",
    "operator": "EQUAL",
    "parameters": ["xdrio4plsn"]
  }
]
```

**Beispielanfrage:**

```bash theme={null}
curl -L -X GET 'https://api.kameleoon.com/experiments?filter=%5B%7B%22field%22%3A%22status%22%2C%22operator%22%3A%22EQUAL%22%2C%22parameters%22%3A%5B%22ACTIVE%22%5D%7D%2C%7B%22field%22%3A%22siteId%22%2C%22operator%22%3A%22EQUAL%22%2C%22parameters%22%3A%5B%22xdrio4plsn%22%5D%7D%5D' \
-H 'Authorization: Bearer <ACCESS_TOKEN>'
```

***

## Best Practices

1. **URL-Kodierung**: Kodieren Sie das Filter-JSON in URL, bevor Sie es zur Anfrage-URL hinzufügen.
2. **Paginierung**: Verwenden Sie `perPage`, um die Ergebnisgröße zu begrenzen und Timeouts bei großen Sammlungen zu vermeiden.
3. **Mehrere Filter**: Kombinieren Sie Filterbedingungen, um unnötige Datenübertragungen zu reduzieren.
4. **Operatorwahl**: Verwenden Sie Operatoren für mehrere Werte anstelle mehrerer separater Anfragen.

## Verwandte Ressourcen

* [Erste Schritte mit der Automation API](/developer-docs/apis/automation-api-rest/get-started/get-started)
* [Den siteCode finden](/user-manual/faq#how-do-i-find-my-sitecode)
