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

# Journal d'hameçonnage par courriel

> Recréez le journal d'hameçonnage au niveau des événements d'un fournisseur précédent à partir des événements et des entités de simulation des rapports /v1.

Ce rapport est un journal d'hameçonnage au niveau des événements : une ligne par interaction de simulation observée (date, action, courriel du destinataire, objet, expéditeur, difficulté). Il
reste en format long : il ne regroupe pas l'historique d'une personne en un
seul résultat.

La requête intègre les **12 derniers mois civils** dans `occurred_after`
(minuit UTC le même jour du mois, il y a douze mois — et non une durée de 365 jours).

<Note>
  L'adresse IP brute du client ne figure jamais dans `/v1` : il s'agit d'une protection de la vie privée dès la conception, et non d'une correspondance en attente. Le type d'appareil est une classe dérivée sur la ligne de l'événement; la valeur brute
  `user_agent` reste privée. Consultez
  [Différences par rapport à l'exportation héritée](#diff%C3%A9rences-par-rapport-%C3%A0-l-exportation-h%C3%A9rit%C3%A9e).
</Note>

La configuration, les identifiants, la pagination et la reprise en cas de limitation de débit sont identiques à ceux du
[guide de connectivité Power BI / Excel](/fr-CA/developers/v1/powerbi). Ajoutez d'abord la requête partagée
`Fn_FetchAll`; ce rapport l'appelle par son nom.

## Portées de clé requises

| Portée | Utilisation |
| - | - |
| `reporting:read` | `GET /v1/reporting/simulation_events` |
| `entity:read` | `GET /v1/entities` (jointure du courriel et du nom d'affichage) |

Une clé disposant uniquement de `simulation:read` ne peut pas appeler le point de terminaison des événements de rapport
(l'API renvoie `403`). Consultez
[choisir la bonne granularité](/fr-CA/developers/v1/powerbi#choisir-la-bonne-granularit%C3%A9).

## Points de terminaison sources

| Point de terminaison | Rôle |
| - | - |
| `GET /v1/reporting/simulation_events` | Fait au niveau des événements. La granularité est une interaction saisie. `email_subject`, `sender_email`, `sender_domain` et `difficulty_tier` figurent sur cette ligne; la requête ne joint donc pas les résultats au niveau de la campagne pour ces champs. |
| `GET /v1/entities` | Résout `entity_id` → courriel / nom d'affichage. L'événement de rapport omet le courriel du destinataire (exclusion stricte du lecteur de rapports). Le parcours de `/entities` permet de renseigner la colonne « email » héritée. |

Filtres autorisés sur la liste des événements (tout autre filtre renvoie `400`) :
`limit`, `page_token`, `simulation`, `entity`, `event_type`,
`occurred_after`.

Cette famille de rapports est un [jeu de données en préversion](/fr-CA/developers/v1/powerbi#jeux-de-donn%C3%A9es-de-reporting-en-pr%C3%A9version-hame%C3%A7onnage-par-personne).
Consultez le schéma du jeu de données et les politiques de données à
`GET /v1/reporting/datasets` et
`GET /v1/reporting/datasets/simulation_events`.

### Granularité

Une ligne par événement de simulation de rapport. Une personne qui a ouvert puis
cliqué sur le même message produit deux lignes. Les événements dont `entity_id` est nul
(aucun acteur, destinataire ou participant cible) apparaissent quand même : `email` est
nul.

La fenêtre de l'API est élargie d'une minute; la borne exacte
`occurred_at >= WindowStart` est réappliquée localement afin que la dernière
année ne dépende pas du fait que le serveur traite `occurred_after` comme
inclusif ou exclusif.

Budget de requêtes : un parcours paginé des événements dans la fenêtre, plus un parcours
des entités. Définissez toujours `limit = "500"`.

## Correspondance des colonnes

Les noms de colonnes hérités proviennent de l'exportation de votre fournisseur précédent. Les champs `/v1`
sont les noms de l'API publique; la requête en renomme certains pour le rapport.

| Colonne héritée | Champ `/v1` ou dérivation | Colonne du rapport |
| - | - | - |
| Date | `Event.occurred_at` (sous forme de date; la valeur brute `occurred_at` est conservée dans `datetimezone`) | `date` |
| Action | `Event.event_type` — jetons fermés énumérés ci-dessous | `action` |
| Email | `Entity.email` (jointure sur `entity_id`) | `email` |
| Subject | `Event.email_subject` | `subject` |
| From | `Event.sender_email` | `from` |
| Difficulty | `Event.difficulty_tier` — entier de 1 à 5, 1 étant le plus facile et 5 le plus difficile | `difficulty` |
| Raw IP | Jamais dans `/v1` | Omise, non mise à nul |
| Device type | `Event.device_type` — classe dérivée; nul lorsque l'événement n'a pas de classe dérivée | `device_type` |

### Jetons d'action

`action` est le jeton fermé du rapport. L'ancien « Email Sent » correspond à
`simulation.delivered` (`delivered` est le verbe public; le jeton transmis est
`simulation.delivered`).

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

Champs supplémentaires conservés parce que l'API les fournit : `sender_domain`, `full_name`,
`event_id`, `entity_id`, `simulation_id`, `occurred_at`, ainsi que
`entity_type` et `entity_status` provenant de la jointure d'entités.

## Différences par rapport à l'exportation héritée

* **L'adresse IP brute n'est jamais disponible.** `/v1` n'expose pas l'adresse IP brute du client :
  il s'agit d'une protection de la vie privée dès la conception, et non d'une correspondance en attente. La requête n'ajoute pas de colonne IP fictive.
* **Le type d'appareil est dérivé, et non brut.** `device_type` est une classe d'appareil dérivée
  pour les événements de clic, de soumission et de signalement. Les jetons observés comprennent
  `desktop`, `mobile`, `tablet` et `unknown`, mais l'émetteur stocke une
  chaîne libre : traitez-la comme du texte ouvert, et non comme une énumération fermée. Elle est nulle
  lorsque l'événement n'a pas de classe dérivée, et la chaîne brute `user_agent`
  reste privée.
* **« Email Sent » correspond à `simulation.delivered`.** Utilisez ce jeton lorsque vous
  filtrez ou comptez les envois. Ne cherchez pas de chaîne `email_sent` héritée.
* **Le courriel du destinataire est obtenu par jointure, et non par un champ de l'événement.** L'événement
  de rapport omet le courriel; la requête parcourt `/entities` pour le renseigner.
* **12 derniers mois civils**, et non une durée de 365 jours, ni
  l'historique complet.
* **Format long, sans regroupement.** Une ligne par interaction, et non un résultat
  par personne.

## Prochaines étapes

<CardGroup cols={2}>
  <Card title="Configuration de Power BI et d'Excel" href="/fr-CA/developers/v1/powerbi">
    Identifiants, pagination et chargement de ces requêtes dans Power BI ou Excel.
  </Card>

  <Card title="Utilisateurs les plus vulnérables" href="/fr-CA/developers/v1/reports/most-susceptible-users">
    Cumul par personne des clics, des identifiants saisis et des signalements sur 12 mois.
  </Card>

  <Card title="Conformité par personne" href="/fr-CA/developers/v1/reports/per-person-compliance">
    Inscriptions à la Formation selon la granularité personne × affectation.
  </Card>

  <Card title="Clés d'API" href="/fr-CA/developers/developer-hub/api-keys">
    Accordez `reporting:read` et `entity:read` à la clé qui actualise ce rapport.
  </Card>
</CardGroup>


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