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

# Métriques d'enrichissement des événements (API)

> Didit : consultez les compteurs d'ingestion et d'enrichissement IP d'une période, dont taux de cache et ratio d'IP uniques.

Prompt pour l'API Get Event Enrichment Metrics
Copier le prompt dans le presse-papiers

<pre>
  \`Read the event ingestion and IP-enrichment counters of my Didit application for a period.

  Endpoint:
  GET [https://verification.didit.me/v3/events/enrichment-metrics/?days=30](https://verification.didit.me/v3/events/enrichment-metrics/?days=30)

  Authentication:
  Use the x-api-key header with my Didit API key. A scoped key needs transactions: read.

  Goal:

  * Monitor event volume and confirm that IP enrichment is resolved once per unique address rather than once per event, for a usage dashboard or an alert.

  Behavior:

  * days defaults to 30 and is clamped to 1-365; a non-integer value falls back to 30.
  * The period covers today plus the previous days days, by UTC calendar day.
  * Counters are summed over every lane (server, batch and device).
  * The three ratios are null when their denominator is zero.

  Example call:
  curl -X GET "[https://verification.didit.me/v3/events/enrichment-metrics/?days=30](https://verification.didit.me/v3/events/enrichment-metrics/?days=30)" \
  -H "x-api-key: YOUR\_API\_KEY"

  What to read from the response:

  * events\_ingested - new events stored (replays are not counted).
  * events\_rejected - items rejected inside batch requests (a rejected single-event request is not counted).
  * enrichment\_lookups - events whose public IP address was resolved; enrichment\_cache\_hits - answered from the cache; enrichment\_provider\_calls - needed a fresh resolution.
  * enrichment\_skipped\_low\_value - low-value telemetry whose address was not cached; it never triggers a lookup of its own.
  * unique\_ips\_seen - distinct addresses that needed a fresh resolution.
  * cache\_hit\_rate, unique\_ip\_ratio, provider\_calls\_per\_1k\_events - the ratios.
  * period\_days - the period actually applied.

  Failure modes:

  * 401 - the API key has expired.
  * 403 - missing API key (a wrong, revoked or expired key gets 401), or a scoped key without transactions: read.

  Side effects: none. This is a pure read.

  For the full integration shape, see /integration/integration-prompt.\`
</pre>

Coller dans

La Business Console affiche les mêmes chiffres au-dessus de la liste des événements. Consultez [Enrichissement IP](https://docs.didit.me/fr/transaction-monitoring/events.md#enrichissement-ip) dans le guide d'ingestion des événements pour comprendre pourquoi la télémétrie à faible valeur ne consulte l'enrichissement que lorsqu'un autre événement a déjà résolu l'adresse, et [Enrichissement IP](https://docs.didit.me/fr/transaction-monitoring/ip-enrichment.md) pour les champs associés à une adresse enrichie.


## OpenAPI

````yaml fr/openapi-25.json GET /v3/events/enrichment-metrics/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de vérification d'identité. Authentifiez-vous avec l'en-tête x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/events/enrichment-metrics/:
    get:
      tags:
        - Monitoring Events
      summary: Obtenir les métriques d'enrichissement des événements
      description: >-
        Renvoie les compteurs d'ingestion d'événements et d'enrichissement d'IP
        de votre application pour une période donnée, totalisés sur chaque canal
        (serveur, lot et appareil), afin que vous puissiez suivre le volume
        d'événements et confirmer que l'enrichissement est résolu une seule fois
        par adresse unique plutôt qu'une fois par événement. La période couvre
        aujourd'hui ainsi que les `days` jours précédents, décomptés selon la
        date calendaire UTC. Les trois ratios sont nuls lorsque leur
        dénominateur est égal à zéro. Une clé API avec portée nécessite
        `transactions: read`. Voir [Enrichissement
        d'IP](https://docs.didit.me/fr/transaction-monitoring/events#enrichissement-ip).
      operationId: get_monitoring_event_enrichment_metrics
      parameters:
        - name: days
          in: query
          required: false
          description: >-
            Durée de la période en jours. Vaut 30 par défaut ; les valeurs sont
            limitées entre 1 et 365, et une valeur non entière revient à 30. La
            valeur appliquée est renvoyée sous la forme `period_days`.
          schema:
            type: integer
            default: 30
            minimum: 1
            maximum: 365
          example: 30
      responses:
        '200':
          description: Compteurs et ratios pour la période.
          content:
            application/json:
              schema:
                type: object
                required:
                  - events_ingested
                  - events_rejected
                  - enrichment_lookups
                  - enrichment_cache_hits
                  - enrichment_provider_calls
                  - enrichment_skipped_low_value
                  - unique_ips_seen
                  - period_days
                  - cache_hit_rate
                  - unique_ip_ratio
                  - provider_calls_per_1k_events
                properties:
                  events_ingested:
                    type: integer
                    description: >-
                      Nouveaux événements enregistrés. Les rejouements
                      idempotents ne sont pas comptabilisés.
                  events_rejected:
                    type: integer
                    description: >-
                      Éléments rejetés dans les requêtes par lots (flux serveur
                      et appareil). Une requête d'événement unique rejetée n'est
                      pas comptabilisée.
                  enrichment_lookups:
                    type: integer
                    description: >-
                      Événements dont l'adresse IP publique a été résolue,
                      depuis le cache ou récemment.
                  enrichment_cache_hits:
                    type: integer
                    description: Recherches servies depuis le cache.
                  enrichment_provider_calls:
                    type: integer
                    description: >-
                      Recherches ayant nécessité une nouvelle résolution de
                      l'adresse.
                  enrichment_skipped_low_value:
                    type: integer
                    description: >-
                      Événements de télémétrie de faible valeur dont l'adresse
                      n'était pas déjà connue. Ils ne déclenchent jamais de
                      nouvelle résolution qui leur soit propre.
                  unique_ips_seen:
                    type: integer
                    description: Adresses nécessitant une nouvelle résolution.
                  period_days:
                    type: integer
                    description: >-
                      La valeur `days` appliquée après limitation aux bornes
                      autorisées.
                  cache_hit_rate:
                    type: number
                    nullable: true
                    description: >-
                      `enrichment_cache_hits / enrichment_lookups`, arrondi à 4
                      décimales. Null lorsqu'il n'y a eu aucune recherche.
                  unique_ip_ratio:
                    type: number
                    nullable: true
                    description: >-
                      `unique_ips_seen / events_ingested`, arrondi à 4
                      décimales. Null lorsqu'aucun événement n'a été ingéré.
                  provider_calls_per_1k_events:
                    type: number
                    nullable: true
                    description: >-
                      Résolutions fraîches pour 1000 événements ingérés,
                      arrondies à 2 décimales. Null si aucun événement n'a été
                      ingéré.
              examples:
                Last 30 days:
                  value:
                    events_ingested: 128450
                    events_rejected: 214
                    enrichment_lookups: 41230
                    enrichment_cache_hits: 40118
                    enrichment_provider_calls: 1112
                    enrichment_skipped_low_value: 74320
                    unique_ips_seen: 1112
                    period_days: 30
                    cache_hit_rate: 0.973
                    unique_ip_ratio: 0.0087
                    provider_calls_per_1k_events: 8.66
                No events yet:
                  value:
                    events_ingested: 0
                    events_rejected: 0
                    enrichment_lookups: 0
                    enrichment_cache_hits: 0
                    enrichment_provider_calls: 0
                    enrichment_skipped_low_value: 0
                    unique_ips_seen: 0
                    period_days: 30
                    cache_hit_rate: null
                    unique_ip_ratio: null
                    provider_calls_per_1k_events: null
        '401':
          description: >-
            La clé API restreinte a expiré. Seule une clé expirée renvoie `401`
            ; une clé manquante ou invalide renvoie `403`.
          content:
            application/json:
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Un en-tête `x-api-key` manquant (une clé erronée, révoquée ou
            expirée renvoie `401`), une clé restreinte sans `transactions:
            read`, une clé limitée à certains workflows ou à des sessions
            approuvées (une telle clé n'accède jamais aux données de
            surveillance des transactions), ou une requête provenant de
            l'extérieur de la liste d'autorisation IP de la clé.
          content:
            application/json:
              examples:
                Missing or invalid API key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without access:
                  value:
                    detail: This API key has no read access to transactions.
                Key limited to workflows or approved sessions:
                  value:
                    detail: >-
                      This API key only reaches sessions inside its workflow or
                      status limits, so it can't use this endpoint.
                IP not allowed:
                  value:
                    detail: This API key can't be used from this IP address.
        '429':
          description: >-
            Limite de débit dépassée : les requêtes `GET` partagent un quota de
            600 requêtes par minute par clé API. Attendez `Retry-After`
            secondes, puis réessayez.
          headers:
            Retry-After:
              description: Secondes à attendre avant de réessayer.
              schema:
                type: integer
                minimum: 1
                example: 30
          content:
            application/json:
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/events/enrichment-metrics/?days=30'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.monitoring_events.retrieve_enrichment_metrics()
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            const result = await
            didit.monitoringEvents.retrieveEnrichmentMetrics();

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.MonitoringEvents.RetrieveEnrichmentMetrics(ctx, didit.MonitoringEventsRetrieveEnrichmentMetricsParams{})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            var result = client.monitoringEvents().retrieveEnrichmentMetrics();
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->monitoringEvents->retrieveEnrichmentMetrics();
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.monitoring_events.retrieve_enrichment_metrics
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await
            client.MonitoringEvents.RetrieveEnrichmentMetricsAsync();

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clé API de votre application, issue de Développeurs -> Clés API dans
        la Business Console. La clé principale dispose d'un accès complet. Une
        clé nommée peut être restreinte : aucun, lecture ou écriture par
        ressource, limitée à certains workflows ou aux sessions approuvées, à
        une liste d'adresses IP et à une date d'expiration. 401 signifie que la
        clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a
        été envoyée, que la clé n'a pas accès à cette ressource ou action, ou
        que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur
        une route de session signifie que la session est hors des workflows ou
        des statuts de la clé. Une clé sans accès aux médias reçoit les URL
        d'images, de vidéos et de PDF à null, et une clé sans accès en écriture
        aux sessions reçoit les liens et tokens de session à null. Voir
        https://docs.didit.me/console/api-keys.

````

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