# Estadísticas de mensajes

## messages:list

Muestra la lista de mensajes enviados.

`POST` `https://api.pushwoosh.com/api/v2/messages:list`

##### Encabezados

| Nombre    <div style="width:200px"></div>        | Requerido <div style="width:100px"></div>| Descripción  <div style="width:150px"></div>                                                                                        |
|----------------|----------|------------------------------------------------------------------------------------------------------|
| `Authorization`| Sí      | [Token de API del servidor](/es/developer/api-reference/api-access-token/#server-api-token). Debe proporcionarse en el siguiente formato: `Authorization: Api <Server Key>`.     |

##### Parámetros del cuerpo de la solicitud

| Nombre <div style="width:150px"></div> | Requerido <div style="width:100px"></div> | Tipo <div style="width:100px"></div> | Descripción <div style="width:150px"></div> |
|--------------------------------------|----------|---------|--------------------------------------------------------------------------------------------------------------------------------|
| `platforms`                         | No       | Array   | Plataformas de mensajes. Valores posibles: `"IOS"`, `"ANDROID"`, `"OSX"`, `"WINDOWS"`, `"AMAZON"`, `"SAFARI"`, `"CHROME"`, `"FIREFOX"`, `"IE"`, `"EMAIL"`, `"HUAWEI_ANDROID"`, `"SMS"`.                                                           |
| `date_range`                         | No       | Objeto  | Periodo del informe. `date_from` y `date_to` deben seguir el formato `YYYY-MM-DD` (por ejemplo, `"2000-01-01"`).                                                                  |
| `campaign`                           | No       | Cadena  | [Código de campaña](/es/developer/api-reference/api-identifiers/#campaign-code)                                                                                                               |
| `filters`                            | Sí      | Objeto  | Filtros de mensajes.                                                                                                          |
| `source`                             | No       | Cadena  | Fuente del mensaje. Por ejemplo: `AB_TEST`, `API`, `AUTO_PUSH`, `CP`, `CSV`, `CUSTOMER_JOURNEY`, `EMAIL_API`, `EMAIL_CP`, `GEO_ZONE`, `PUSH_ON_EVENT`, `RSS`.                                                             |
| `messages_codes`                     | No       | Array   | [Códigos de mensaje](/es/developer/api-reference/api-identifiers/#message-code) obtenidos de las respuestas de la API `/createMessage`.                                                                                                               |
| `messages_ids`                       | No       | Array   | IDs de mensaje obtenidos del Historial de Mensajes                                                                                                                |
| `params`                             | No       | Objeto  | Especifica si mostrar detalles y métricas del mensaje. Establezca `with_details: true` para incluir el objeto `"details"` y `with_metrics: true` para incluir el objeto `"metrics"` en la respuesta.                               |
| `application`                        | Sí      | Cadena  | [Código de aplicación de Pushwoosh](/es/developer/api-reference/api-identifiers/#application-code).                                                                                                  |
| `per_page`                           | No       | Entero | Número de resultados por página (≤ 1000).                                                                                         |
| `page`                               | No       | Entero | Número de página para paginación.                                                                                                  |


##### Ejemplo de solicitud

```
{
    "filters": {
      "platforms": [],                  // IOS, ANDROID, OSX, WINDOWS, AMAZON, SAFARI, CHROME, FIREFOX, IE, EMAIL, HUAWEI_ANDROID, SMS
      "date_range": {
        "date_from": "string",          // Formato requerido: 2000-01-01
        "date_to": "string"             // Formato requerido: 2000-01-01
      },
      "source": "API",                  // AB_TEST, API, AUTO_PUSH, CP, CSV, CUSTOMER_JOURNEY, EMAIL_API, EMAIL_CP, GEO_ZONE, PUSH_ON_EVENT, RSS
      "campaign": "string",             // Código de campaña
      "messages_ids": [],               // IDs de mensaje
      "messages_codes": [],             // Códigos de mensaje
      "application": "string"           // Código de aplicación de Pushwoosh
    },
    "params": {
      "with_details": true,             // Agregar detalles del mensaje a la respuesta (objeto "details")
      "with_metrics": true              // Agregar métricas del mensaje a la respuesta (objeto "metrics")
    },
    "per_page": 20,                     // <= 1000
    "page": 0
}
```

 <details>
  <summary> Códigos de respuesta y ejemplos </summary>
<Tabs>
<TabItem label="200: OK">
```
{
  "total": 0,
  "items": [{
    "id": 0,
    "code": "string",
    "created_date": "string",
    "send_date": "string",
    "status": "string",
    "platforms": [],
    "source": "string",
    "push_info": {
      "details": {
        "title": "string",
        "filter_name": "string",
        "filter_code": "string",
        "content": {
          "key": "value"
        },
        "platform_parameters": {
          "android_header": "string",
          "android_root_params": {
            "key": "value"
          },
          "ios_title": "string",
          "ios_subtitle": "string",
          "ios_root_params": {
            "key": "value"
          },
          "chrome_header": "string",
          "chrome_root_params": {
            "key": "value"
          },
          "firefox_header": "string",
          "firefox_root_params": {
            "key": "value"
          },
          "conditions": [               // condiciones de etiqueta (ver /developer/api-reference/messages-api/#tag-conditions)
            TAG_CONDITION1,
            TAG_CONDITION2,
            ...,
            TAG_CONDITIONN
          ],
          "conditions_operator": "AND", // operador lógico para matrices de condiciones; valores posibles: AND, OR
          "data": {
            "key": "value"
          }
        },
        "follow_user_timezone": true
      },
      "metrics": [{
        "sends": 0,
        "opens": 0,
        "deliveries": 0,
        "inbox_opens": 0,
        "unshowable_sends": 0,
        "errors": 0,
        "platform": 0
      }]
    },
    "email_info": {
      "details": {
        "template": "string",
        "filter_name": "string",
        "filter_code": "string",
        "subject": {
          "key": "value"
        },
        "from_name": "string",
        "from_email": "string",
        "reply_name": "string",
        "reply_email": "string",
        "follow_user_timezone": true,
        "conditions": [              // condiciones de etiqueta (ver Messages-api - tag-conditions) 
          TAG_CONDITION1,
          TAG_CONDITION2,
          ...,
          TAG_CONDITIONN
        ],  
        "conditions_operator": "AND" // operador lógico para matrices de condiciones; valores posibles: AND, OR
      },
      "metrics": [{
        "sends": 0,
        "opens": 0,
        "deliveries": 0,
        "hard_bounces": 0,
        "soft_bounces": 0,
        "rejects": 0,
        "confirmed_sends": 0,
        "unsubs": 0,
        "complaints": 0,
        "errors": 0
      }]
    }
  }]
}
```
</TabItem>

<TabItem label="400: Error de Solicitud Incorrecta">
```json
{
  "error": "exceeded the maximum date interval. Max interval: 30 days"
}
```
</TabItem>

<TabItem label="401: Token de acceso a la API incorrecto">
```json
{
  "error": "account not found"
}
```
</TabItem>

<TabItem label="500: Error Interno del Servidor">

</TabItem>
</Tabs>

</details>


<Aside type="note">
Para iOS, asegúrese de haber agregado la Extensión de Servicio de Notificación a su proyecto para rastrear la entrega de push. [Más información](/es/developer/pushwoosh-sdk/ios-sdk/ios-message-delivery-tracking)
</Aside>

## totalsByIntervals

Devuelve métricas y datos de conversión basados en el código del mensaje, agregados por hora.

**POST** `https://api.pushwoosh.com/api/v2/statistics/messages/totalsByIntervals`
  

##### Autorización

La autorización se maneja a través del Token de Acceso a la API en el encabezado de la solicitud.

##### Parámetros del cuerpo de la solicitud

| Nombre del parámetro  <div style="width:150px"></div>   | Tipo   <div style="width:150px"></div>   | Descripción                 | Requerido |
|----------------|--------|-----------------------------|----------|
| `message_code` | cadena | [Código de mensaje](/es/developer/api-reference/api-identifiers/#message-code) obtenido de las respuestas de la API `/createMessage`.    | Sí      |
| `platforms`    | [entero]  | [Plataformas](/es/developer/api-reference/messages-api/api-prerequisites/#platforms)                    | No       |

##### Ejemplo de solicitud

```
{
  "message_code": "XXXXX-XXXXXXXXX-XXXXXXXX", // requerido. Identificador único del mensaje
  "platforms": [1, 3, 7, 10, 11, 12]          // opcional. Lista de códigos de plataforma
}
```

##### Campos de respuesta

| Nombre              | Tipo   | Descripción                                                       |
|-------------------|--------|-------------------------------------------------------------------|
|  **`metrics`**         | **array**  | **Contiene una matriz de métricas de mensajes**                              |
|    `timestamp`       | cadena | La hora de la métrica.                                           |
|    `platform`        | entero    | El código de la plataforma (por ejemplo, iOS, Android).                           |
| `sends`           | cadena | El número de mensajes enviados.                                      |
| `opens`           | cadena | El número de mensajes abiertos.                                    |
| `deliveries`      | cadena | El número de mensajes entregados.                                 |
| `inbox_opens`     | cadena | El número de aperturas en la bandeja de entrada.                                        |
| `unshowable_sends`| cadena | El número de mensajes enviados que no se pudieron mostrar.              |
| `errors`          | cadena | El número de errores.                                             |
| **`conversion`**      | **objeto** | **Contiene datos de conversión**                                          |
| `sends`           | cadena | El número total de mensajes enviados.                                |
| `opens`           | cadena | El número total de mensajes abiertos.                              |
| **`events`**          | **array**  | **Una matriz de eventos con sus estadísticas**                         |
| `name`            | cadena | El nombre del evento (por ejemplo, cart add).                           |
| `hits`            | cadena | El número de aciertos (hits).                                               |
| `conversion`      | flotante  | La tasa de conversión relativa a las aperturas.                            |
| `revenue`         | flotante  | Los ingresos (solo para eventos con atributos `__amount` y `__currency`). |

##### Ejemplo de respuesta

```
{
  "metrics": [{
    "timestamp": "2024-08-03 15:00:00",  // Marca de tiempo de las métricas en formato "YYYY-MM-DD HH:MM:SS"
    "platform": 3,                       // Código de plataforma
    "sends": "55902",                    // Número de mensajes enviados
    "opens": "382",                      // Número de mensajes abiertos
    "deliveries": "22931",               // Número de mensajes entregados
    "inbox_opens": "0",                  // Número de mensajes abiertos en la bandeja de entrada
    "unshowable_sends": "2",             // Número de mensajes que no se pudieron mostrar
    "errors": "0"                        // Número de errores encontrados
  }],
  "conversion": {
    "sends": "55902",                    // Número total de mensajes enviados
    "opens": "772",                      // Número total de mensajes abiertos
    "events": [{
      "name": "cart_add",                // Nombre del evento
      "hits": "96",                      // Número de aciertos para el evento
      "conversion": 0.12,                // Tasa de conversión relativa a las aperturas
      "revenue": 0                       // Ingresos generados por el evento (solo para eventos con atributos amount/currency)
    }]
  }
}
```

## getMessageLog

Muestra información detallada sobre los mensajes enviados.

`POST` `https://api.pushwoosh.com/api/v2/statistics/getMessageLog`

##### Encabezados


| Nombre   <div style="width:150px"></div>              | Requerido <div style="width:150px"></div>    |  Descripción    <div style="width:150px"></div>                                                                                                             |
|-----------------|----------|----------------------------------------------------------------------------------------------------------------------------|
| `Authorization` | Requerido | [Token de acceso a la API](/es/developer/api-reference/api-access-token/) desde el Panel de Control de Pushwoosh. |


##### Parámetros del cuerpo de la solicitud

| Nombre    <div style="width:150px"></div>            | Requerido <div style="width:80px"></div>      | Tipo   <div style="width:100px"></div>              | Descripción       <div style="width:150px"></div>                                                                                                                                                                                               |
|--------------------|------------------|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `message_id`       | No        | Entero         | Seleccione eventos de mensajes por ID de mensaje obtenido del historial de mensajes. Ejemplo: `12345678900`.                                                                                                               |
| `message_code`     | No         | Cadena          | Seleccione eventos de mensajes por [Código de mensaje](/es/developer/api-reference/api-identifiers/#message-code) obtenido de las respuestas de la API `/createMessage`. Ejemplo: `"A444-AAABBBCC-00112233"`.                                                                                |
| `campaign_code`    | No         | Cadena          | Seleccione eventos de mensajes por [Código de campaña](/es/developer/api-reference/api-identifiers/#campaign-code) especificado en la carga útil de su mensaje. Ejemplo: `"AAAAA-XXXXX"`.                                                                                                      |
| `hwid`            | No          | Cadena o Array  | Seleccione eventos de mensajes por [HWID (ID de Hardware)](/es/developer/api-reference/api-identifiers/#hardware-id) o una matriz de HWIDs.                                                                                                                                        |
| `date_from`       | Requerido si `message_id`, `message_code` o `campaign_code` no se proporciona | Datetime        | Fecha de inicio para filtrar mensajes. Formato: `"YYYY-MM-DD HH:MM:SS"`. Ejemplo: `"2000-01-25 00:00:00"`.                                                                                                   |
| `date_to`         | Requerido si `message_id`, `message_code` o `campaign_code` no se proporciona | Datetime        | Fecha de fin para filtrar mensajes. Formato: `"YYYY-MM-DD HH:MM:SS"`. Ejemplo: `"2000-01-26 00:00:00"`.                                                                                                     |
| `limit`           | No        | Entero         | Número máximo de eventos de mensaje devueltos en una sola respuesta. Valor máximo: `100000`.                                                                                                                 |
| `pagination_token` | No         | Cadena         | Token de paginación obtenido de una respuesta anterior de `/getMessageLog`. Úselo para recuperar resultados adicionales.                                                                                              |
| `user_id`         | No          | Cadena          | Seleccione eventos de mensajes por un [ID de Usuario](/es/developer/api-reference/api-identifiers/#user-id) personalizado. Consulte `/registerUser` para más detalles.                                                                                                                        |
| `application_code` | Sí        | Cadena          | Seleccione eventos de mensajes por [Código de aplicación de Pushwoosh](/es/developer/api-reference/api-identifiers/#application-code)                                                                                                                                                |
| `actions`         | No         | Array           | Filtrar resultados por acciones de mensaje específicas. Valores posibles: `"sent"`, `"delivered"`, `"opened"`, `"inbox_delivered"`, `"inbox_read"`, `"inbox_opened"`, `"inbox_deleted"`.                           |
| `platforms`       | No         | Array           | Matriz de plataformas de destino para filtrar resultados. Valores posibles: `"ios"`, `"android"`, `"osx"`, `"windows"`, `"amazon"`, `"safari"`, `"chrome"`, `"firefox"`, `"ie"`, `"email"`, `"huawei_android"`.     |

##### Ejemplo de solicitud
```shell
curl --location --request POST 'https://api.pushwoosh.com/api/v2/statistics/getMessageLog' \
--header 'Authorization: Key API_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
   "pagination_token": "PAGINATION_TOKEN_FROM_PREVIOUS_RESPONSE",  // opcional, token para paginación
   "limit": 1000,                                  // opcional, el número máximo de entradas para una sola respuesta
   "application_code": "XXXXX-XXXXX",              // código de aplicación de Pushwoosh
   "message_code": "A444-AAABBBCC-00112233",       // opcional, código de mensaje obtenido de la solicitud /createMessaage
   "message_id": 1234567890,                       // opcional, ID de mensaje obtenido del Panel de Control de Pushwoosh
   "campaign_code": "AAAAA-XXXXX",                 // opcional, código de una campaña para obtener el registro
   "hwid": "aaazzzqqqqxxx",                        // opcional, ID de hardware de un dispositivo específico dirigido con un mensaje
   "user_id": "user_123",                          // opcional, ID de un usuario dirigido con el mensaje
   "date_from": "2000-01-25 00:00:00",             // opcional, inicio del periodo de estadísticas 
   "date_to": "2000-02-10 23:59:59",               // opcional, fin del periodo de estadísticas
   "actions": ["opened", "inbox_opened"],          // opcional, usado para filtrado de resultados. Valores posibles: "sent", "opened", "delivered", "inbox_delivered", "inbox_read", "inbox_opened", "inbox_deleted". La respuesta incluirá todos los mensajes con la(s) acción(es) especificada(s).
   "platforms": ["ios", "chrome"]                  // opcional, usado para filtrado de resultados. Valores posibles: "ios", "android", "osx", "windows", "amazon", "safari", "chrome", "firefox", "ie", "email", "huawei android"
}'
```


<Aside type="caution" title="Importante">
Uno de los siguientes campos es obligatorio:\
\- _message\_id_\
_- message\_code_\
_- campaign\_code_\
_- hwid_\
_- user\_id_\
_- date\_from_ y _date\_to_

Considere aplicar varios parámetros de filtrado para aprovechar al máximo sus estadísticas de mensajes.
</Aside>

<details>
  <summary> Códigos de respuesta y ejemplos </summary>
<Tabs>
<TabItem label="200: OK">
```json
{
  "pagination_token": "PAGINATION_TOKEN_FOR_NEXT_REQUEST",
  "data": [{
    "timestamp": "2000-01-25T11:18:47Z",
    "application_code": "XXXXX-XXXXX",
    "message_id": 12345678900,
    "message_code": "A444-AAABBBCC-00112233",
    "campaign_code": "AAAAA-XXXXX",
    "hwid": "aaazzzqqqqxxx",
    "user_id": "user_123",
    "platform": "android",
    "action": "sent",
    "status": "success",
    "push_alerts_enabled": "true"
  }, {
    "timestamp": "2000-01-25T11:18:49Z",
    "application_code": "XXXXX-XXXXX",
    "message_id": 12345678900,
    "message_code": "A444-AAABBBCC-00112233",
    "campaign_code": "AAAAA-XXXXX",
    "hwid": "aaazzzqqqqxxx",
    "user_id": "user_123",
    "platform": "android",
    "action": "delivered",
    "push_alerts_enabled": "true"
  }, {
    "timestamp": "2000-01-25T11:19:23Z",
    "application_code": "XXXXX-XXXXX",
    "message_id": 12345678900,
    "message_code": "A444-AAABBBCC-00112233",
    "campaign_code": "AAAAA-XXXXX",
    "hwid": "aaazzzqqqqxxx",
    "user_id": "user_123",
    "platform": "android",
    "action": "opened",
    "push_alerts_enabled": "true"
  }]
}
```
</TabItem>

<TabItem label="400: Solicitud Incorrecta">
```json
{
  "error": "exceeded the maximum date interval. Max interval: 30 days"
}
```
</TabItem>

<TabItem label="401: No Autorizado">
```json
{
  "error": "account not found"
}
```
</TabItem>

<TabItem label="500: Error Interno del Servidor">

</TabItem>
</Tabs>

</details>



<Aside type="note">
Los datos se pueden descargar hasta un máximo de 30 días desde la hora actual.
</Aside>


<Aside type="tip">
Para iOS, asegúrese de haber agregado la Extensión de Servicio de Notificación a su proyecto para rastrear la entrega de push. [Más información](/es/developer/pushwoosh-sdk/ios-sdk/ios-message-delivery-tracking)
</Aside>

## Estadísticas de correo electrónico

### linksInteractions

Muestra estadísticas sobre clics en enlaces en correos electrónicos

`POST` `https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractions`


##### Encabezados

| Nombre    <div style="width:200px"></div>         | Requerido <div style="width:100px"></div> | Descripción                                                                                          |
|-----------------|----------|-------------------------------------------------------------------------------------------------------|
| `Authorization` | Sí      | [Token de acceso a la API](/es/developer/api-reference/api-access-token/) desde el Panel de Control de Pushwoosh.        |

##### Parámetros del cuerpo de la solicitud

| Nombre    <div style="width:200px"></div>            | Requerido  <div style="width:50px"></div> |  Tipo | Descripción                                                                                          |
|--------------------|----------|--------|------------------------------------------------------------------------------------------------------|
| `date_range`       | No       | Objeto | Define el periodo del informe. Contiene `date_from` y `date_to`.                                   |
| `filters`          | Sí      | Objeto | Filtros de correo electrónico.                                                                                      |
| `application`      | Sí      | Cadena | [Código de aplicación de Pushwoosh](/es/developer/api-reference/api-identifiers/#application-code) (alternativamente, especifique `campaign`, `messages_ids` o `message_codes`). |
| `messages_codes`   | Sí      | Array  | [Códigos de mensaje](/es/developer/api-reference/api-identifiers/#message-code) (alternativamente, especifique `application`, `campaign` o `messages_ids`).                |
| `campaign`        | Sí      | Cadena | [Código de campaña](/es/developer/api-reference/api-identifiers/#campaign-code) (alternativamente, especifique `application`, `messages_ids` o `message_codes`).           |
| `messages_ids`     | Sí      | Array  | IDs de mensaje (alternativamente, especifique `application`, `campaign` o `message_codes`).                 |
| `link_template`    | Requerido si `application` o `campaign` se especifica.     | Cadena  | Filtra las interacciones de enlaces de correo electrónico por palabra clave. Solo los enlaces que incluyan el texto especificado en su URL se devolverán en la respuesta de la API. Por ejemplo, si su correo electrónico contiene enlaces como `https://example.com/news` y `https://example.com/shop`, establecer "link_template": "shop" devolverá interacciones solo para `https://example.com/shop`.   |
| `email_content_code`        | No       | Cadena | [Identificador único para el contenido del correo electrónico](/es/developer/api-reference/api-identifiers/#email-content-code).                                                                               |
| `params`          | No       | Objeto | Define opciones de respuesta adicionales. Incluye `with_full_links`, que agrega una lista de enlaces completos con estadísticas. |

##### Ejemplo de solicitud

```shell
curl --location --request POST 'https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractions' \
--header 'Authorization: Api API_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
   "filters": {
      "date_range": {
         "date_from": "string",           // Formato requerido: 2000-01-01
         "date_to": "string"              // Formato requerido: 2000-01-01
      },
      "campaign": "string",               // Código de campaña (puede especificar application, messages_ids o message_codes en su lugar)
      "application": "string",            // Código de aplicación (puede especificar campaign, messages_ids o message_codes en su lugar)
      "messages_ids": [],                 // IDs de mensaje (puede especificar application, campaign o message_codes en su lugar)
      "messages_codes": [],               // Códigos de mensaje (puede especificar application, campaign o message_ids en su lugar)
      "link_template": "string",          // Plantilla de enlace (requerido si application o campaign se especifica)
      "email_content_code": "string"      // Identificador único para el contenido del correo electrónico.
   },
   "params": {
      "with_full_links": true             // Especificar si mostrar estadísticas detalladas. Se pasará una lista de enlaces completos con estadísticas en la matriz full_links.
   }
}'
``` 

##### Códigos de respuesta y ejemplos
<Tabs>
<TabItem label="200: OK">
```json
{
  "items": [{
    "template": "string",
    "link": "string",
    "title": "string",
    "clicks": 0,
    "full_links": [{
      "full_link": "string",
      "clicks": 0
    }]
  }]
}
```
</TabItem>

<TabItem label="400: Solicitud Incorrecta">
```json
{
  "error": "exceeded the maximum date interval. Max interval: 30 days"
}
```
</TabItem>

<TabItem label="401: No Autorizado">
```json
{
  "error": "account not found"
}
```
</TabItem>

<TabItem label="500: Error Interno del Servidor">

</TabItem>
</Tabs>



### linksInteractionsDevices

Muestra usuarios que hicieron clic en enlaces en correos electrónicos

`POST` `https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractionsDevices`


##### Encabezados

| Nombre  <div style="width:150px"></div>            | Requerido <div style="width:100px"></div> | Descripción                                                                                          |
|-----------------|----------|------------------------------------------------------------------------------------------------------|
| `Authorization` | Sí      | [Token de acceso a la API](/es/developer/api-reference/api-access-token/) desde el Panel de Control de Pushwoosh.    |



##### Parámetros del cuerpo de la solicitud

| Nombre    <div style="width:150px"></div>            | Requerido  <div style="width:100px"></div> | Tipo    | Descripción                                                                                          |
|--------------------|----------|---------|------------------------------------------------------------------------------------------------------|
| `date_range`       | No       | Objeto  | Define el periodo del informe. Contiene `date_from` y `date_to`.                                   |
| `filters`          | Sí      | Objeto  | Filtros de correo electrónico.                                                                                      |
| `application`      | Sí      | Cadena  | [Código de aplicación de Pushwoosh](/es/developer/api-reference/api-identifiers/#application-code) (alternativamente, especifique `campaign`, `messages_ids` o `message_codes`). |
| `messages_codes`   | Sí      | Array   | [Códigos de mensaje](/es/developer/api-reference/api-identifiers/#message-code) (alternativamente, especifique `application`, `campaign` o `messages_ids`).                |
| `campaign`         | Sí      | Cadena  | [Código de campaña](/es/developer/api-reference/api-identifiers/#campaign-code) (alternativamente, especifique `application`, `messages_ids` o `message_codes`).           |
| `messages_ids`     | Sí      | Array   | IDs de mensaje (alternativamente, especifique `application`, `campaign` o `message_codes`).                 |
| `link_template`    | Requerido si `application` o `campaign` se especifica.     | Cadena  | Filtra las interacciones de enlaces de correo electrónico por palabra clave. Solo los enlaces que incluyan el texto especificado en su URL se devolverán en la respuesta de la API. Por ejemplo, si su correo electrónico contiene enlaces como `https://example.com/news` y `https://example.com/shop`, establecer "link_template": "shop" devolverá interacciones solo para `https://example.com/shop`.   |
| `email_content_code`         | No       | Cadena  | [Identificador único para el contenido del correo electrónico](/es/developer/api-reference/api-identifiers/#email-content-code).                                                                             |
| `page`            | No       | Entero | Número de página para paginación.                                                                         |
| `per_page`        | No       | Entero | Número de resultados por página (≤ 1000).                                                                |

##### Ejemplo de solicitud

```shell
curl --location --request POST 'https://api.pushwoosh.com/api/v2/statistics/emails/linksInteractionsDevices' \
--header 'Authorization: Api API_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
   "filters": {
      "date_range": {
         "date_from": "string",         // Formato requerido: 2000-01-01
         "date_to": "string"            // Formato requerido: 2000-01-01
      },
      "campaign": "string",             // Código de campaña (puede especificar application, messages_ids o message_codes en su lugar)
      "application": "string",          // Código de aplicación (puede especificar campaign, messages_ids o message_codes en su lugar)
      "messages_ids": [],               // IDs de mensaje (puede especificar application, campaign o message_codes en su lugar)
      "messages_codes": [],             // Códigos de mensaje (puede especificar application, campaign o message_ids en su lugar)
      "link_template": "string",        // Plantilla de enlace (requerido si application o campaign se especifica)
      "email_content_code": "string"    // Identificador único para el contenido del correo electrónico.
   },
   "per_page": 100,
   "page": 0
}'
``` 

##### Códigos de respuesta y ejemplos
<Tabs>
<TabItem label="200: OK">
```json
{
  "total": 0,
  "items": [{
    "timestamp": "string",
    "link": "string",
    "hwid": "string"
  }]
}
```
</TabItem>

<TabItem label="400: Solicitud Incorrecta">
```json
{
  "error": "exceeded the maximum date interval. Max interval: 30 days"
}
```
</TabItem>

<TabItem label="401: No Autorizado">
```json
{
  "error": "account not found"
}
```
</TabItem>

<TabItem label="500: Error Interno del Servidor">

</TabItem>
</Tabs>


### bouncedEmails

**POST** `https://api.pushwoosh.com/api/v2/statistics/emails/bouncedEmails`

Proporciona datos sobre quejas de correo electrónico, rebotes suaves (soft bounces) y rebotes duros (hard bounces), incluida la fecha, la dirección de correo electrónico y el motivo de cada rebote.

##### Autorización

La autorización se maneja a través del Token de Acceso a la API en el encabezado de la solicitud.

##### Parámetros del cuerpo de la solicitud

| Nombre del parámetro | Tipo   | Descripción                                                                                      | Requerido                                       |
|----------------|--------|--------------------------------------------------------------------------------------------------|------------------------------------------------|
| `application`  | cadena | [Código de aplicación de Pushwoosh](/es/developer/api-reference/api-identifiers/#application-code)                                                                             | Sí                                            |
| `message_code` | cadena | [Código de mensaje](/es/developer/api-reference/api-identifiers/#message-code).                                                                                 | Requerido si `date range` o `campaign` no se proporciona        |
| `campaign` | cadena | [Código de campaña](/es/developer/api-reference/api-identifiers/#campaign-code).    | Requerido si `message_code` o `date range` no se proporciona        |
| `date_from`    | cadena | La fecha de inicio para los datos en el formato `YYYY-MM-DDTHH:MM:SS.000Z` (estándar ISO 8601).         | Requerido si `message_code` o `campaign` no se proporciona     |
| `date_to`      | cadena | La fecha de fin para los datos en el formato `YYYY-MM-DDTHH:MM:SS.000Z` (estándar ISO 8601).           | Requerido si `message_code` o `campaign` no se proporciona     |
| `per_page`     | entero    | El número de filas por página, máximo 5000.                                                        | Sí                                            |
| `page`         | entero    | El número de página, comenzando desde cero.                                                              | Sí                                            |
| `type`         | cadena | El tipo de rebote: Complaint, Softbounce, Hardbounce.                                            | No                                             |

##### Ejemplo de solicitud

```
{
  "application": "XXXXX-XXXXX",               // requerido. Código de aplicación de Pushwoosh
  "message_code": "XXXXX-XXXXXXXXX-XXXXXXXX", // requerido si campaign o date range no se proporciona.
                                              //          Identificador único del mensaje
  "campaign": "XXXXX-XXXXX",                  // requerido si message_code o date range no se proporciona.
                                              //          Código de campaña
  "date_from": "2024-07-20T00:00:00.000Z",    // requerido si message_code o campaign no se proporciona.
                                              //          Fecha de inicio en formato ISO 8601 "YYYY-MM-DDTHH:MM:SS.SSSZ"
  "date_to": "2024-07-20T00:00:00.000Z",      // requerido si message_code o campaign no se proporciona.
                                              //          Fecha de fin en formato ISO 8601 "YYYY-MM-DDTHH:MM:SS.SSSZ"
  "per_page": 1000,                           // requerido. Número de resultados por página, máximo 5000
  "page": 5,                                  // opcional. Número de página, comenzando desde cero
  "type": "Softbounce"                        // opcional. El tipo de rebote: Complaint, Softbounce, Hardbounce 
}

```

##### Campos de respuesta

| Nombre del campo        | Tipo   | Descripción                                                                 |
|-------------------|--------|-----------------------------------------------------------------------------|
| `total`           | entero    | El recuento total de filas.                                                    |
| `bounced_emails`  | array  | Una matriz de detalles de correos electrónicos rebotados.                                           |
| ├── `email`       | cadena | La dirección de correo electrónico que rebotó.                                              |
| ├── `date`        | cadena | La fecha del rebote (formato: `YYYY-MM-DDTHH:MM:SS.000Z`).                |
| ├── `reason`      | cadena | El motivo del rebote.                                                   |
| └── `type`        | cadena | El tipo de rebote: Complaint, Softbounce, Hardbounce.                       |

##### Ejemplo de respuesta

```
{
  "total": 25,                             // Recuento total de filas.
  "bounced_emails": [{
    "email": "example@example.com",        // Dirección de correo electrónico que rebotó
    "date": "2024-07-20T00:00:00.000Z",    // Fecha del rebote en formato ISO 8601
    "reason": "Invalid recipient address", // Motivo del rebote
    "type": "Hardbounce"                   // Tipo de rebote: Complaint, Softbounce, Hardbounce
  }]
}
```