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

# Event-Anreicherungsmetriken API

> Didit Management API liefert Zähler für Ereignisaufnahme und IP-Anreicherung: Cache-Trefferquote, Anteil eindeutiger Adressen, frische Abfragen.

API-Prompt: Metriken zur Ereignisanreicherung abrufen
Prompt in die Zwischenablage kopieren

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

Einfügen in

Die Business Console zeigt dieselben Zahlen oberhalb der Ereignisliste an. Im Leitfaden zur Ereignisaufnahme erfahren Sie unter [IP-Anreicherung](https://docs.didit.me/de/transaction-monitoring/events.md#ip-anreicherung), warum Telemetriedaten mit geringem Informationswert die Anreicherung nur dann auslesen, wenn ein anderes Ereignis die Adresse bereits aufgelöst hat. Welche Felder eine angereicherte Adresse enthält, steht unter [IP-Anreicherung](https://docs.didit.me/de/transaction-monitoring/ip-enrichment.md).


## OpenAPI

````yaml de/openapi-25.json GET /v3/events/enrichment-metrics/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API für Ausweisverifizierung. Authentifizierung über den x-api-key-Header.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/events/enrichment-metrics/:
    get:
      tags:
        - Monitoring Events
      summary: Metriken zur Ereignisanreicherung abrufen
      description: >-
        Gibt die Zähler für Ereignis-Ingestion und IP-Anreicherung Ihrer
        Anwendung für einen Zeitraum zurück, summiert über alle
        Verarbeitungskanäle (Server, Batch und Gerät), damit Sie das
        Ereignisvolumen überwachen und bestätigen können, dass die Anreicherung
        einmal pro eindeutiger Adresse und nicht einmal pro Ereignis aufgelöst
        wird. Der Zeitraum umfasst den heutigen Tag plus die vorherigen `days`
        Tage, gezählt nach UTC-Kalenderdatum. Die drei Verhältnisse sind null,
        wenn ihr Nenner null ist. Ein API-Schlüssel mit eingeschränktem
        Geltungsbereich benötigt `transactions: read`. Siehe
        [IP-Anreicherung](https://docs.didit.me/de/transaction-monitoring/events#ip-anreicherung).
      operationId: get_monitoring_event_enrichment_metrics
      parameters:
        - name: days
          in: query
          required: false
          description: >-
            Länge des Zeitraums in Tagen. Standardmäßig 30; Werte werden auf 1
            bis 365 begrenzt, und ein nicht-ganzzahliger Wert fällt auf 30
            zurück. Der angewendete Wert wird als `period_days` zurückgegeben.
          schema:
            type: integer
            default: 30
            minimum: 1
            maximum: 365
          example: 30
      responses:
        '200':
          description: Zähler und Verhältnisse für den Zeitraum.
          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: >-
                      Neue Ereignisse gespeichert. Idempotente Wiederholungen
                      werden nicht gezählt.
                  events_rejected:
                    type: integer
                    description: >-
                      In Batch-Anfragen abgelehnte Elemente (Server- und
                      Gerätepfade). Eine abgelehnte Einzelereignis-Anfrage wird
                      nicht gezählt.
                  enrichment_lookups:
                    type: integer
                    description: >-
                      Ereignisse, deren öffentliche IP-Adresse aufgelöst wurde,
                      aus dem Cache oder gerade erst aufgelöst.
                  enrichment_cache_hits:
                    type: integer
                    description: Abfragen, die aus dem Cache beantwortet wurden.
                  enrichment_provider_calls:
                    type: integer
                    description: Abfragen, die eine neue Auflösung der Adresse erforderten.
                  enrichment_skipped_low_value:
                    type: integer
                    description: >-
                      Telemetrie-Ereignisse mit geringem Wert, deren Adresse
                      noch nicht bekannt war. Sie lösen niemals von sich aus
                      eine neue Auflösung aus.
                  unique_ips_seen:
                    type: integer
                    description: Adressen, die eine erneute Auflösung erforderten.
                  period_days:
                    type: integer
                    description: Der nach der Begrenzung angewendete `days`-Wert.
                  cache_hit_rate:
                    type: number
                    nullable: true
                    description: >-
                      `enrichment_cache_hits / enrichment_lookups`, auf 4
                      Dezimalstellen gerundet. Null, wenn keine Abfragen
                      stattgefunden haben.
                  unique_ip_ratio:
                    type: number
                    nullable: true
                    description: >-
                      `unique_ips_seen / events_ingested`, auf 4 Dezimalstellen
                      gerundet. Null, wenn keine Ereignisse erfasst wurden.
                  provider_calls_per_1k_events:
                    type: number
                    nullable: true
                    description: >-
                      Neue Auflösungen pro 1000 erfasste Ereignisse, gerundet
                      auf 2 Dezimalstellen. Null, wenn keine Ereignisse erfasst
                      wurden.
              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: >-
            Der API-Schlüssel mit eingeschränktem Geltungsbereich ist
            abgelaufen. Nur ein abgelaufener Schlüssel erhält `401`; ein
            fehlender oder ungültiger Schlüssel erhält `403`.
          content:
            application/json:
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Ein fehlender `x-api-key` (ein falscher, widerrufener oder
            abgelaufener Schlüssel erhält `401`), ein berechtigungsbeschränkter
            Schlüssel ohne `transactions: read`, ein auf bestimmte Workflows
            oder genehmigte Sitzungen beschränkter Schlüssel (ein solcher
            Schlüssel erreicht Transaktionsüberwachungsdaten nie) oder eine
            Anfrage von außerhalb der IP-Allowlist des Schlüssels.
          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: >-
            Rate-Limit überschritten: `GET`-Anfragen teilen sich ein Kontingent
            von 600 Anfragen pro Minute pro API-Schlüssel. Warten Sie
            `Retry-After` Sekunden und versuchen Sie es dann erneut.
          headers:
            Retry-After:
              description: >-
                Sekunden, die vor einem Wiederholungsversuch gewartet werden
                müssen.
              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: >-
        Der API-Schlüssel Ihrer Anwendung, aus Entwickler -> API-Schlüssel in
        der Business Console. Der Primärschlüssel hat Vollzugriff. Ein benannter
        Schlüssel kann im Geltungsbereich eingeschränkt werden: keine, Lese-
        oder Schreibberechtigung pro Ressource, beschränkt auf bestimmte
        Workflows oder genehmigte Sitzungen, auf eine Liste von IP-Adressen und
        auf ein Ablaufdatum. 401 bedeutet, dass der Schlüssel falsch, widerrufen
        oder abgelaufen ist; 403 bedeutet, dass kein Schlüssel gesendet wurde,
        der Schlüssel keinen Zugriff auf diese Ressource oder Aktion hat oder
        die Anfrage von einer Adresse außerhalb seiner IP-Liste stammte; 404 bei
        einer Sitzungsroute bedeutet, dass die Sitzung außerhalb der Workflows
        oder Status des Schlüssels liegt. Ein Schlüssel ohne Medienzugriff
        erhält Bild-, Video- und PDF-URLs als null, und ein Schlüssel ohne
        Schreibberechtigung für Sitzungen erhält Sitzungslinks und Token als
        null. Siehe https://docs.didit.me/console/api-keys.

````

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