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

# Usar paramsIO

> Filtre, pagine y ordene los resultados de consultas de la Automation API usando el objeto paramsIO, con ejemplos para recuperar sitios, experimentos y filtros combinados.

## Objetivo

La Automation API utiliza un objeto `paramsIO` para filtrar, paginar y ordenar colecciones de consulta. Este tutorial muestra casos de uso prácticos de `paramsIO`, incluidos:

* **Recuperar varios `siteId`** usando valores de `siteCode`
* **Filtrar experimentos** por estado
* **Establecer criterios de paginación** para controlar el tamaño de los resultados

El patrón `paramsIO` se utiliza en muchos endpoints y sigue una estructura coherente, lo que lo convierte en una herramienta potente para una recuperación precisa de datos.

## Requisitos

### Token de acceso

La Automation API requiere un **token de acceso**.

Obtenga el token de forma programática siguiendo las instrucciones del [artículo de introducción](/developer-docs/apis/automation-api-rest/get-started/get-started#1-obtain-an-access-token).

***

## Comprender paramsIO

El objeto `paramsIO` pasa consultas estructuradas a los endpoints de la API. Normalmente incluye herramientas de paginación, ordenación y filtrado. Consulte el [artículo de introducción](/developer-docs/apis/automation-api-rest/get-started/get-started#query-parameters) para obtener más información sobre `paramsIO`.

### Estructura de un filtro

Los filtros utilizan una estructura JSON coherente:

| Propiedad    | Tipo   | Descripción                                                                         |
| :----------- | :----- | :---------------------------------------------------------------------------------- |
| `field`      | String | La propiedad de la colección por la que filtrar (por ejemplo, `"code"`, `"status"`) |
| `operator`   | String | El operador de comparación (por ejemplo, `"EQUAL"`, `"BETWEEN"`, `"GREATER"`)       |
| `parameters` | Array  | Un array de valores con los que comparar                                            |

<Note>
  Los objetos JSON de filtro deben estar **codificados en URL** cuando se añaden a la URL del endpoint. Por ejemplo, `[` se convierte en `%5B` y `"` se convierte en `%22`.
</Note>

***

## Caso de uso 1: Recuperar varios siteIds por siteCode

La Automation API requiere el `id` numérico interno para la mayoría de las operaciones. Este ejemplo recupera varios IDs de sitio simultáneamente utilizando valores de `siteCode`.

### Paso 1: Definir el filtro

Para recuperar varios sitios, utilice el operador `EQUAL` con un array de códigos de sitio:

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

### Paso 2: Enviar la solicitud

Envíe una solicitud `GET` al endpoint `/sites` con el filtro codificado en URL:

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

**Ejemplo de solicitud:**

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

### Paso 3: Gestionar la respuesta

La API devuelve todos los sitios coincidentes en un array 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"
    ...
  }
]
```

Utilice estos valores `id` para operaciones posteriores de la API.

***

## Caso de uso 2: Filtrar experimentos activos con paginación

Este ejemplo muestra cómo combinar filtrado y paginación para recuperar experimentos activos en lotes manejables.

### Paso 1: Definir el filtro y la paginación

Cree un filtro para experimentos activos y especifique parámetros de paginación:

**Filtro JSON:**

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

**Parámetros de paginación:**

* `page=1`: Primera página de resultados
* `perPage=200`: Limitar a 200 elementos por página

### Paso 2: Enviar la solicitud

Envíe una solicitud `GET` al endpoint `/experiments`:

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

**Ejemplo de solicitud:**

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

### Paso 3: Gestionar la respuesta

La API devuelve hasta 200 experimentos activos:

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

**Para recuperar páginas adicionales**, incremente el parámetro `page` en las solicitudes siguientes.

***

## Caso de uso 3: Combinar varios filtros

Para realizar consultas con mayor precisión, combine varias condiciones de filtro. Por ejemplo, encuentre experimentos activos en un sitio específico:

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

**Ejemplo de solicitud:**

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

***

## Buenas prácticas

1. **Codificación en URL**: Codifique en URL el JSON del filtro antes de añadirlo a la URL de la solicitud.
2. **Paginación**: Utilice `perPage` para limitar el tamaño del resultado y evitar timeouts en colecciones grandes.
3. **Varios filtros**: Combine condiciones de filtro para reducir la transferencia de datos innecesaria.
4. **Elección de operador**: Utilice operadores para varios valores en lugar de varias solicitudes separadas.

## Recursos relacionados

* [Automation API: Introducción](/developer-docs/apis/automation-api-rest/get-started/get-started)
* [Encontrar el siteCode](/user-manual/faq#how-do-i-find-my-sitecode)
