> ## 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.

# Utiliser paramsIO

> Filtrez, paginez et triez les résultats de requêtes de l'Automation API à l'aide de l'objet paramsIO, avec des exemples pour récupérer des sites, des expériences et des filtres combinés.

## Objectif

L'Automation API utilise un objet `paramsIO` pour filtrer, paginer et trier les collections de requêtes. Ce tutoriel présente des cas d'utilisation pratiques de `paramsIO`, notamment :

* **Récupérer plusieurs `siteId`** à l'aide de valeurs `siteCode`
* **Filtrer les expériences** par statut
* **Définir des critères de pagination** pour contrôler la taille des résultats

Le pattern `paramsIO` est utilisé sur de nombreux endpoints et suit une structure cohérente, ce qui en fait un outil puissant pour une récupération de données précise.

## Prérequis

### Access token

L'Automation API nécessite un **access token**.

Récupérez le token de manière programmatique en suivant les instructions de l'[article Démarrer](/developer-docs/apis/automation-api-rest/get-started/get-started#1-obtain-an-access-token).

***

## Comprendre paramsIO

L'objet `paramsIO` transmet des requêtes structurées aux endpoints API. Il comprend généralement des outils de pagination, de tri et de filtrage. Consultez l'[article Démarrer](/developer-docs/apis/automation-api-rest/get-started/get-started#query-parameters) pour plus d'informations sur `paramsIO`.

### Structure du filtre

Les filtres utilisent une structure JSON cohérente :

| Propriété    | Type   | Description                                                                            |
| :----------- | :----- | :------------------------------------------------------------------------------------- |
| `field`      | String | La propriété de la collection sur laquelle filtrer (par exemple, `"code"`, `"status"`) |
| `operator`   | String | L'opérateur de comparaison (par exemple, `"EQUAL"`, `"BETWEEN"`, `"GREATER"`)          |
| `parameters` | Array  | Un tableau de valeurs à faire correspondre                                             |

<Note>
  Les objets JSON de filtre doivent être **encodés en URL** lors de leur ajout à l'URL de l'endpoint. Par exemple, `[` devient `%5B` et `"` devient `%22`.
</Note>

***

## Cas d'utilisation 1 : Récupérer plusieurs siteIds par siteCode

L'Automation API nécessite l'`id` numérique interne pour la plupart des opérations. Cet exemple récupère simultanément plusieurs IDs de site à l'aide de valeurs `siteCode`.

### Étape 1 : Définir le filtre

Pour récupérer plusieurs sites, utilisez l'opérateur `EQUAL` avec un tableau de codes de site :

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

### Étape 2 : Envoyer la requête

Envoyez une requête `GET` à l'endpoint `/sites` avec le filtre encodé en URL :

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

**Exemple de requête :**

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

### Étape 3 : Traiter la réponse

L'API renvoie tous les sites correspondants dans un tableau JSON :

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

Utilisez ces valeurs d'`id` pour les opérations API ultérieures.

***

## Cas d'utilisation 2 : Filtrer les expériences actives avec pagination

Cet exemple montre comment combiner filtrage et pagination pour récupérer les expériences actives par lots gérables.

### Étape 1 : Définir le filtre et la pagination

Créez un filtre pour les expériences actives et spécifiez les paramètres de pagination :

**Filtre JSON :**

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

**Paramètres de pagination :**

* `page=1` : Première page de résultats
* `perPage=200` : Limiter à 200 éléments par page

### Étape 2 : Envoyer la requête

Envoyez une requête `GET` à l'endpoint `/experiments` :

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

**Exemple de requête :**

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

### Étape 3 : Traiter la réponse

L'API renvoie jusqu'à 200 expériences actives :

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

**Pour récupérer des pages supplémentaires**, incrémentez le paramètre `page` dans les requêtes suivantes.

***

## Cas d'utilisation 3 : Combiner plusieurs filtres

Pour interroger plus précisément, combinez plusieurs conditions de filtre. Par exemple, trouvez les expériences actives sur un site spécifique :

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

**Exemple de requête :**

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

***

## Bonnes pratiques

1. **Encodage URL** : Encodez en URL le JSON du filtre avant de l'ajouter à l'URL de la requête.
2. **Pagination** : Utilisez `perPage` pour limiter la taille des résultats et éviter les timeouts sur les grandes collections.
3. **Filtres multiples** : Combinez les conditions de filtre pour réduire les transferts de données inutiles.
4. **Choix de l'opérateur** : Utilisez des opérateurs pour plusieurs valeurs au lieu de plusieurs requêtes distinctes.

## Ressources connexes

* [Démarrer avec l'Automation API](/developer-docs/apis/automation-api-rest/get-started/get-started)
* [Trouver le siteCode](/user-manual/faq#how-do-i-find-my-sitecode)
