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

# API Metrik Pengayaan Event

> Baca penghitung ingestion event dan pengayaan IP untuk suatu periode: tingkat cache hit, rasio IP unik, dan lookup baru per seribu event di Didit.

Prompt API untuk Mendapatkan Metrik Pengayaan Event
Salin prompt ke papan klip

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

Tempel ke

Business Console menampilkan angka yang sama di atas daftar event. Lihat [Pengayaan IP](https://docs.didit.me/id/transaction-monitoring/events.md#pengayaan-ip) di panduan ingesti event untuk mengetahui mengapa telemetri bernilai rendah hanya membaca data pengayaan ketika alamat tersebut sudah ditentukan oleh event lain, dan [Pengayaan IP](https://docs.didit.me/id/transaction-monitoring/ip-enrichment.md) untuk kolom yang disertakan bersama alamat yang telah diperkaya.


## OpenAPI

````yaml id/openapi-25.json GET /v3/events/enrichment-metrics/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/events/enrichment-metrics/:
    get:
      tags:
        - Monitoring Events
      summary: Dapatkan metrik pengayaan event
      description: >-
        Mengembalikan penghitung penyerapan event dan pengayaan IP aplikasi Anda
        untuk suatu periode, dijumlahkan di setiap jalur (server, batch, dan
        perangkat), sehingga Anda dapat memantau volume event dan mengonfirmasi
        bahwa pengayaan diselesaikan sekali per alamat unik, bukan sekali per
        event. Periode ini mencakup hari ini ditambah `days` hari sebelumnya,
        dihitung berdasarkan tanggal kalender UTC. Ketiga rasio bernilai null
        jika penyebutnya nol. Kunci API dengan cakupan memerlukan `transactions:
        read`. Lihat [Pengayaan
        IP](https://docs.didit.me/id/transaction-monitoring/events#pengayaan-ip).
      operationId: get_monitoring_event_enrichment_metrics
      parameters:
        - name: days
          in: query
          required: false
          description: >-
            Panjang periode dalam hari. Defaultnya adalah 30; nilai dibatasi
            antara 1 hingga 365, dan nilai non-integer kembali ke 30. Nilai yang
            diterapkan dikembalikan sebagai `period_days`.
          schema:
            type: integer
            default: 30
            minimum: 1
            maximum: 365
          example: 30
      responses:
        '200':
          description: Hitungan dan rasio untuk periode tersebut.
          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: >-
                      Event baru disimpan. Pemutaran ulang idempoten tidak
                      dihitung.
                  events_rejected:
                    type: integer
                    description: >-
                      Item yang ditolak di dalam permintaan batch (jalur server
                      dan perangkat). Permintaan event tunggal yang ditolak
                      tidak dihitung.
                  enrichment_lookups:
                    type: integer
                    description: >-
                      Event yang alamat publiknya berhasil diselesaikan, dari
                      cache atau baru saja.
                  enrichment_cache_hits:
                    type: integer
                    description: Pencarian yang dijawab dari cache.
                  enrichment_provider_calls:
                    type: integer
                    description: >-
                      Pencarian yang membutuhkan resolusi baru dari alamat
                      tersebut.
                  enrichment_skipped_low_value:
                    type: integer
                    description: >-
                      Event telemetri bernilai rendah yang alamatnya belum
                      diketahui. Event ini tidak pernah memicu resolusi baru
                      sendiri.
                  unique_ips_seen:
                    type: integer
                    description: Alamat yang membutuhkan resolusi baru.
                  period_days:
                    type: integer
                    description: Nilai `days` yang diterapkan setelah pembatasan nilai.
                  cache_hit_rate:
                    type: number
                    nullable: true
                    description: >-
                      `enrichment_cache_hits / enrichment_lookups`, dibulatkan
                      menjadi 4 angka desimal. Bernilai null jika tidak ada
                      pencarian.
                  unique_ip_ratio:
                    type: number
                    nullable: true
                    description: >-
                      `unique_ips_seen / events_ingested`, dibulatkan menjadi 4
                      desimal. Null saat tidak ada event yang diproses.
                  provider_calls_per_1k_events:
                    type: number
                    nullable: true
                    description: >-
                      Resolusi baru per 1000 event yang diserap, dibulatkan
                      hingga 2 desimal. Null jika tidak ada event yang diserap.
              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: >-
            Kunci API dengan cakupan terbatas telah kedaluwarsa. Hanya kunci
            yang kedaluwarsa yang menerima `401`; kunci yang hilang atau tidak
            valid menerima `403`.
          content:
            application/json:
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            `x-api-key` tidak ada (kunci yang salah, dicabut, atau kedaluwarsa
            menghasilkan `401`), kunci dengan pembatasan cakupan tanpa
            `transactions: read`, kunci yang dibatasi pada alur kerja tertentu
            atau pada sesi yang disetujui (kunci semacam itu tidak pernah
            mengakses data pemantauan transaksi), atau permintaan dari luar
            allowlist IP milik kunci tersebut.
          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: >-
            Batas laju terlampaui: permintaan `GET` berbagi anggaran sebanyak
            600 permintaan per menit per kunci API. Tunggu `Retry-After` detik,
            lalu coba lagi.
          headers:
            Retry-After:
              description: Detik untuk menunggu sebelum mencoba lagi.
              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: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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