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

# Registro de phishing por correo electrónico

> Recree el registro de phishing a nivel de evento de un proveedor anterior a partir de los eventos y las entidades de simulación de los informes de /v1.

Este informe es un registro de phishing a nivel de evento: una fila por cada interacción de simulación observada (fecha, acción, correo electrónico del destinatario, asunto, remitente, dificultad). Mantiene el formato largo: no condensa el historial de una persona en un único resultado.

La consulta incorpora los **12 meses naturales** más recientes en `occurred_after` (medianoche UTC del mismo día del mes de hace doce meses, no una duración de 365 días).

<Note>
  La IP del cliente sin procesar nunca está en `/v1`: es una decisión de privacidad por diseño, no una asignación pendiente. El tipo de dispositivo es una clase derivada en la fila del evento; el valor sin procesar de `user_agent` permanece privado. Consulte
  [Diferencias con la exportación anterior](#diferencias-con-la-exportaci%C3%B3n-anterior).
</Note>

La configuración, las credenciales, la paginación y el reintento por límite de solicitudes son los mismos que se describen en la [guía de conectividad de Power BI / Excel](/es/developers/v1/powerbi). Agregue primero la consulta compartida `Fn_FetchAll`; este informe la invoca por su nombre.

## Ámbitos de clave necesarios

| Ámbito | Uso |
| - | - |
| `reporting:read` | `GET /v1/reporting/simulation_events` |
| `entity:read` | `GET /v1/entities` (unión por correo electrónico y nombre para mostrar) |

Una clave con el único permiso `simulation:read` no puede llamar al endpoint de eventos de informes (la API devuelve `403`). Consulte
[elija la granularidad adecuada](/es/developers/v1/powerbi#elija-la-granularidad-adecuada).

## Endpoints de origen

| Endpoint | Función |
| - | - |
| `GET /v1/reporting/simulation_events` | Hecho a nivel de evento. La granularidad es una interacción tipificada. `email_subject`, `sender_email`, `sender_domain` y `difficulty_tier` están en esta fila, por lo que la consulta no une los resultados a nivel de campaña para esos campos. |
| `GET /v1/entities` | Resuelve `entity_id` → correo electrónico / nombre para mostrar. El evento de informes omite el correo electrónico del destinatario (una exclusión estricta en el lector de informes). Recorrer `/entities` es la forma de rellenar la columna "email" heredada. |

Filtros permitidos en la lista de eventos (cualquier otro devuelve `400`):
`limit`, `page_token`, `simulation`, `entity`, `event_type`,
`occurred_after`.

Esta familia de informes es un [conjunto de datos en versión preliminar](/es/developers/v1/powerbi#conjuntos-de-datos-de-vista-previa-de-reporting-phishing-por-persona).
Inspeccione el esquema del conjunto de datos y las políticas de datos en
`GET /v1/reporting/datasets` y
`GET /v1/reporting/datasets/simulation_events`.

### Granularidad

Una fila por evento de simulación de informes. Una persona que abrió y luego hizo clic en el mismo mensaje genera dos filas. Los eventos con `entity_id` nulo (sin actor / destinatario / participante objetivo) también aparecen; `email` es nulo.

La ventana de la API se amplía en un minuto; el límite exacto de `occurred_at >= WindowStart` se vuelve a aplicar localmente para que el último año no dependa de si el servidor trata `occurred_after` como inclusivo o exclusivo.

Presupuesto de solicitudes: un recorrido paginado de los eventos en la ventana, más un recorrido de las entidades. Establezca siempre `limit = "500"`.

## Asignación de columnas

Los nombres de las columnas heredadas provienen de la exportación de su proveedor anterior. Los campos de `/v1` son los nombres públicos de la API; la consulta asigna alias a algunos de ellos para el informe.

| Columna heredada | Campo o derivación de `/v1` | Columna del informe |
| - | - | - |
| Date | `Event.occurred_at` (como fecha; el valor sin procesar de `occurred_at` se conserva como `datetimezone`) | `date` |
| Action | `Event.event_type`: tokens cerrados que se indican a continuación | `action` |
| Email | `Entity.email` (unión por `entity_id`) | `email` |
| Subject | `Event.email_subject` | `subject` |
| From | `Event.sender_email` | `from` |
| Difficulty | `Event.difficulty_tier`: entero del 1 al 5, donde 1 es el más fácil y 5 el más difícil | `difficulty` |
| Raw IP | Nunca en `/v1` | Omitida, no nula |
| Device type | `Event.device_type`: clase derivada; nulo cuando el evento no tiene clase derivada | `device_type` |

### Tokens de acción

`action` es el token cerrado de informes. El "Email Sent" heredado se asigna a `simulation.delivered` (`delivered` es el verbo público; el token en la red es `simulation.delivered`).

| Valor de `action` |
| - |
| `simulation.delivered` |
| `simulation.opened` |
| `simulation.link_clicked` |
| `simulation.credentials_submitted` |
| `simulation.attachment_opened` |
| `simulation.reported` |
| `simulation.bounced` |
| `simulation.qr_scanned` |
| `simulation.replied` |

Campos adicionales que se conservan porque la API los incluye: `sender_domain`, `full_name`, `event_id`, `entity_id`, `simulation_id`, `occurred_at`, además de `entity_type` y `entity_status` de la unión de entidades.

## Diferencias con la exportación anterior

* **La IP sin procesar nunca está disponible.** `/v1` no expondrá la IP del cliente sin procesar: es una decisión de privacidad por diseño, no una asignación pendiente. La consulta no agrega una columna de IP de marcador de posición.
* **El tipo de dispositivo es derivado, no sin procesar.** `device_type` es una clase de dispositivo derivada para los eventos de clic, envío e informe. Entre los tokens observados se incluyen `desktop`, `mobile`, `tablet` y `unknown`, pero el emisor almacena una cadena de formato libre: trátela como texto abierto, no como una enumeración cerrada. Es nulo cuando el evento no tiene clase derivada, y la cadena `user_agent` sin procesar permanece privada.
* **"Email Sent" es `simulation.delivered`.** Utilice ese token al filtrar o contar envíos. No busque una cadena heredada `email_sent`.
* **El correo electrónico del destinatario es una unión, no un campo del evento.** El evento de informes omite el correo electrónico; la consulta recorre `/entities` para completarlo.
* **Últimos 12 meses naturales**, no una duración de 365 días ni el historial completo.
* **Formato largo, no condensado.** Una fila por interacción, no un resultado por persona.

## Siguientes pasos

<CardGroup cols={2}>
  <Card title="Configuración de Power BI y Excel" href="/es/developers/v1/powerbi">
    Credenciales, paginación y carga de estas consultas en Power BI o Excel.
  </Card>

  <Card title="Usuarios más susceptibles" href="/es/developers/v1/reports/most-susceptible-users">
    Resumen por persona de clics, credenciales e informes de los últimos 12 meses.
  </Card>

  <Card title="Cumplimiento por persona" href="/es/developers/v1/reports/per-person-compliance">
    Inscripciones de Capacitación con granularidad de persona × asignación.
  </Card>

  <Card title="Claves de API" href="/es/developers/developer-hub/api-keys">
    Otorgue `reporting:read` y `entity:read` a la clave que actualiza este informe.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.